Discounts

Four kinds

TypeTakes off
Amount off productsA percentage or fixed amount from matching items.
Amount off orderA percentage or fixed amount from the order total.
Free shippingThe shipping charge.
Buy X get YFree or discounted items when a condition is met.

Codes and automatic discounts

A discount is either a code the customer types, or automatic — applied without one when the cart qualifies. It is one or the other; never both.

Codes are matched case-insensitively, so SPRING20 and spring20 are the same code and cannot both exist.

Status is worked out, not set

A discount is scheduled, active or expired based on its start and end dates and the clock. There is no switch to forget to flip: a discount that ends at midnight stops applying at midnight.

Conditions

Discounts can require a minimum subtotal or a minimum quantity, and can be limited to particular products, collections, or customer segments. A discount limited to a segment applies only when the customer is signed in and in it — an anonymous cart cannot claim it.

Usage limits

  • Total uses — across everybody.
  • Uses per customer — a limit an individual cannot pass.

Both are enforced when the order is placed, not when the code is typed, because a code that passes the check and then fails at payment is worse than one that never applied.

The check-out race is handled properly: two customers redeeming the last use of a code at the same instant produce one success and one refusal, not two successes.

Combining

Discounts have a class — product, order or shipping — and each declares which other classes it will combine with.

Two discounts of the same class never stack. A product discount and a shipping discount stack only if both say they will.

When more than one combination is possible, the customer gets the best one. The comparison is on the actual saving, not on the headline percentage: 20% off a $30 item loses to $10 off it, and the system picks the $10.

Order of operations

  1. Product discounts come off the line prices.
  2. Order discounts come off what is left, spread across the lines in proportion.
  3. Shipping discounts come off the shipping charge.
  4. Tax is worked out last, on the discounted amounts.

Spreading an order discount across lines is what makes a later partial refund correct: each line knows its own share, so refunding one item gives back what that item actually cost after the discount, not its pre-discount price.

Rounding is handled so the parts always add back to the whole — no missing cent.

Where to find it

Manage → Discounts.