Shipping rates per country based on fixed pricing


I want to add pricing based on fixed rates per country. The rates are based on amount of wines, prices from 1-12 bottles of wine should be:

Belgium: €13,50
Germany: €16,50
France: €31,50
Italy: €31,50
Spain: €41,50

How can I set these rates in Snipcart?


Hi Daniel,

Depending on your shop and different products for sale, you could use custom shipping methods Shipping – Snipcart Documentation

If you only use custom shipping and no integrated shipping, you could set all your bottles weight to 1 (or any other number) and set your pricing on the weight according to number of bottles.

If you sell other products which would have different logic, you will need to setup your own shipping webhook Webhooks: shipping – Snipcart Documentation

Thanks so much, I only struggle with the weight, how can I set this so that I have 1-12 bottles and 12-24 bottles etc.?

Thanks again!

Can someone please help me to complete this? Thanks!

If you set the weight of each bottle to 1, you can have custom shipping options for packages weighing 12 or less, 13-24, 25-36, etc., all at different rates for each country. See the shipping link @fxtardif provided above for details.

Sorry, but it makes no sense…I added different rates for Belgium set weight to 1-12 and 13-24, but now the shipping doesn’t work any more when selecting Belgium. Can you explain step by step what to do? Thanks! @billywight

Hey Iggy. The first step is exactly what you’ve done so far: adding different rates for each weight range under the shipping methods section of the dashboard. Maybe that’s €13,50 for 1–12 and then, in a new row, €18,00 for 13–24, or something like that. But these are gram-based weight measurements, not just bottle quantities—the shipping calculation isn’t set up to interpret those. So the second step is quantizing bottle quantity and weight at 1:1, basically making your bottle quantities legible to the shipping calculation. You would do this by defining the bottle weight using the data-item-weight attribute. Your “add to cart” button for any given product that you want to apply this logic to should include data-item-weight="1", which tells the shipping calculation: for the purpose of determining cost, let’s say that 1 bottle = 1 gram.

This is outlined pretty well in this video at the 1:10 mark.

If you’ve done the above steps and this still isn’t working, it may be helpful if you could share some of your code and/or screenshots from your dashboard.


Thanks so much for the detailed help! Got it working now @lucasreif :slight_smile: