curtdonohue Posted August 25, 2011 Share Posted August 25, 2011 Hi, I was wondering if there was a way to configure PrestaShop such that you would determine your shipping costs based on the quantity of items in your cart. Here's an example of what I would like to do: Shipping for the first item = $7.00 Shipping for each additional item up to 5 items = $1.00 Shipping if there are 5 items added to the cart = Free Is this possible either with settings, code modifications, or some module? 1 Link to comment Share on other sites More sharing options...
Jiri FAMiNE Cermak Posted August 25, 2011 Share Posted August 25, 2011 Base shipping on weight, to all products set weight = 1 and then simply create appropriate shipping price ranges. 1 Link to comment Share on other sites More sharing options...
curtdonohue Posted August 25, 2011 Author Share Posted August 25, 2011 Hi Jiri, I think I see what you mean. If I understand you correctly, you would have to set up the following weight ranges (in accordance with my example above): 0lb to 1lb where shipping = $7.00 1lb to 2lb where shipping = $8.00 2lb to 3lb where shipping = $9.00 3lb to 4lb where shipping = $10.00 5lb to 999,999lb where shipping = 0$ I would also have to be sure each and every product in my store had a weight of 1lb, no more, no less. If this isn't what you meant, let me know. Otherwise, thanks for the help, this is what I was looking for. 2 Link to comment Share on other sites More sharing options...
Jiri FAMiNE Cermak Posted August 25, 2011 Share Posted August 25, 2011 Hi Curt, yep, that's it. Link to comment Share on other sites More sharing options...
Yafay Posted February 18, 2013 Share Posted February 18, 2013 Hi, I still prefer a module which able to base shipping on quantity. I would have to re-upload my products by setting the weights, so weight range is not an easy way to set shipping cost. Link to comment Share on other sites More sharing options...
blueraccoon Posted March 27, 2013 Share Posted March 27, 2013 Hi, I still prefer a module which able to base shipping on quantity. I would have to re-upload my products by setting the weights, so weight range is not an easy way to set shipping cost. Exactly. I would pay good money for a module that offered a solution. You can trick the system using the weight scenario but not every product would have the same quantity shipping bands so things become very messy! Link to comment Share on other sites More sharing options...
desquinn Posted April 11, 2013 Share Posted April 11, 2013 +1 on the module idea. My client has the following shipping regime: tier 1 - £9.95 tier 2 - £50 for item 1 then £10 for each additional item tier 3 - £80 for item 1 then £20 for each additional item On top of this there is a zone (postal code) modifier for tier 2 and 3 where the price is marked up for certain zones in the UK I was going to use weight to arrange the tiers as I have done that previously in another shop and got the price modifier for the zones sorted using zones/states but the additional items is a nightmare that I am not sure I can do without a module or something!!! Link to comment Share on other sites More sharing options...
PascalVG Posted April 11, 2013 Share Posted April 11, 2013 (edited) Yafay, If you know some basic SQL, goto your phpMySQL database editor and edit the PS_Product table and UPDATE the weight field value-> 1. (N.B> Make sure you know what you're doing. First make a backup of your database, or at least the PS_product table! (Did you backup??) Run the SQL query (you did backup, yes?): UPDATE `ps_product` SET weight=1.000 Voila. This will set the weight field of ALL products to 1.000 Pascal Edited April 11, 2013 by PascalVG (see edit history) Link to comment Share on other sites More sharing options...
PascalVG Posted April 11, 2013 Share Posted April 11, 2013 Curt, Be careful with your upper range values!! If you want to use 1,2,3 as weight, and set your values as 0-1 : 1$ 1-2 : 2$ 2-3 : 3$ 3-4 : 4$ ... You will be surprised that it will stubbornly give 1 item -> 2$ 2 items -> 3$ 3 Items -> 4$ ... Why? Because the UPPER range value is NOT included in the range!! (see the tiny letters next to the input field) So 0-1 means from 0 (included) up until 0.999 (included) 1-2 means from 1.000 (included) until 1.999 (included) so you see, the rounded number is every time included as lower value of the NEXT range step, not the higher range value of the previous one. :-( So, to make it work, add the following range: 0 - 1.001 : 1$ ->gives range from 0 (included up until 1.000 (included) 1.001 - 2.001 : 2$ ->gives range from 1.001 (included up until 2.000 (included) 2.001 - 3.001 : 3$ ->gives range from 2.001 (included up until 3.000 (included) 3.001 - 4.001 : 4$ ->gives range from 3.001 (included up until 4.000 (included) etc. Also, make sure the upper range is exactly the same as the following lower range value, otherwise you create unexpected 'gaps' in your ranges) Hope this helps, Pascal 3 Link to comment Share on other sites More sharing options...
GoodWeb Posted November 2, 2016 Share Posted November 2, 2016 I've used your hacky work-around. It's a shame a built in "by quantity" method is not available. Link to comment Share on other sites More sharing options...
martinos Posted January 11, 2017 Share Posted January 11, 2017 Wow. This worked Link to comment Share on other sites More sharing options...
Recommended Posts