Discounts on POS, draft orders, and subscriptions
Updated Sep 10, 20264 min read
Discounts behave differently away from the online store checkout. This page covers the four surfaces that generate the most surprises: Shopify POS, draft orders, the post-purchase page, and subscriptions. All of it is Shopify behavior, and it applies to Hype Bundles discounts too, because they are Shopify Function discounts.
Shopify POS
POS supports all three discount classes — order, product, and shipping (POS discount management).
| Works at POS | Detail |
|---|---|
| Custom, manually applied discounts | On a single line item or the whole cart, including on exchanges |
| Discount codes created in the admin | Added during POS checkout |
| Automatic discounts | POS Pro only |
| Stacking multiple discounts | Only where they are configured to combine |
| Discounts created by apps using Discount Functions | Supported — the Discount Function API lists POS as Supported |
Automatic discounts reach POS in one of two ways (Sales channel discounts):
- Tick Apply on POS (Pro locations only) in the Availability section, with eligibility set to All customers.
- Or set eligibility to Markets and assign a valid Retail market — the discount then applies automatically at POS Pro locations in that market.
Without POS Pro, an automatic discount simply will not run in store. Discount apps can also be surfaced on the POS Smart grid through the POS editor.
Draft orders
The rule that catches most merchants: "Automatic discounts won't automatically apply to orders created as drafts in your admin" (Draft order discounts). You have to apply them by hand.
Supported on a draft order:
- Discount codes, up to 5 per order.
- Automatic discounts, applied manually.
- Custom order-level discounts, fixed amount or percentage.
- Line-item discounts, fixed amount or percentage.
- A single discount code with multiple savings created by an app (Discounts with apps).
Not supported on a draft order:
- Shipping discount codes. For discounted shipping, add a custom shipping rate instead.
- Buy X get Y discount codes.
- Anything at all if you use
checkout.liquid: "Discount codes and automatic discounts aren't compatible with checkout.liquid."
By default customers can't apply codes at draft-order checkout, but you can enable it per draft order.
For app discounts specifically, Shopify lists Draft Order (Admin) and Draft Order (Checkout) as partially supported: "Discount functions with network access aren't supported on draft orders" (Discount Function API).
The post-purchase page
Nothing you created in the admin reaches it. Automatic discounts created in the Shopify admin don't apply to the post-purchase page at checkout, discount codes don't apply there either, and a code redeemed at checkout won't combine with a post-purchase offer (Automatic discounts).
Subscriptions
Shopify Subscriptions supports dollar amount, percentage, buy X get Y, and fixed-amount discounts on subscription products (Subscription discounts). For Buy X get Y, where subscriptions are enabled, the "buy" and "get" items can each be scoped to one-time purchase, subscription, or both.
The recurring shipping discount gotcha
This one costs real money, so read it twice. For function-based discounts, which includes every Hype Bundles discount, Shopify lists Subscription (Recurring Orders) as partially supported:
The function isn't re-run when the recurring orders are created. Any shipping discount applied to the origin order defaults to a 100% shipping discount on recurring orders, regardless of the original discount value.
So a function discount that took 10% off shipping on the first order gives away shipping entirely on every renewal after it. If you sell subscriptions, avoid putting a shipping discount into a function-based campaign unless free shipping on every recurring order is what you actually want.
Other surfaces for function discounts
| Surface | Status |
|---|---|
| B2B, Cart, Checkout, POS, Shopify Admin, Storefront (headless), Storefront Accelerated Checkout | Supported |
| Draft Order (Admin), Draft Order (Checkout) | Partially — no network-access functions |
| Order Edit (Checkout) | Partially — the function isn't re-run when editing an order |
| Subscription (Recurring Orders) | Partially — see above |
Create Order API (orderCreate) | Not supported |
| Order Edit (Admin) | Not supported |
| Pre-order and Try Before You Buy | Not supported |
Source: Discount Function API.
Because Hype Bundles discounts are function discounts, this table is the definitive answer to "will my campaign work on X?" In Hype Bundles, the offer types and the discounts they create are described in Which offer type should I use?.
Related
Was this article helpful?
Related articles
Still need help?
Start a chat and we'll pick it up right here.