Commerce glossary

Discounts, coupons and gift cards

Money off an order or a product, the codes and rules that apply it, and stored value such as gift cards and store credit.

49 parts and 16 phrases. Apps in this area include Shopify Discounts, Bold Discounts, Discount Ninja, Rise.ai, BOGOS, Stripe Coupons.

Discount rulesdiscount.ruleShowWhat a discount gives, how it is applied, to what, and under which limits.
Discount typediscount.rule.typeShowWhat the discount gives.

How to extend

  • ProviderMany side by sidediscount rule providerA plugin adds a discount type core does not price, such as buy X get Y, and returns the amount off for a cart.
  • Assistant toolMany side by sideproposeCouponThe assistant proposes a coupon that staff approve before it is created.
PartLitestore todayHow to extend
Percentage offdiscount.rule.type.percentA percentage discount takes a set percent off the items it applies to.
Coremodules/promotions/discount.ts
Provider · manyAssistant tool · many
Fixed amount offdiscount.rule.type.fixed_amountA fixed amount discount takes a set sum off, in the store currency.
Coremodules/promotions/discount.ts
Provider · manyAssistant tool · many
Discount capdiscount.rule.type.max_discountA discount cap limits a percentage discount to a maximum amount off.
Coremodules/promotions/evaluate.ts
Provider · manyAssistant tool · many
Free shipping discountdiscount.rule.type.free_shippingA free shipping discount removes the shipping charge when its code or rule applies.
Plugin
Provider · manyAssistant tool · many
Item free or reduced with quantitydiscount.rule.type.quantity_get_itemA buy X get Y discount gives set items free or reduced when the cart holds a set quantity of other items.
Plugin
Provider · manyAssistant tool · many
Tiered discountdiscount.rule.type.tieredA tiered discount gives a bigger discount at each higher spend or quantity step, such as 10% over 50 and 20% over 100.
Plugin
Provider · manyAssistant tool · many
Item added freediscount.rule.type.gift_itemA free gift discount adds a set product to the cart at no charge when a condition is met.
Plugin
Provider · manyAssistant tool · many
How it is applieddiscount.rule.applicationShowHow a discount gets onto a cart.

How to extend

PartLitestore todayHow to extend
Discount codediscount.rule.application.codeA discount code is a word the shopper types at the cart or checkout to apply the discount.
Coremodules/checkout/cart-discounts.ts
Event · manySlot · many
Automatic discountdiscount.rule.application.automaticAn automatic discount applies itself to every cart that meets its conditions, with no code.
Coremodules/promotions/default-automatic-discounts.ts
Event · manySlot · many
Private codediscount.rule.application.private_codeA private code is valid but never listed in public code suggestions, and is sent only to chosen people such as in a welcome email.
Coremodules/promotions/storefront/queries.ts
Event · manySlot · many
Suggested codesdiscount.rule.application.suggested_codesSuggested codes list the public codes a signed-in customer qualifies for during checkout.
Coremodules/checkout/storefront/checkout-extras.ts
Event · manySlot · many
Partner codediscount.rule.application.partner_codeA creator code belongs to one creator or affiliate, and orders that use it count toward that person's commission.
Coremodules/creators/storefront/collab-coupons.tsx
Event · manySlot · many
Unique codesdiscount.rule.application.unique_codesUnique codes are many single-use codes for one discount, each given to one person.
Plugin
Event · manySlot · many
Bulk code generationdiscount.rule.application.bulk_codesBulk code generation creates hundreds or thousands of codes for one discount at once and exports them as a file.
Plugin
Event · manySlot · many
What it applies todiscount.rule.scopeShowWhich part of the order the discount reduces.

How to extend

  • Core onlyWhich lines a discount reduces stays in core because the same split drives refunds and tax.
PartLitestore todayHow to extend
Whole orderdiscount.rule.scope.orderAn order discount reduces the cart subtotal as a whole.
Coremodules/promotions/discount.ts
Core only
Chosen productsdiscount.rule.scope.productA product discount reduces only the cart lines for the products it names.
Coremodules/promotions/target-resolver.ts
Core only
Collectiondiscount.rule.scope.collectionA collection discount reduces only the cart lines for products in one collection.
Coremodules/promotions/target-resolver.ts
Core only
Shippingdiscount.rule.scope.shippingA shipping discount reduces only the shipping charge.
Plugin
Core only
Conditionsdiscount.rule.conditionShowWhat must be true for the discount to apply.

How to extend

  • ProviderMany side by sidediscount rule providerA plugin adds a condition, such as a customer tag, and returns whether a cart passes it.
PartLitestore todayHow to extend
Minimum spenddiscount.rule.condition.min_spendA minimum spend condition applies the discount only when the cart subtotal before discount reaches a set amount.
Coremodules/promotions/evaluate.ts
Provider · many
Minimum quantitydiscount.rule.condition.min_quantityA minimum quantity condition applies the discount only when the cart holds a set number of qualifying items.
Plugin
Provider · many
First orderdiscount.rule.condition.first_orderA first order condition applies the discount only to a customer with no earlier paid order.
Coremodules/checkout/price-resolution.ts
Provider · many
Returning customerdiscount.rule.condition.returning_customerA returning customer condition applies the discount only to a customer with an earlier paid order.
Coremodules/checkout/price-resolution.ts
Provider · many
Earlier unpaid cartdiscount.rule.condition.unpaid_cartA cart abandoner condition applies the discount to a shopper who left an earlier cart unpaid.
Coremodules/checkout/price-resolution.ts
Provider · many
Large cartdiscount.rule.condition.large_cartA high intent condition applies the discount to a large cart, such as one over a set value or with several different products.
Coremodules/checkout/price-resolution.ts
Provider · many
Chosen customersdiscount.rule.condition.customer_eligibilityA chosen customers condition applies the discount only to named customers or a customer segment.
Plugin
Provider · many
Currency matchdiscount.rule.condition.currency_matchA currency match condition rejects a fixed amount discount in a cart of a different currency.
Coremodules/promotions/evaluate.ts
Provider · many
Limits and combiningdiscount.rule.limitShowHow often, when, and alongside what a discount may be used.

How to extend

  • Core onlyUsage counts and limits stay in core because they are enforced under a lock at payment.
PartLitestore todayHow to extend
Total usage limitdiscount.rule.limit.usage_limitA total usage limit caps how many orders across all customers may use the discount.
Coremodules/promotions/evaluate.ts
Core only
Per-customer limitdiscount.rule.limit.per_customerA per-customer limit caps how many times one customer may use the discount, often once.
Coremodules/promotions/evaluate.ts
Core only
Start and end datesdiscount.rule.limit.scheduleStart and end dates set the window in which the discount is valid.
Coremodules/promotions/coupon-live-window.ts
Core only
One discount per cartdiscount.rule.limit.single_discountA one-discount rule allows a single code or points redemption per cart, and applying one replaces the other.
Coremodules/checkout/cart-discounts.ts
Core only
Automatic discount prioritydiscount.rule.limit.priorityAutomatic discount priority picks the highest-ranked automatic discount when a cart qualifies for several.
Coreplatform/config/pricing.ts
Core only
Discount combinationsdiscount.rule.limit.combinationDiscount combinations list which other discounts a discount may be used with on the same order.
Plugin
Core only
Stored valuediscount.valueShowBalances a customer spends like money: gift cards and store credit.
Gift cardsdiscount.value.gift_cardShowStored value bought or issued as a code and spent at checkout.

How to extend

  • EventMany side by sideevent.order.paidA gift card plugin subscribes to paid orders to issue its own cards.
  • Core onlyGift card balances stay in core because they are conserved amounts spent at checkout.
PartLitestore todayHow to extend
Gift card productdiscount.value.gift_card.sell_cardA gift card product is sold like any product, and paying for it issues a gift card code for its value.
Coremodules/promotions/gift-cards.ts
Event · manyCore only
Gift card emaildiscount.value.gift_card.delivery_emailA gift card email sends the code and value to the buyer once the order is paid.
Coremodules/email/templates/gift-card-issued.tsx
Event · manyCore only
Gift card balancediscount.value.gift_card.balanceA gift card balance holds the amount left on a card, and a card with no balance is rejected.
Coremodules/promotions/evaluate.ts
Event · manyCore only
Partial redemptiondiscount.value.gift_card.partial_redemptionPartial redemption spends part of a gift card on one order and keeps the rest for later orders.
Coremodules/orders/payments/payment-webhook.ts
Event · manyCore only
Gift card expirydiscount.value.gift_card.expiryA gift card expiry date ends the card's validity, after which it is rejected.
Coremodules/promotions/evaluate.ts
Event · manyCore only
Customer gift card listdiscount.value.gift_card.customer_listA customer gift card list shows the cards a customer owns with their balances in the account area.
Coremodules/promotions/gift-cards.ts
Event · manyCore only
Scheduled gift to recipientdiscount.value.gift_card.recipient_scheduleA scheduled gift sends the card to a named recipient on a chosen date with a message from the buyer.
Plugin
Event · manyCore only
Physical gift carddiscount.value.gift_card.physical_cardA physical gift card is a printed card with a code that is redeemed online or in a shop.
Plugin
Event · manyCore only
Store credit and pointsdiscount.value.creditShowBalances a customer earns or is given and spends at checkout.

How to extend

  • Core onlyCredit and points balances stay in core because every change is a ledger movement tied to an order or refund.
PartLitestore todayHow to extend
Store creditdiscount.value.credit.store_creditStore credit is a balance on the customer's account, such as from a refund, that is spent as money off later orders.
Coremodules/orders/refunds/refund-requests.ts
Core only
Points redemptiondiscount.value.credit.points_redemptionPoints redemption converts loyalty points into money off the cart at a set rate.
Coremodules/promotions/loyalty
Core only
Credit from order valuediscount.value.credit.order_value_creditCashback credit adds a percentage of an order's value to the customer's balance after the order.
Plugin
Core only
Sale pricesdiscount.saleShowLower prices set on the product itself, without a code.

How to extend

  • SectionMany side by sidestorefront.section.countdownA countdown section shows the time left in a sale on a storefront page.
  • Assistant toolMany side by sideproposeProductPriceUpdateThe assistant proposes a price change that staff approve.
PartLitestore todayHow to extend
Sale pricediscount.sale.sale_priceA sale price is a lower price stored on a variant beside its regular price.
Coremodules/products/pricing/core.ts
Section · manyAssistant tool · many
Crossed-out regular pricediscount.sale.reference_priceA compare-at price shows the regular price crossed out next to the sale price.
Coremodules/products/pricing/core.ts
Section · manyAssistant tool · many
Sale windowdiscount.sale.sale_windowA sale window sets the start and end time of a sale price, outside which the regular price applies.
Coremodules/products/pricing/core.ts
Section · manyAssistant tool · many
Sale countdowndiscount.sale.countdownA sale countdown shows the time left until a sale ends.
Coremodules/storefront/sections/discount-timer.tsx
Section · manyAssistant tool · many
Sold share bardiscount.sale.sold_shareA claimed stock bar shows the share of a limited sale quantity already sold.
Planned
Section · manyAssistant tool · many

What the phrases mean

The words apps use for a feature, and the plain parts the feature is made of, in the order they happen.

Phrases left out

These phrases mean different things at different apps, so the glossary doesn't map them.

  • smart discountsVendors use it for automatic discounts, personalised offers and AI-set prices alike.
  • dynamic pricingIt means rule-based tiers at one vendor and prices changed by demand at another.
  • promotionIt covers any discount, sale, banner or campaign, so it maps to no single part.

Sources

The app documentation these parts were checked against.