Free shipment for sales bigger than an amount

It is a common practice that when delivering products the carriers cost are not added to the sale when the sale amount is bigger than a threshold (i.e: Free shipment for 50€ or more orders).
It will be great to allow the user to configure this amount in Tryton.

I see two options here:

  1. Add a field on carrier, so each carrier has it’s minimum amount
  2. Add a global configuration, so all shipments will be free until the amount is reached, no mather of the amount.

I’m not sure which one is the best.

Once we have the amount defined, the sale_shipment_cost module will compare the sale untaxed amount with the limit defined and only include the cost line if the amount is lower than the limit.

Toughts?

For me, there is nothing to change in sale_shipment_cost because it is just a matter of returning a null price in get_sale_price.
So for me, it will be better to convert all carrier_cost_method into a MatchMixin pattern and add the amount has criteria.

1 Like

I have choosen a design wich holds a default value for free shipment and than a many2one values for different countries, because this threshold depends often on destination.

Indeed using a match mixxing will also alow to add the country as pattern so you can use diferent cost methods and values depending on the country.

Even if usually you should have carriers per country.

Indeed I do not think we must complicate the carrier price computation with a MatchMixin or anything else. This is for two reasons:

  • We must be able to compute price also with only the shipment data
  • The base prices of shipping are based on other information than the sale amount (weight or value)

So for me the free shipping should be managed as a promotion based on the initial amount (new feature).
Of course such promotion would only work if the shipment cost method is based on order (and it does not really make sense when based on shipment).

Here is Issue 9776: Add promotion based on total amount of sale - Tryton issue tracker