Buy one, get one — built in.
This release brings a full buy-X-get-Y engine to promotions: choose how many items per group get discounted and exactly which ones. You can also mark a promotion exclusive so it never stacks, set flat-rate discounts to the cent, and order-total thresholds now respect decimals — with promotion type names reading in your store's language again.
Promotions
Buy X, get Y — down to which item is free
The Quantity Adjustment action is now a complete buy-X-get-Y engine. Set the group size (buy X), how many units per group get discounted (get Y), and which units are picked — cheapest, priciest, by quantity, by net price, or by line total, with or without modifiers. Pair it with a 100%-off Percent Per Unit calculator and "lowest unit price first" to run a classic Buy-1-Get-1 where the cheapest item is free.
Promotions › Actions — a Buy-2-Get-1: one unit per pair, the cheapest, discounted 100%.
Make a promotion exclusive
Every promotion now has a Stackable toggle. Leave it on and the promotion combines freely with others, exactly as before. Turn it off to make it exclusive: it applies only when it's the only promotion on the order, and nothing else joins an order that already holds it. When exclusives collide, the Priority field decides the winner. Existing promotions stay stackable, so nothing changes until you choose to make one exclusive.
Promotions › Details — the Stackable toggle; turn it off to make a promotion exclusive.
Set discounts and shipping rates to the cent
The Flat Rate calculator now accepts decimal amounts, so you can take exactly 2.50 off an order or charge a 4.99 flat shipping rate — no more rounding to whole numbers. It applies everywhere Flat Rate is used: promotion actions and flat-rate shipping methods.
Promotions › Actions — a Flat Rate discount set to a decimal amount.
Order-total thresholds honor the cents
An Order Total rule with a decimal minimum now gates at the exact amount. Previously a threshold like 500.50 was read as 500, so the promotion could qualify orders it shouldn't have — thresholds now compare the full decimal value.
Type names read in your store's language
The Type column on a promotion's Rules and Actions tabs shows the translated name again, instead of the raw internal label. Stores running in another language see promotion actions and rules named correctly throughout.
Promotions › Actions in Thai — the Type column renders localized names.
