Jump to content

Goanna

Members
  • Content count

    401
  • Joined

  • Last visited

  1. Yeah, I was looking over intuits site and they have different API's for quickbooks and Quickbooks POS. I think a simple workaround is to just use quickbooks as an intermediary between QB POS and osCommerce. You can set QB POS to automatically update every night with Quickbooks, and then you can do the updates from quickbooks to oscommerce. As for the changes, I do my own programming for the most part, so I might be able to figure out a workaround to get it to work with only one vendor. The MVS contribution already specifies a Vendor ID, so I could porbably just use that to flag it. As of now I am not using quickbooks at all to keep track of the site. The site isnt live yet either so it's not a big issue. I guess I could use quickbooks to keep track of my own orders/inventory and then for the dropship orders I will just have oscommerce keep track of them as well as the dropshipper.
  2. I didnt get a chance to install yet but I did just think of something else. Since I am using multiple vendors on the site, will I be able to make sure the quickbooks integration only affects one of the vendors? I would only want it to update inventory from my actual store, not from the dropshipper!
  3. Thanks for the reply mark. I am going to give this a try. And yes, I always make changes on a test server first before uploading to the live site :D.
  4. I am very interested in this contribution. Before I attempt an install I wanted to ask some questions. First, my store is heavily modified. STS, MVS, QTpro w attributes, product weights and dimensions, Easy Populate, Custom Fields in Product Info, Username instead of email login, and a lot more. Lots of additions and changes to the database. Will this contribution give me a problem with the DB changes my site has? Especially those in the user information and product information tables? If so are fields easily added? Second, will this work directly with Quickbooks Point of Sale, or would I need to use Quickbooks standard as an intermediary between QBPOS and OScommerce?
  5. Hello All. I am getting an unusual output from the featured products infobox. It is giving me two headers, one on top of the other. I am using STS and with infobox templates enabled one of the headers shows up how I want, the other shows up as just a plain cell with a background color. I tried turning off Infobox templates, and then I turned off STS altogethr and I still get multiple headers. in Modules/Featured.php I cant see any cause for this. Has anyone else experianced this? I cant get rid of the extra header and it's really annoying me. Any help is greatly appreciated! Billy
  6. Goanna

    Easy Popluate and MVS

    Well, I added the MVS fields inthe products table to Easy Populate and now I am able to export that data to a CSV but now I am trying to work out a 1064 error when uploading a CSV back to the site.
  7. I am trying to add new fields to EP and I followed the directions listed in the original post as well as I could but EP has advanced since then and those directions arent exactly spoton anymore. For instance, the first set of instructions.... Find the line, approx 991: $filelayout = array_merge($filelayout , array( 'v_tax_class_title' => $iii++, 'v_status' => $iii++, Those lines dont even exist anymore. I was able to go through everything else but I couldnt find this area to edit. With everything else modified, when I try to download a CSV I get no errors but the new fields are not shown in the CSV file either.
  8. Goanna

    Easy Popluate and MVS

    I am looking to get EP working with MVS as well. Any info is appreciated.
  9. Did you put the closing $ on them? It should be $imagesmall$ and $product_popup$.
  10. I am having trouble with checkout_shipping.php. I already searched the thread and this problem doesnt seem to have come up before. Basically, it's like STS isnt working with this page, although some parts of the template do show up it seems most of it is printed out as $cartbox$ and whatever other calls are used for each component. Attached is an example output I am getting. Note there are no error messages, the page just isnt displaying. Excuse the areas I blocked out, and the mismatched colors, the sites still being worked on. Click to Enlarge.
  11. Goanna

    EasyMap

    Oh, sorry one quick thing, the API key you must change it to 2.x if you leave it at v=2 it wont work. Since I cant edit the above code, it should look like this. <script src="http://maps.google.com/maps?file=api&v=2.x&key=abcd123456" type="text/javascript"></script>
  12. Goanna

    EasyMap

    Okay I have added some basic driving direction capability. I havent yet added any new database fields to support this but I plan on adding a few more to make the whole thing configurable from the admin area. For the time being here's what I have. I am still working some bugs out, and I may wind up changing things around but I'll post the code here now if anyone wants to play with it. Basically, when you first visit the page you get the original easymap component but I added a form on the bottom asking for a start address. When the address is submitted you then get taken to a page showing turn by turn directions and a map with a polyline drawn along the route, as well as zoom/view controls. <?php /* $Id: easymap.php,v 1.1 2005/12/31 by Jack_mcs Turn by Turn Driving directions functionality added by Goanna osCommerce, Open Source E-Commerce Solutions [url=http://www.oscommerce.com]http://www.oscommerce.com[/url] Copyright © 2003 osCommerce Released under the GNU General Public License */ require('includes/application_top.php'); require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_EASYMAP); $breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_EASYMAP)); $action = (isset($_POST['action']) ? $_POST['action'] : ''); $line = array(); $line = explode(",", EM_LINES_COORD); $longitude = EM_LONGITUDE; $lattitude = EM_LATTITUDE; $to = "123 main street washington dc"; //Destination address goes here formatted Street, City, State, Zip (with or without commas). $from = $_POST['fromAddress']; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" <?php echo HTML_PARAMS; ?>> <head> <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>"> <title><?php echo TITLE; ?></title> <base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>"> <link rel="stylesheet" type="text/css" href="stylesheet.css"> <script src="http://maps.google.com/maps?file=api&v=2&key=abcd123456" type="text/javascript"></script> <?php if ($getdirections == 'true'): ?> <style type="text/css"> v\:* { behavior:url(#default#VML); } body { font-family: Verdana, Arial, sans serif; font-size: 11px; margin: 2px; } table.directions th { background-color:#EEEEEE; } img { color: #000000; } </style> <script type="text/javascript"> //<![CDATA[ var map; var gdir; var geocoder = null; var addressMarker; var trafficInfo = new GTrafficOverlay(); function load() { if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById("map")); gdir = new GDirections(map, document.getElementById("directions")); GEvent.addListener(gdir, "load", onGDirectionsLoad); GEvent.addListener(gdir, "error", handleErrors); setDirections("<?php echo $from; ?>", "<?php echo $to; ?>", "en_US"); map.addControl(new GLargeMapControl()); map.addControl(new GMapTypeControl()); map.addControl(new GScaleControl()); //map.addOverlay(trafficInfo); //Need to add a button to toggle this on/off before using. } } function setDirections(fromAddress, toAddress, locale) { gdir.load("from: " + fromAddress + " to: " + toAddress, { "locale": locale }); } function handleErrors(){ if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS) alert("No corresponding geographic location could be found for one of the specified addresses. This may be due to the fact that the address is relatively new, or it may be incorrect.\nError code: " + gdir.getStatus().code); else if (gdir.getStatus().code == G_GEO_SERVER_ERROR) alert("A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.\n Error code: " + gdir.getStatus().code); else if (gdir.getStatus().code == G_GEO_MISSING_QUERY) alert("The HTTP q parameter was either missing or had no value. For geocoder requests, this means that an empty address was specified as input. For directions requests, this means that no query was specified in the input.\n Error code: " + gdir.getStatus().code); // else if (gdir.getStatus().code == G_UNAVAILABLE_ADDRESS) <--- Doc bug... this is either not defined, or Doc is wrong // alert("The geocode for the given address or the route for the given directions query cannot be returned due to legal or contractual reasons.\n Error code: " + gdir.getStatus().code); else if (gdir.getStatus().code == G_GEO_BAD_KEY) alert("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + gdir.getStatus().code); else if (gdir.getStatus().code == G_GEO_BAD_REQUEST) alert("A directions request could not be successfully parsed.\n Error code: " + gdir.getStatus().code); else alert("An unknown error occurred."); } function onGDirectionsLoad(){ // Use this function to access information about the latest load() // results. // e.g. // document.getElementById("getStatus").innerHTML = gdir.getStatus().code; // and yada yada yada... } //]]> </script> <?php else: ?> <!-- BOC googlemap //--> <style type="text/css"> v\:* { behavior:url(#default#VML); } </style> <script type="text/javascript"> //<![CDATA[ function load() { if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("map")); map.setCenter(new GLatLng(<?php echo $longitude; ?>, <?php echo $lattitude; ?>), 14); <?php if (EM_SHOW_MAP_SIZE == 'true') { if (EM_SHOW_MAP_CONTROLS == 'complete') { ?> map.addControl(new GLargeMapControl()); <?php } ?> <?php if (EM_SHOW_MAP_CONTROLS == 'compact') { ?> map.addControl(new GSmallMapControl()); <?php } } ?> <?php if (EM_SHOW_MAP_VIEW == 'true') { ?> map.addControl(new GMapTypeControl()); <?php } ?> // map.addControl(new GOverviewMapControl()); <?php if (EM_SHOW_MAP_VIEW == 'true') { ?> map.addControl(new GScaleControl()); <?php } ?> <?php if (EM_SHOW_MAP_COORDINATES == 'true') { ?> GEvent.addListener(map, "moveend", function() { var center = map.getCenter(); document.getElementById("message").innerHTML = center.toString(); }); <?php } ?> // Our info window content var infoTabs = [ new GInfoWindowTab("<?php echo EM_LOCATION_BUBBLE_TITLE; ?>", "<?php echo EM_LOCATION_BUBBLE_CONTENT; ?>") <?php if (EM_SHOW_MAP_TAB == 'true') { ?>, new GInfoWindowTab("<?php echo EM_LOCATION_TAB_TITLE; ?>", "<?php echo EM_LOCATION_TAB_CONTENT; ?>") <?php } ?> ]; <?php if (EM_SHOW_MAP_MARKER == 'true') { ?> // Place a marker in the center of the map and open the info window // automatically var marker = new GMarker(map.getCenter()); map.addOverlay(marker); <?php if (EM_LOCATION_MAP_BUBBLE == 'true') { ?> marker.openInfoWindowTabsHtml(infoTabs); GEvent.addListener(marker, "click", function() { marker.openInfoWindowTabsHtml(infoTabs); }); <?php } } ?> <?php if (EM_SHOW_MAP_LINES == 'true') { ?> var bounds = map.getBounds(); var southWest = bounds.getSouthWest(); var northEast = bounds.getNorthEast(); var lngSpan = northEast.lng() - southWest.lng(); var latSpan = northEast.lat() - southWest.lat(); // Add a polyline with five random points. Sort the points by // longitude so that the line does not intersect itself. var points = []; points.push(new GLatLng(southWest.lat() + latSpan * <?php echo $line[0]; ?>, southWest.lng() + lngSpan * <?php echo $line[1]; ?>)); points.push(new GLatLng(southWest.lat() + latSpan * <?php echo $line[2]; ?>, southWest.lng() + lngSpan * <?php echo $line[3]; ?>)); points.push(new GLatLng(southWest.lat() + latSpan * <?php echo $line[4]; ?>, southWest.lng() + lngSpan * <?php echo $line[5]; ?>)); points.push(new GLatLng(southWest.lat() + latSpan * <?php echo $line[6]; ?>, southWest.lng() + lngSpan * <?php echo $line[7]; ?>)); points.push(new GLatLng(southWest.lat() + latSpan * <?php echo $line[8]; ?>, southWest.lng() + lngSpan * <?php echo $line[9]; ?>)); points.sort(function(p1, p2) { return p1.lng() - p2.lng(); }); map.addOverlay(new GPolyline(points)); <?php } ?> } } //]]> </script> <?php endif; ?> </head> <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" onload="load()" onunload="GUnload()"> <!-- header //--> <?php require(DIR_WS_INCLUDES . 'header.php'); ?> <!-- header_eof //--> <!-- body //--> <table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td class="columnLeft" width="<?php echo COLUMN_LEFT_WIDTH; ?>" valign="top"><table border="0" width="<?php echo COLUMN_LEFT_WIDTH; ?>" cellspacing="0" cellpadding="0"> <!-- left_navigation //--> <?php require(DIR_WS_INCLUDES . 'column_left.php'); ?> <!-- left_navigation_eof //--> </table></td><td background="images/links/shadow_column_left.gif"> </td> <td><?php echo tep_draw_separator('pixel_trans.gif', COLUMN_SPACER_WIDTH, '1'); ?></td> <!-- body_text //--> <?php if ($getdirections == 'true'): ?> <td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td><table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td class="pageHeading"><?php echo HEADING_TITLE; ?></td> <td class="pageHeading" align="right"><?php echo tep_image(DIR_WS_IMAGES . 'table_background_specials.gif', HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td> </tr> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td><table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> <td class="main"> <div id="map" style="width: 650px; height: 400px"></div> <br /> <span>Formatted Directions</span> <div id="directions" style="width: 650px"></div></td> </tr> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox"> <tr class="infoBoxContents"> <td><table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td> <td align="right"><?php echo '<a href="' . tep_href_link(FILENAME_DEFAULT) . '">' . tep_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE) . '</a>'; ?></td> <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td> </tr> </table></td> </tr> </table></td> </tr> </table></td> <?php else: ?> <td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td><table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td class="pageHeading"><?php echo HEADING_TITLE; ?></td> <td class="pageHeading" align="right"><?php echo tep_image(DIR_WS_IMAGES . 'table_background_specials.gif', HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td> </tr> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td> <table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> <td class="main"><?php echo TEXT_INFORMATION; ?></td> </tr> <?php if (EM_SHOW_MAP_LINES == 'true') { ?> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td class="main"><?php echo TEXT_DRIVING_DIRECTIONS; ?></td> </tr> <?php } ?> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <!-- Start map code //--> <tr> <td> <!-- EOC googlemap //--> <div id="map" style="width: 500px; height: 400px; border: .2em; border-style: ridge; "></div> <div id="message"></div> </td> </tr> <!-- BEGIN FORM --> <tr> <td align="right"><?php echo tep_draw_form('seotips', tep_href_link(FILENAME_EASYMAP, '', 'NONSSL'), 'post', 'onSubmit="return true;" onReset="return true"') . tep_draw_hidden_field('getdirections', 'true'); ?></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '20'); ?></td> </tr> <tr> <td width="40%"><table border="1"> <tr> <td>Starting Address</td> <td><?php echo tep_draw_input_field('fromAddress', $fromAddress, false); ?> </td> </tr> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '10', '20'); ?></td> </tr> <tr> <td width="40%"><table border="0"> <tr> <td width="45%"> </td> <td><?php echo (tep_image_submit('button_update.gif', IMAGE_UPDATE) ) . ' <a href="' . tep_href_link(FILENAME_EASYMAP, '') .'">' . '</a>'; ?></td> </tr> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '10', '20'); ?></td> </tr> </form> <!-- END FORM --> <!-- End Map code //--> <tr> <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox"> <tr class="infoBoxContents"> <td><table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td> <td align="right"><?php echo '<a href="' . tep_href_link(FILENAME_DEFAULT) . '">' . tep_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE) . '</a>'; ?></td> <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td> </tr> </table></td> </tr> </table></td> </tr> </table></td> <td class="columnRight"><?php echo tep_draw_separator('pixel_trans.gif', COLUMN_SPACER_WIDTH, '1'); ?></td> <td > </td> <?php endif; ?> <!-- body_text_eof //--> <td width="<?php echo COLUMN_RIGHT_WIDTH; ?>" valign="top"><table border="0" width="<?php echo COLUMN_RIGHT_WIDTH; ?>" cellspacing="0" cellpadding="2"> <!-- right_navigation //--> <?php require(DIR_WS_INCLUDES . 'column_right.php'); ?> <!-- right_navigation_eof //--> </table></td> </tr> </table> <!-- body_eof //--> <!-- footer //--> <?php require(DIR_WS_INCLUDES . 'footer.php'); ?> <!-- footer_eof //--> <br> </body> </html> <?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?> If you want to play around with it just overwrite your existing easymap.php file with it and give it a go. It's pretty basic right now but you should be able to modify it. Remember to put your own API key in place.
  13. Goanna

    EasyMap

    Egghh, not very usefull for me. I'll see if I can tie in actual driving directions into this, with geocoding and a form for people to submit their street address. If it works out ill release it as an update. Billy
  14. Goanna

    EasyMap

    I just wanted to see if I misunderstood a function of this contribution. The line drawing for directions, is that just a task I can do from the admin end? When I read that, I thought I would be able to put a form on the map page, and have turn by turn directions listed, without having to difer my users to another site (google maps). I actually have done this before and I have working code examples that will do this if your interested in building that functionality into this. I was warned though that it may be against googles TOS to do so. Nobody seemed to be sure at the time. It's been over a year since I played with it/looked into it though.
  15. Goanna

    [Contribution] STS v4

    I would have edited my post but the 5 min edit limit kicked in, lol. I figured it out. In the previous version infoboxe templating was not included, so I had edited all my infoboxes, and I was using a table-less css design. apparently this didnt work too well with the new templating system. I replaced all my infoboxes with the older non modified versions and it seems to work fine now!
×