Discount codes vs. discount rules
Dashboard splits checkout discounts into two pages. Both are backed by the same rule engine—the only difference is whether the shopper has to enter a code.
| ↕ | Discount codes↕ | Discount rules↕ |
|---|---|---|
| Dashboard page | Settings → Checkout → Discount codes | Settings → Checkout → Discount rules |
| How it applies | The shopper enters the code at checkout | Automatically, when the order meets the conditions |
| Identifier | Discount code—the value shoppers type | Name—an internal label shoppers never see |
| Underlying rule | Condition includes a :promo_codes: clause | Condition has no :promo_codes: clause |
| Conditions required | None—the code itself is the condition | At least one (minimum purchase or item restriction) |
Both pages are available to online store organizations. Marketplace, postal, and brokerage organizations are redirected away from them.
Create a discount rule
- Go to Dashboard → Settings → Checkout → Discount rules.
- Click New discount rule.
- Enter a Name and, optionally, a Description.
- Choose what the discount adjusts under Apply discount to, and set the start and end dates.
- In the Discount builder, pick the discount type and value, then add at least one condition—a minimum purchase requirement, an item restriction, or both.
- Confirm the generated rule under Rule preview.
- Click Create discount rule.
Details
| Field↕ | What it does↕ |
|---|---|
| Name | Required. An internal label for the rule, shown in the Discount rules list. Shoppers never see it, and it is never added to the rule condition. Apostrophes are allowed. |
| Description | Free-form notes for your team. Not shown to shoppers. |
| Start / end date | When the rule becomes active and when it stops. Leave the end date blank to keep it active indefinitely; set it to a past date to deactivate. |
Apply discount to
The Apply discount to dropdown controls which part of the order the discount adjusts, and caps the discount at that amount—a $50 discount applied to a $20 cart only takes $20 off. Choose Order total, Cart total, Shipping total, or Item.
When you're editing an existing rule, Apply discount to is restricted to options compatible with the rule's original context. To switch between order-level and item-level discounts, create a new rule instead.
Every rule needs at least one condition
A discount code is always gated by the code the shopper types. A discount rule has no code, so it needs something else to decide when it fires—otherwise it would discount every order.
Set at least one of the following in the Discount builder:
- Minimum purchase requirements—a minimum amount and currency. The rule only applies when the shopper's items total is at or above this amount.
- Restrict to specific items—limit the rule to items matched by SKU, product ID, or category.
If you save without either, Dashboard blocks the save with:
A discount rule needs at least one condition. Add a minimum purchase requirement or restrict it to specific items.
Discount builder
The Discount builder assembles the rule for you and works the same way it does for discount codes. Use the Enable toggle in the section header to choose how you author the rule:
- Enable on (default)—the builder fields are shown and the Rule preview is read-only. Change any field and the preview regenerates automatically.
- Enable off—the builder fields are hidden and you edit the rule text directly in the Rule preview.
If you open a rule whose saved logic the builder can't reproduce, the toggle is off and locked, and the rule can only be edited in the preview.
Discount type
- Percentage off—enter the Percentage (0–100) and pick what it's calculated against under Calculate percentage against: Items subtotal, Shipping, Items subtotal + Shipping, or Item amount (available when Apply discount to is Item).
- Fixed amount off—a flat discount. Enter the Amount and choose the Currency.
Requirements
Under Configure when this discount should be available, choose Minimum purchase requirements and set an amount and currency. For a discount rule this is one of the two ways to satisfy the "at least one condition" requirement.
Restrict to specific items
Use Restrict the discount to items matched by SKU, product ID, or category to limit which items the rule applies to: Any item, Specific SKUs, Specific product IDs, or Specific categories (available when Apply discount to is Item).
Each value is committed when you press Enter. Spaces inside a value are allowed (e.g.
Holiday Gifts); empty entries are filtered out. Item matching uses exact equality, soPROD-123will not matchPROD-1234.
For the full reference on the builder fields, see Checkout promo codes and discounts.
Rule preview
The Rule preview shows the rule that gets saved. A rule has two halves
separated by then:
:items_total: >= 100 usd
then :amount: = :shipping: * -1 and :type: = 'SHIPPING'
- The condition (before
then) decides when the rule fires. - The actions (after
then) describe what the discount does and where it applies—:type:is always required and indicates the context ('ORDER_TOTAL','CART_TOTAL','SHIPPING', or'ITEM').
The difference from a discount code is the condition: a discount rule's condition
never contains a :promo_codes: clause. Everything else about the rule
language—operators, variables, and the Operators reference dialog—is
identical. See
Rule preview for the
full rule language reference.
Examples
Click Examples at the bottom of the rule preview to load a ready-made rule. The Discount rules page shows condition-only templates, with no promo code in them:
| Example↕ | What it does↕ |
|---|---|
| Free shipping (100%) | 100% off shipping when the order subtotal is at least $100 |
| Percentage off order total | 10% off the order total when the subtotal is at least $50 |
| Fixed amount off cart | Fixed $5 off cart total when a minimum purchase of $50 is met |
| Free gift by SKU | 100% off a specific item matched by SKU |
| Category discount | 20% off items in a specific category |
Clicking Use this example overwrites the current draft's rule, but keeps the Name you already typed. Use the search field to filter the list.
Which list a discount appears in
Dashboard sorts a saved discount into one of the two pages by looking at its condition:
- Conditions that contain a
:promo_codes:clause appear under Discount codes. - Conditions that don't appear under Discount rules.
Expire a discount rule
To stop an existing rule from applying, you have two options:
Schedule it to expire
- Go to Dashboard → Settings → Checkout → Discount rules.
- Select the rule you want to expire.
- Set the end date to a date in the past (or any future date you want it to stop).
- Click Save changes.
Expire it immediately
- Go to Dashboard → Settings → Checkout → Discount rules.
- Select the rule you want to expire.
- Scroll to the bottom and click Expire discount.
Checkout discount rules
Create discounts that apply automatically when an order meets your conditions—no code required.
A discount rule reduces a shopper's checkout total on its own, as soon as the order meets the conditions you set. The shopper doesn't type anything—if the cart qualifies, the discount is applied.
This is the automatic counterpart to discount codes, which only apply when the shopper enters a code. Both live under Settings → Checkout in Dashboard and share the same builder, rule language, and scheduling.
Use discount rules for offers like: