Start with the promise your customer reads.
Decide where the offer applies, which items qualify and what the customer must spend. “Free delivery from €50 after discounts, within the Netherlands” is more useful than a short banner that leaves those conditions hidden. Keep the product page, delivery information and checkout consistent.
Choose the threshold using your own delivery cost, product margin and basket mix. A higher basket value alone does not show that the offer earns more. Compare the additional contribution with the delivery cost you absorb.
Set the zone and requirement together.
In WooCommerce, open Settings → Shipping → Shipping zones. Edit the relevant zone, add Free shipping and choose the minimum-order requirement. If the offer also needs a coupon, distinguish the AND and OR options: they describe different offers.
Check “Apply minimum order rule before coupon discount” deliberately. The label is about the amount used for eligibility. It does not cancel the discount or change what the customer pays for the products. Test the actual tax display and product mix in your own shop.
A €50 threshold, with two different discount rules.
This fictional example uses one delivery region, qualifying physical products and a consistent amount basis. Delivery charges are outside the values shown. Each €10 coupon is assumed valid; no coupon is combined with another.
| Before coupon | Coupon | After coupon | Check before discount | Check after discount |
|---|---|---|---|---|
| €49 | €0 | €49 | No | No |
| €50 | €0 | €50 | Yes | Yes |
| €55 | €10 | €45 | Yes | No |
| €60 | €10 | €50 | Yes | Yes |
Check the customer journey, then the wording.
Use a test environment to try the boundary and the discounted basket. Check the matched address, delivery method, displayed charge and order details. Repeat on a phone and for any region with a different rule. A product marked virtual or a specialist shipping extension may follow another route.
If the method is missing, confirm the matching zone and the requirement before changing the banner. If the basket is correct but the wording is misleading, update the promise wherever it appears. Repeat the same basket after a relevant rule change.