Set the delivery threshold from your own data
Pull your order value distribution from Shopify Analytics. Set the free delivery threshold above the median order but inside reach, commonly 20% to 30% above current average order value. Too high and people give up. Too low and you fund delivery on the orders that already qualified.
Then make the gap visible. A progress bar in the cart drawer saying you are twelve pounds away, with two suggested items at that price, converts far better than a banner nobody reads. Check the margin maths before you launch it.
Build bundles with Functions rather than apps
Shopify Scripts retired with the checkout extensibility migration and discount logic now runs through Shopify Functions. Discount functions are widely available, while cart transform and delivery customisation sit on Plus. Bundles and volume breaks run server side, so they hold at checkout and cost nothing in page weight.
Price bundles on a genuine saving of around 10% to 15%. Smaller and nobody notices, larger and you are discounting orders that would have happened. Put the bundle on the product page as a second buying option instead of hiding it in a collection.
Use the post purchase page properly
Shopify’s post purchase extension shows an offer after payment and before the thank you page. The customer accepts with one click and no card re-entry. Because the order is already banked, there is no conversion risk on the original sale.
Offer one item, priced below the original order, that genuinely completes the purchase. Refills, accessories and a second size all work. Take rates in the single digits are normal, which on a busy store still adds a meaningful percentage to average order value.