Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

blucollarguy

Archived
  • Posts

    739
  • Joined

  • Last visited

Everything posted by blucollarguy

  1. I think someone already worked on this, they posted here for a bit and then disappeared. I have been considering working on this myself, but have not had time. One could start with "Admin Access with levels" and add the approve/disapprove code from there. I don't think it would be that difficult, but perhaps time consuming. Craig :)
  2. Use this one: Roll up with loose mzmt references removed HallMarc 17 Feb 2006 There are no instructions with this package, so download the RC4 package for some instructions. These files are best for overwrite and run, but you can also use a differencing tool, I use WinMerge, there is a link for it in the RC4 package, it is an Open Source tool, so it is free to use. I hope to have a fully updated version finished this week, but no guaruntees. Good luck, Craig :)
  3. It's such a shame you hate coding sooo much Jim... LOL Craig :)
  4. Jim(cigarsforless): I am working on implementing the "Signature" option in both, but havn't gotten deeply into it yet. Hope to be able to include it with the MVS updated package, but may have to put that off if it looks to take too much time. Marc(hallmarc): Can you email a fully updated copy of your UPSXML file so I can make sure I have all the updates you have accomplished? I want to make sure this package is as up to date as possible. Thanks, Craig :)
  5. I am interested, but may not be able to get it for a week or 2. You can send me a copy email. Contact via PM and I will send you my email address directly. Craig :)
  6. Has anybody had problems with SSL being enabled? The log file is showing a cURL error when on my server when I enable SSL in my shop. Am working with my host, but I wanted to make sure it really is the server and not something else. The message in the log file says a setting in cURL has "https" disabled, sound familiar to anyone? Craig :)
  7. There is already a version of SPU modified for MVS in the MVS contrib section. The package MVS_ADD_ONS also contains First Item Plus and FreeAmount modified for MVS. Each of these requires no file modifications to use, just install via the Vendor Manager and go. On another note, this is a partial list of the bug fixes and updates to be included in the next release of MVS: Fix no shipping selected Fix automatic shipping selection Fix "sort order" in all modules Fix "order_total" in the Table Rates module Fix "comments" in "vendor_order_data.php" FedEx updates UPSXML updates USPS updates(I have updated the code to allow the module to work in "Test Mode", still debugging, but looks very promising, hopefully will be finished this week) Update to loading "vendor_shippng.php" Additional address line in the Vendor Editor Update to Packing Slip Updated "admin/index.php" file Updates to the "vendors product report" Updates to the "vendors orders report" An updated "price updater" will be included A few other "options" will be added as well I am still reading through the entire thread for anything I have missed, if anyone can find or think of anything else, please let me know. Craig :)
  8. Ok, I have tracked down the CC problem to be involved with combining FEC with STS. Something about the code being added in checkout_confirmation.php seems to be the problem. STS captures all the data between "application_top.php" and "application_bottom.php" I think. This would include the code you added to the "checkout_confirmation.php" file. The IPN problem is still there no matter what. I am referring to the PayPal IPN V2.8(the one I am most familiar with) including all it's updates for CCGV and Affiliates. The IPN module from the osC team works just fine, which is what I am using for now. So I have to work out where I should add the code from "checkout_confirmation.php", maybe the "user_code" file included with STS? I have had to add a number of bits of code there as well as the java script file for STS. Any one with any thoughts on this? I expect I will figure out the CC issue with some trial and error, but the IPN thing, I'm not so sure about. Craig :)
  9. Ok, I have been working with FEC for quite a while now, and for the most part have had great success using it in a VARY HEAVILY modified package of osC that I use for many clients. Recently, I have encountered the issue of the CC modules not getting the proper CC info during checkout. I have scanned through this thread extensively and have not found the answer yet. I have tried the many suggestions I found, all to no avail. During my debugging, I have found that the "Payment" class is not being set properly in the new "checkout_shipping.php". In osC's checkout_payment.php the payment class is set imediately upon entering the page, and then the "object" info is passed to the confirmation page. Something is preventing the payment class from being set properly in the new checkout_shipping.php. This is showing with the Linkpoint and apparently the Paymentech modules, but not others. I have also had problems with PayPal IPN not updating the database when being sent back to the site. Without FEC, it updates properly, with FEC, no IPN info is updated, it is being passed back to the site, I can capture all the info myself, but the code does not update the DB at all. If anyone has any suggestions, I would greatly appreciate it. This is an awesome contrib, I had planned on doing this myself, but finally found this and have been VERY pleased. Thanks Frank, Craig :)
  10. I am trying to duplicate your setup and see if I can figure out what the problem is. Give me a little time and let's see what I can come up with. Craig :)
  11. MVS does exactly this already. One installs each module on a per Vendor basis. The "product origin" is the Vendor's address, which one sets up via the admin. The modules do need to be modified to work with MVS, but this is working very well for many folks on live stores. It sounds like you are working on duplicating MVS, you really should take a good look at what Jim and I have gotten done. Install MVS on a test site and see what it can do. I suggest working with RC4 in combination with the rollup(the second one posted) and play around with it. I think you will be pleased. Jim was able to break thru the loops that had been killing me. He did a great job. I can't guess how long it would have taken me to finally work it out myself without his help. And since then, he's stuck around and continues to support what we've done. Unlike so many others who tried to help me early on, he has stuck around. We all owe Jim a great deal of gratitude. Craig :)
  12. The line you edited is actually not even in use if you have enabled MVS. That section of code is bypassed entirely by MVS, and replaced with includes/modules/vendor_shipping.php. The shipping tax was once an issue but was fixed in RC4. I'm not sure exactlyn what was happening. Was the shipping tax not being calculated at all? Was it not showing someplace you expected to? Since the "order total" is not accurate I would guess you missed something in includes/classes/order.php, which is one of the files in which we added code to support MVS. Clarify a bit and we'll find it, Craig :)
  13. MVS is quite stable once you have worked through the bugs from our last release. I am still trying to finish a full updated package. Hoping to get it done this week. Did your guy ever write his own version? What we have ended up with(Jim Keebaugh and I got it done, and now we have much cooperation and support from many different folks, it's great) is a very sophisticated "per product shipping system", where one can group the products into categories(Vendors) and setup any shipping module/s for that group(modules must be modified for MVS). And it works like a charm. I have it running on about a dozen live sites with no issues. And some are VERY heavily modified. Even on a MS1 site. What have you been up to?! Craig :)
  14. I have uploaded a package to the contributions section. This package contains 3 additional shipping modules for MVS. They should work with any after RC3, and perhaps earlier, I have not tested any earlier versions. These are simple copy and paste modules with no file modifications needed. Simply copy them into the appropraite directories, and install them via the Vendor Manager just like every other module. All 3 are being used on live stores, so I am confident there will be no problems, but as usual, I offer no guarantees. These are all modified from other modules: Store Pickup, Free Amount and First Item Plus. I am not including the instructions for those here, but can be found in the contributions section. Most of the credit for goes to their original authors, and again, thanks to the osCommerce community for this wonderful piece of work. Craig :)
  15. The standard UPS module(not the UPSXML) included with MVS is a modified version of the UPS Choice module. There should be nothing you need to do other than install it via the Vendor Mangaer. There is a database adjustment needed in order to use the "method selection" from the module itself. In the MVS Options download, you will find the instructions for this. Good luck, and great work with the Indiv Ship module, Craig :)
  16. I have created a "free shipping" module for MVS. I plan on cleaning it up a bit and posting it to the contrib section. I found it easier to use a module for now, still looking through the code for the standard osC free shipping function issue. It works part time for me on my own test server(Admin->Modules->Order Total->Shipping), but something is strange about it sometimes. I will post when I get it. I will be getting back to the new release this week. Hopefully, I will be able to stay focused on it long enough to finish it up. I am creating a "bug" and "feature" list to post here for review before I release the next version. If anyone sees anything missing from it, be sure to post and let me know. Again, I personally appreciate everyone's support, as you all know, both Jim and I get very busy at times and are not able to offer the attention here we would like. Your help has been fantastic :thumbsup: , thanks. Craig :)
  17. Ok Marc, email me a copy and I may have time to look at it this weekend. Great work on this BTW. Craig :)
  18. Yeah, we have this understood now, when Marc did the "rollup", he left in some additional code(would be optional), and I had not seen it yet. Marc is trying to help out(and doing a great job I might add), Jim and I have been very busy and have not been able to complete a full update with instructions. We apologize, but this is certainly a mod that is not for the faint of heart. You have done well so far, take a look back a page or so, and you will see Marc's posts in response to your original request and then decide what to do with it. Good luck, Craig :)
  19. What did you install? "num_tables" isn't a part of this version of MVS. This forum is for Multi Vendor Shipping, check to see what you are working with. Another address line would not be a bad idea. Will add it to the list. The original instructions do say to copy over the files provided as this is a fairly advanced installation, not sure what Marc added to the "roll-up", I haven't checked it yet. Shipping is handled per Vendor, so individual shipping is already there, if you installed this version. Good luck, Craig :)
  20. First, I want to thank Marc for doing the roll-up, big help Marc, my time has been so stretched it isn't even funny anymore. :thumbsup: The handling fees are not being handled properly in the UPSXML module at all. For some reason, some of the functions that are supposed to pull information from the db as "constants" don't always work. Not sure why, but we have had this problem with a few others as well, some work, some don't. Been scratching my head on this one for quite a while. So, we need to make a change in the way the file calls for the data regarding the handling fees: in upsxml.php, find the "quote" function, it should look like this: // class methods function quote($method = '', $module = '', $vendors_id = '1') { global $HTTP_POST_VARS, $order, $shipping_weight, $shipping_num_boxes, $total_weight, $boxcount, $cart; // UPS purports that if the origin is left out, it defaults to the account's location. Yeah, right. $state = $order->delivery['state']; $zone_query = tep_db_query("select zone_code from " . TABLE_ZONES . " where zone_name = '" . $order->delivery['state'] . "'"); if (tep_db_num_rows($zone_query)) { $zone = tep_db_fetch_array($zone_query); $state = $zone['zone_code']; } $this->_upsOrigin(constant('MODULE_SHIPPING_UPSXML_RATES_CITY_' . $vendors_id), constant('MODULE_SHIPPING_UPSXML_RATES_STATEPROV_' . $vendors_id), constant('MODULE_SHIPPING_UPSXML_RATES_COUNTRY_' . $vendors_id), constant('MODULE_SHIPPING_UPSXML_RATES_POSTALCODE_' . $vendors_id)); $this->_upsDest($order->delivery['city'], $state, $order->delivery['country']['iso_code_2'], $order->delivery['postcode']); $productsArray = $cart->get_products(); if (DIMENSIONS_SUPPORTED) { // sort $productsArray according to ready-to-ship (first) and not-ready-to-ship (last) usort($productsArray, ready_to_shipCmp); // Use packing algoritm to return the number of boxes we'll ship $boxesToShip = $this->packProducts($productsArray); // Quote for the number of boxes for ($i = 0; $i < count($boxesToShip); $i++) { $this->_addItem($boxesToShip[$i]['length'], $boxesToShip[$i]['width'], $boxesToShip[$i]['height'], $boxesToShip[$i]['current_weight']); $totalWeight += $boxesToShip[$i]['current_weight']; } } else { // The old method. Let osCommerce tell us how many boxes, plus the weight of each (or total? - might be sw/num boxes) $this->items_qty = 0; //reset quantities for ($i = 0; $i < $shipping_num_boxes; $i++) { $this->_addItem (0, 0, 0, $shipping_weight); } } // BOF Time In Transit: comment out this section if you don't want/need to have // expected delivery dates $this->servicesTimeintransit = $this->_upsGetTimeServices($vendors_id); if ($this->logfile) { error_log("------------------------------------------\n", 3, $this->logfile); error_log("Time in Transit: " . $this->timeintransit . "\n", 3, $this->logfile); } // EOF Time In Transit $upsQuote = $this->_upsGetQuote($vendors_id); if ((is_array($upsQuote)) && (sizeof($upsQuote) > 0)) { if (DIMENSIONS_SUPPORTED) { $this->quotes = array('id' => $this->code, 'module' => $this->title . ' (' . $this->boxCount . ($this->boxCount > 1 ? ' pkg(s), ' : ' pkg, ') . $totalWeight . ' ' . strtolower($this->unit_weight) . ' total)' ); } else { $this->quotes = array('id' => $this->code, 'module' => $this->title . ' (' . $shipping_num_boxes . ($this->boxCount > 1 ? ' pkg(s) x ' : ' pkg x ') . $shipping_weight . ' ' . strtolower($this->unit_weight) . ' total)' ); } $methods = array(); for ($i=0; $i < sizeof($upsQuote); $i++) { list($type, $cost) = each($upsQuote[$i]); // BOF limit choices if (!exclude_choices($type, $vendors_id)) continue; // EOF limit choices if ( $method == '' || $method == $type ) { $_type = $type; if (isset($this->servicesTimeintransit[$type])) { $_type = $_type . ", ".$this->servicesTimeintransit[$type]["date"]; } // instead of just adding the expected delivery date as ", yyyy-mm-dd" // you might like to change this to your own liking for example by commenting the // three lines above this and uncommenting/changing the next: // START doing things differently /* if (isset($this->servicesTimeintransit[$type])) { $eta_array = explode("-", $this->servicesTimeintransit[$type]["date"]); $months = array (" ", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); $eta_arrival_date = $months[(int)$eta_array[1]]." ".$eta_array[2].", ".$eta_array[0]; $_type .= ", <acronym title='Estimated Delivery Date'>EDD</acronym>: ".$eta_arrival_date; } END of doing things differently: */ $methods[] = array('id' => $type, 'title' => $_type, 'cost' => ($this->handling_fee + $cost)); } } if ($this->tax_class($vendors_id) > 0) { $this->quotes['tax'] = tep_get_tax_rate($this->tax_class($vendors_id), $order->delivery['country']['id'], $order->delivery['zone_id']); } $this->quotes['methods'] = $methods; } else { if ( $upsQuote != false ) { $errmsg = $upsQuote; } else { $errmsg = MODULE_SHIPPING_UPSXML_RATES_TEXT_UNKNOWN_ERROR; } $errmsg .= '<br>' . MODULE_SHIPPING_UPSXML_RATES_TEXT_IF_YOU_PREFER . ' ' . STORE_NAME.' via <a href="mailto:'.STORE_OWNER_EMAIL_ADDRESS.'"><u>Email</U></a>.'; $this->quotes = array('module' => $this->title, 'error' => $errmsg); } if (tep_not_null($this->icon)) { $this->quotes['icon'] = tep_image($this->icon, $this->title); } return $this->quotes; } I made some changes to it to pull the "handling_fee" from the module iteself and the handling charges from the Vendor edit page, it now looks like this: // class methods function quote($method = '', $module = '', $vendors_id = '1') { global $HTTP_POST_VARS, $order, $shipping_weight, $shipping_num_boxes, $total_weight, $boxcount, $cart; // UPS purports that if the origin is left out, it defaults to the account's location. Yeah, right. $state = $order->delivery['state']; $zone_query = tep_db_query("select zone_code from " . TABLE_ZONES . " where zone_name = '" . $order->delivery['state'] . "'"); if (tep_db_num_rows($zone_query)) { $zone = tep_db_fetch_array($zone_query); $state = $zone['zone_code']; } $this->_upsOrigin(@constant('MODULE_SHIPPING_UPSXML_RATES_CITY_' . $vendors_id), @constant('MODULE_SHIPPING_UPSXML_RATES_STATEPROV_' . $vendors_id), @constant('MODULE_SHIPPING_UPSXML_RATES_COUNTRY_' . $vendors_id), @constant('MODULE_SHIPPING_UPSXML_RATES_POSTALCODE_' . $vendors_id)); $this->_upsDest($order->delivery['city'], $state, $order->delivery['country']['iso_code_2'], $order->delivery['postcode']); $productsArray = $cart->get_products(); if (DIMENSIONS_SUPPORTED) { // sort $productsArray according to ready-to-ship (first) and not-ready-to-ship (last) usort($productsArray, ready_to_shipCmp); // Use packing algoritm to return the number of boxes we'll ship $boxesToShip = $this->packProducts($productsArray); // Quote for the number of boxes for ($i = 0; $i < count($boxesToShip); $i++) { $this->_addItem($boxesToShip[$i]['length'], $boxesToShip[$i]['width'], $boxesToShip[$i]['height'], $boxesToShip[$i]['current_weight']); $totalWeight += $boxesToShip[$i]['current_weight']; } } else { // The old method. Let osCommerce tell us how many boxes, plus the weight of each (or total? - might be sw/num boxes) $this->items_qty = 0; //reset quantities for ($i = 0; $i < $shipping_num_boxes; $i++) { $this->_addItem (0, 0, 0, $shipping_weight); } } // BOF Time In Transit: comment out this section if you don't want/need to have // expected delivery dates $this->servicesTimeintransit = $this->_upsGetTimeServices($vendors_id); if ($this->logfile) { error_log("------------------------------------------\n", 3, $this->logfile); error_log("Time in Transit: " . $this->timeintransit . "\n", 3, $this->logfile); } // EOF Time In Transit $upsQuote = $this->_upsGetQuote($vendors_id); if ((is_array($upsQuote)) && (sizeof($upsQuote) > 0)) { if (DIMENSIONS_SUPPORTED) { $this->quotes = array('id' => $this->code, 'module' => $this->title . ' (' . $this->boxCount . ($this->boxCount > 1 ? ' pkg(s), ' : ' pkg, ') . $totalWeight . ' ' . strtolower($this->unit_weight) . ' total)' ); } else { $this->quotes = array('id' => $this->code, 'module' => $this->title . ' (' . $shipping_num_boxes . ($this->boxCount > 1 ? ' pkg(s) x ' : ' pkg x ') . $shipping_weight . ' ' . strtolower($this->unit_weight) . ' total)' ); } $methods = array(); for ($i=0; $i < sizeof($upsQuote); $i++) { list($type, $cost) = each($upsQuote[$i]); // BOF limit choices if (!exclude_choices($type, $vendors_id)) continue; // EOF limit choices if ( $method == '' || $method == $type ) { $_type = $type; if (isset($this->servicesTimeintransit[$type])) { $_type = $_type . ", ".$this->servicesTimeintransit[$type]["date"]; } // instead of just adding the expected delivery date as ", yyyy-mm-dd" // you might like to change this to your own liking for example by commenting the // three lines above this and uncommenting/changing the next: // START doing things differently /* if (isset($this->servicesTimeintransit[$type])) { $eta_array = explode("-", $this->servicesTimeintransit[$type]["date"]); $months = array (" ", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); $eta_arrival_date = $months[(int)$eta_array[1]]." ".$eta_array[2].", ".$eta_array[0]; $_type .= ", <acronym title='Estimated Delivery Date'>EDD</acronym>: ".$eta_arrival_date; } END of doing things differently: */ //MVS Start $vendors_data_query = tep_db_query("select handling_charge, handling_per_box, vendor_country, vendors_zipcode from " . TABLE_VENDORS . " where vendors_id = '" . (int)$vendors_id . "'" ); $vendors_data = tep_db_fetch_array($vendors_data_query); $country_name = tep_get_countries($vendors_data['vendor_country'], true); //MVS Start $handling_charge = $vendors_data['handling_charge']; $handling_per_box = $vendors_data['handling_per_box']; if ($handling_charge > $handling_per_box*$shipping_num_boxes) { $handling = $handling_charge; } else { $handling = $handling_per_box*$shipping_num_boxes; } //MVS End $handling_fee = constant('MODULE_SHIPPING_UPSXML_RATES_HANDLING_' . $vendors_id); $methods[] = array('id' => $type, 'title' => $_type, 'cost' => ($handling_fee + $cost + $handling)); } } if ($this->tax_class($vendors_id) > 0) { $this->quotes['tax'] = tep_get_tax_rate($this->tax_class($vendors_id), $order->delivery['country']['id'], $order->delivery['zone_id']); } $this->quotes['methods'] = $methods; } else { if ( $upsQuote != false ) { $errmsg = $upsQuote; } else { $errmsg = MODULE_SHIPPING_UPSXML_RATES_TEXT_UNKNOWN_ERROR; } $errmsg .= '<br>' . MODULE_SHIPPING_UPSXML_RATES_TEXT_IF_YOU_PREFER . ' ' . STORE_NAME.' via <a href="mailto:'.STORE_OWNER_EMAIL_ADDRESS.'"><u>Email</U></a>.'; $this->quotes = array('module' => $this->title, 'error' => $errmsg); } if (tep_not_null($this->icon)) { $this->quotes['icon'] = tep_image($this->icon, $this->title); } // echo '<br> the handling fee from UPS module: ' . $handling_fee; return $this->quotes; } Notice what was added, the query to get the handling charges from the vendor, and a new call to get the "handling_fee" from the module itself. Now you can use either one(or both) to add any charges you wish. I did not see any errors when testing this myself, but backup first to be safe. I am also sorry my involvement has been so spotty lately, just been swamped with work, got to make a living first. The amount of support everyone else has given is remarkable, and this re-enforces why I am involved in open source work, it is VERY rewarding! Craig :)
  21. Oh don't get too worked up, USPS has been giving me the runaround for months now, makes me sick. I am planning on pushing them a bit this week, maybe I'll get something from them. And STEW, thanks, I had hoped this mod would get some real use once I got it working right, and thanks to Jim's help and that of many others, we have one helluva contrib here. Happy Coding! Craig :)
  22. Mike, did "configure" when the emails will be sent? In your Admin, go to Shipping/Packaging, and see the options, this should be all in the "readme". Let us know what you find, Craig :)
  23. I can't find any of the versions on my test and developement sites that have that call "TABLE_ORDERS_VENDORS", so I'm not sure where it came from, it should be "TABLE_ORDERS_SHIPPING", and then from the RC4 release(RC5 was as "unofficial" release), in catalog/includes/database_tables.php, add: //MVS Start define('TABLE_ORDERS_SHIPPING','orders_shipping'); define('TABLE_VENDORS', 'vendors'); define('TABLE_VENDOR_CONFIGURATION', 'vendor_configuration'); define('TABLE_VENDOR_CONFIGURATION_GROUP','vendor_configuration_group'); //MVS End This will define the table you are missing, if you missed this, you might want to double check the rest of your edits to be sure there is nothing else you missed. Craig :)
  24. I have been chasing a java error for a week, and have traced it to something with the java from the STS(I think). The error is Error: document.checkout_address.shipping has no properties Source File: http://www.boattube.com/store/checkout_shipping.php Line: 31 That line is a java function that is standard osC code for radio button selection, in every single osC store I have ever worked with(character for character), so that code itself is not the problem. I beleive this may be coming from the call get_javascript(applicationtop2header) from "sts_display_output.php" but I'm not sure. Anyone have any idea which file this is? I see that I can comment out the java and uncomment the stylesheet to load instead of the java(which isn't really a bad thing since the java can throw errors for no good reason sometimes), but java is the preferred method. Appreciate any suggestions, and STS is soooooooo much simpler to work with than BTS, I'm not sure why anyone would choose BTS over STS. Craig :)
  25. You guys have really been going to town with this, very nice, I like to see lot's of cool mods going on. The order status is set in catalog/checkout_process.php with this 'orders_status' => $order->info['order_status'], and then added to the data array for insertion into the db, note the actual data is from "$order" which is a call from the order class(catalog/includes/classes/order.php), you should be able to add it to any sql update that is functional. Some simple "if"s should be adequate for the confirmation screen and email, you could create a special "order_status" to use for this type of checkout, and then use an if statement to show the text on checkout_success.php and to include in the email(which gets built and sent from checkout_process.php). You should be able to do this part fairly easily, just a search for the apropriate words in these files will lead you to the areas of interest, and viola!, your there. Good luck, Craig :)
×
×
  • Create New...