CodeCutter Posted December 3, 2004 Share Posted December 3, 2004 Is it possible to offer free shipping for certain products only? Can I do this by category, by subcategory, by product? I tried different setting in Admin section, but could not figure it out. Thanks, CodeCutter Quote -- Reality is an illusion caused due to lack of alcohol. -- We are never too old to learn something new. Link to comment Share on other sites More sharing options...
Thomas Whitelock Posted December 3, 2004 Share Posted December 3, 2004 If you are using weights just use a Zero weight and it will give free shipping (I think), however if you are not using weights, you got me on that one. I am in the same boat, out of the blue I was told a few days ago, oh for certain items we do not charge shipping >_< ..DOH. Anyone know how to offer free shipping on certain items when no weights are being used??? tia -ctw Quote "Silence!", thundered Sir Topham Hatt. Link to comment Share on other sites More sharing options...
Guest Posted December 6, 2004 Share Posted December 6, 2004 I'm currently looking for a slightly more complex version of this. A customer of mine want to offer flat shipping rates for his items based on price. However when the price reaches $100.00 they get free shipping. This was easy and I set it up. The problem is he has a couple of items that are over $100.00 but he does need to charge for shipping because they are oversize. If anyone has any ideas on how to do this I would reall appreciate it. I've searched the forums but didn't see anything quite like this. Thanks Quote Link to comment Share on other sites More sharing options...
myford Posted December 6, 2004 Share Posted December 6, 2004 I've got the same issue. I need to offer free s&h on individual items, I tried entering a weight of "0" and it's give me a UPS error on checkout: "An error occured with the UPS shipping calculations. The requested service is invalid from the selected origin. If you prefer to use UPS as your shipping method, please contact the store owner." Ideas anyone ? Quote Link to comment Share on other sites More sharing options...
CodeCutter Posted December 6, 2004 Author Share Posted December 6, 2004 I'm currently looking for a slightly more complex version of this. A customer of mine want to offer flat shipping rates for his items based on price. However when the price reaches $100.00 they get free shipping. This was easy and I set it up. Can you tell me how you did this? Thanks. Quote -- Reality is an illusion caused due to lack of alcohol. -- We are never too old to learn something new. Link to comment Share on other sites More sharing options...
CodeCutter Posted December 6, 2004 Author Share Posted December 6, 2004 I think I figured it how to offer free shipping. Go to Admin => Order Total module => Select amount for "Free Shipping For Orders Over" field. Now I have a question. Can I set up free shipping based on order value as above and also offer free shipping based on weight as set up in "Shipping" module? Has anyone tried it? Was it successful? Thanks. Quote -- Reality is an illusion caused due to lack of alcohol. -- We are never too old to learn something new. Link to comment Share on other sites More sharing options...
myford Posted December 10, 2004 Share Posted December 10, 2004 I've got the same issue. I need to offer free s&h on individual items, I tried entering a weight of "0" and it's give me a UPS error on checkout: "An error occured with the UPS shipping calculations. The requested service is invalid from the selected origin. If you prefer to use UPS as your shipping method, please contact the store owner." Ideas anyone ? <{POST_SNAPBACK}> Well I took a shot at hacking the ups.php module. I modified the else branch where it returns the above error message. Here's the whole chunk of code, where it checks the if a quote was returned.... if ( (is_array($upsQuote)) && (sizeof($upsQuote) > 0) ) { $this->quotes = array('id' => $this->code, 'module' => $this->title . ' (' . $shipping_num_boxes . ' x ' . $shipping_weight . 'lbs)'); $methods = array(); $qsize = sizeof($upsQuote); for ($i=0; $i<$qsize; $i++) { list($type, $cost) = each($upsQuote[$i]); $methods[] = array('id' => $type, 'title' => $this->types[$type], 'cost' => ($cost + MODULE_SHIPPING_UPS_HANDLING) * $shipping_num_boxes); } $this->quotes['methods'] = $methods; if ($this->tax_class > 0) { $this->quotes['tax'] = tep_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']); } } else { //-- allow for 0 weight FREE shipping Ray Dixon 12-09-04 $this->quotes = array('id' => $this->code, 'module' => $this->title . ' (' . $shipping_num_boxes . ' x ' . $shipping_weight . 'lbs)', 'cost'=>"0"); $methods[] = array('id' => 0, 'title' => "UPS Ground - <b>FREE</b><br><b>Note:</b> If you require faster shipping please contact us for additional shipping options.", 'cost' => "0"); $this->quotes['methods'] = $methods; if ($this->tax_class > 0) { $this->quotes['tax'] = tep_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']); } //-- allow for 0 weight FREE shipping Ray Dixon 12-09-04 END } It works for me, as all I want is for the customer to see free UPS Ground if the item is 0 lbs and the only item in the cart. If there are other items in the cart that have a weight greater than 0lbs, then of course a quote is returned and all the shipping options and rates are displayed. The only possible problem would be if the UPS system is down and then there's the potential for items that should have a real quote, to get the free UPS Ground line. Probably a low rate of that happening, so I figure I will handle that with the customer on a case by case basis. Quote Link to comment Share on other sites More sharing options...
ValleyRoaster Posted December 12, 2004 Share Posted December 12, 2004 I came accross this somewhere on this forum it works GREAT for weight items. ____________________________________________________________________ I had a need to be able to send small sample packages to potential customers and charge them a fixed charge which included shipping. (for example I would offer them a sample for $3, have them process it online, bypass the shipping charges, and send it to them through regular mail) I accomplished this by setting the weight of the product to "0". Then made minor changes to two files as follows: In catalog/includes/languages/english/modules/order_total/ot_shipping Changed this: define('FREE_SHIPPING_DESCRIPTION', 'Free shipping for orders over %s'); To: define('FREE_SHIPPING_DESCRIPTION', 'No shipping charge for this order'); In catalog/checkout_shipping.php Just before the following line (around line 99): // process the selected shipping method if (isset($_POST['action']) && ($_POST['action'] == 'process')) { Add the following if statement (remember, just prior to it): if ($total_weight == 0) { $free_shipping = true; include(DIR_WS_LANGUAGES . $osC_Session->value('language') . '/modules/order_total/ot_shipping.php'); } You will need to set the tare weight to zero or set the number in the IF statement to equal your tare weight. -------------------------------------------------------------------------------------------------------------------------------------------------- Thank you for posting this! I came looking for that exact thing - works great except I had to make one edit. This line that you posted: include(DIR_WS_LANGUAGES . $osC_Session->value('language') . '/modules/order_total/ot_shipping.php'); Needed to be changed to this: include(DIR_WS_LANGUAGES . $language . '/modules/order_total/ot_shipping.php'); Thanks again! Amanda ____________________________________________________________________ I used it and it is a VERY easy mod to do and it works great. Quote Life Is Too Short, Enjoy Your Coffee! Pete Link to comment Share on other sites More sharing options...
jellis Posted December 16, 2004 Share Posted December 16, 2004 I'm using the table rate based on price. If I set an item to 0 lbs. quantity and total price doesn't matter. I get no charge on shipping. If the order has a mix of items that ship free and items where the table rate apply, the free shipping items gets added to the shipping total. Example: item A $20 = free shipping item B $20 = Table rate The table is: 74.99:12,299.99:20,749.99:38 qty 1 item A $20 qty 3 item B $60 Order total = $80 Shipping comes out to $20 when it should be $12. How can I set this up? Quote Link to comment Share on other sites More sharing options...
mikey04 Posted December 25, 2004 Share Posted December 25, 2004 I am looking to do something similar, but different enough that I can't get the code snippets above to work. I use UPS and USPS shipping calculations on-the-fly via the built-in XML API modules. I want USPS First Class Mail to come up as $0.00 if it is a valid option, and still display any other USPS and/or UPS services at their regular rate. If First Class is not valid (i.e. the order is too heavy, or shipping internationally, etc.), it just does not show up in the list. It seems simple (some sort of "if service=firstclass then shipping=0"), but I have been unable to work it out in usps.php. Any help would be GREATLY appreciated -- this is basically the last step before I can get running live! Quote Link to comment Share on other sites More sharing options...
mikey04 Posted December 25, 2004 Share Posted December 25, 2004 Wow... 4 days trying to troubleshoot before posting in here, and I solve my problem 10 minutes after I post. For those who may need it in the future for a similar reason (it should work for other services of shipping carriers with slight modifications), it is one line of code in usps.php; it was line 98 in my file. Here it is, along with nearby code for reference: $methods = array(); $size = sizeof($uspsQuote); for ($i=0; $i<$size; $i++) { list($type, $cost) = each($uspsQuote[$i]); // ------------ Free First Class shipping begin -- if ($type == 'First Class') $cost=0; // ------------ Free First Class shipping end ---- $methods[] = array('id' => $type, 'title' => ((isset($this->types[$type])) ? $this->types[$type] : $type), 'cost' => ($cost + MODULE_SHIPPING_USPS_HANDLING) * $shipping_num_boxes); } Quote Link to comment Share on other sites More sharing options...
Guest Posted March 5, 2010 Share Posted March 5, 2010 What if I would like free shipping for all products UNDER 15 kg ? (Everything over will have shipping) I tryed if ($total_weight == < 15) { $FREE_shipping = true; include(DIR_WS_LANGUAGES . $osC_Session->value('language') . '/modules/order_total/ot_shipping.php'); } But the < makes a error. Quote Link to comment Share on other sites More sharing options...
lokust Posted June 17, 2010 Share Posted June 17, 2010 (edited) This is great. One update to this. My scenario: I'm using table rates based on price and want certain products to ship free. When only a free shipping product is in cart, the cost posted here is fine: if ($total_weight == 0) { $free_shipping = true; include(DIR_WS_LANGUAGES . $language . '/modules/order_total/ot_shipping.php'); } However if I have a mix of free shipping and non-free shipping products then this code will do the necessary checks: if (round($total_weight / 777) == $total_count) { $free_shipping = true; include(DIR_WS_LANGUAGES . $language . '/modules/order_total/ot_shipping.php'); } Note that I use the value "777" in product weight field to denote a free shipping product. You can use any numerical value you like. Edited June 17, 2010 by lokust Quote Link to comment Share on other sites More sharing options...
Guest Posted June 22, 2010 Share Posted June 22, 2010 This is great. One update to this. My scenario: I'm using table rates based on price and want certain products to ship free. When only a free shipping product is in cart, the cost posted here is fine: if ($total_weight == 0) { $free_shipping = true; include(DIR_WS_LANGUAGES . $language . '/modules/order_total/ot_shipping.php'); } However if I have a mix of free shipping and non-free shipping products then this code will do the necessary checks: if (round($total_weight / 777) == $total_count) { $free_shipping = true; include(DIR_WS_LANGUAGES . $language . '/modules/order_total/ot_shipping.php'); } Note that I use the value "777" in product weight field to denote a free shipping product. You can use any numerical value you like. I am also using table rates based on price, and am looking for a way to add products to my site that will have free shipping. are you saying that by just adding the following code (with no other contribution) that this will do the trick: if (round($total_weight / 777) == $total_count) { $free_shipping = true; include(DIR_WS_LANGUAGES . $language . '/modules/order_total/ot_shipping.php'); } if so, which file does this code go into? Thanks, Richard Quote Link to comment Share on other sites More sharing options...
Euphemia Posted June 29, 2010 Share Posted June 29, 2010 (edited) Merchant shipping is essential to the world economy, carrying 90% of international trade with 50,000 merchant ships worldwide. The term shipping in this context originated from the shipping trade of wind power ships.Miami Delivery Edited June 29, 2010 by Euphemia Quote Link to comment Share on other sites More sharing options...
AnatIrina Posted June 29, 2010 Share Posted June 29, 2010 (edited) A nation's shipping fleet consists of the ships operated by civilian crews to transport passengers or cargo. Professionals are merchant seaman, merchant sailor, and merchant mariner, or simply seaman, sailor, or mariner. Miami Delivery Edited June 29, 2010 by AnatIrina Quote Link to comment Share on other sites More sharing options...
blr044 Posted June 30, 2010 Share Posted June 30, 2010 I am also using table rates based on price, and am looking for a way to add products to my site that will have free shipping. are you saying that by just adding the following code (with no other contribution) that this will do the trick: if (round($total_weight / 777) == $total_count) { $free_shipping = true; include(DIR_WS_LANGUAGES . $language . '/modules/order_total/ot_shipping.php'); } if so, which file does this code go into? Thanks, Richard Due to the fact, few of my vendors offer free shipping on some of the products, so I would like to incorporate this into my site. So besides Richard, i also would like to know which I need to modify. Thanks. Bennett Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.