Native Shopify Discounts vs a Promotion App
A capability checklist: what native Shopify discounts document, what Shopify Functions let apps add, and which offers still need an app, with sources.
Before you add an app to run promotions, find out what the platform already does. Shopify's Help Center is specific about what its native discounts do and where they stop. This post is a checklist built only from Shopify's own documentation. Each row names the page it comes from. Where a page does not say something, the row says so instead of guessing. It names no other app and quotes no prices; plan requirements for our own templates are on the pricing page.
What native Shopify discounts are
The Help Center's discount types page lists three native types. Amount off discounts take a percentage or a fixed sum off a product, a collection or a whole order. Buy X get Y discounts reward customers who meet set purchase requirements and can be codes or applied automatically at checkout. Free shipping discounts waive shipping for qualifying customers and can exclude high-cost shipping rates. Everything below is a detail of one of these three, or a limit on how they combine. For the combination rules in depth, see Shopify Discount Stacking, Explained.
The checklist
| Offer or question | What the Shopify page documents | Page |
|---|---|---|
| Percentage or fixed amount off | Applies to specific products, specific collections or the whole order | Amount off products and order discounts |
| A minimum before the discount applies | A minimum purchase amount, or a minimum quantity of items; the purchase amount counts product prices only, with shipping costs and taxes not included | Amount off products and order discounts |
| Buy X get Y: who adds the item | Customers must add all items to their cart manually; the free or discounted "get" item is never automatically added | Buy X get Y discounts |
| Buy X get Y with the same product in both | For automatic discounts, the lower-priced item the customer chooses is the one discounted; the page does not say how codes handle it | Buy X get Y discounts |
| Cap on uses | For codes: a total-uses limit, a one-per-customer limit tied to email address or phone number, and a maximum number of uses per order. For automatic discounts: only the per-order limit | Buy X get Y discounts |
| Minimum purchase on Buy X get Y | Products count at their full price, before any other discount; an item that already has a product discount does not count at all | Buy X get Y discounts |
| Minimum purchase on free shipping | Products count at their discounted price | Free shipping discounts |
| Active automatic discounts | A maximum of 25 active automatic discounts | Combining discounts |
| Codes on one order | Up to 5 product or order discount codes and 1 shipping discount code | Combining discounts |
| Two product discounts on one line | Requires the Shopify Plus plan | Combining discounts |
| Customer segments | Up to 5 segments on an automatic discount, up to 100 on a code | Managing discounts |
| Tiered, multi-step or custom eligibility | Listed as advanced needs, with discount apps from the Shopify App Store suggested, and Checkout Blocks for Shopify Plus stores | Discount types |
Two rows are worth a second look, because they come up in real stores.
Minimum purchase rules differ by type. On Buy X get Y, products count at full price before other discounts. On free shipping, they count at the discounted price. A store that runs a Buy X get Y and a free shipping threshold on the same cart can see the two disagree about whether the cart has qualified. The fix is to test a cart with a code on it against each discount, not to assume one rule.
The "get" item is never added for the shopper. If your offer is "buy this and a free tote is added," native Buy X get Y does not do that on its own. The shopper has to add the tote, and the discount then applies. That is a design choice with consequences for an offer you want to feel automatic.
What Shopify Functions let apps add
Apps extend discounts through Shopify Functions. Shopify's developer documentation says Functions "enable you to create discount functionality that isn't offered out of the box with Shopify," and gives volume discounts with different discount rates at defined quantity thresholds as an example. The Discount Function API reference says a single function can apply savings across three discount classes: product, order and shipping. It also states a limit: you can activate a maximum of 25 discount functions on each store.
Taken together with the Help Center's 25 active automatic discounts, which includes app-based discounts, this gives two ceilings of 25 that both involve apps. The practical implication is a count, not a verdict: list every discount you have active, including the app-created ones, before a busy season.
The developer documentation also tells you what it does not say. The developer overview page does not cover rules for combining discounts or plan requirements, and it points to Help Center pages for details. Check those pages for your own setup.
Which offers native handles well
Native discounts are a good fit when the offer is one condition and one reward, and the shopper is happy to take an action:
- One sitewide or collection sale. Amount off, a start and end date, possibly a minimum purchase.
- A single code for a campaign or a creator. A code with a usage limit and an end date. Discount Codes vs Automatic Discounts compares codes and automatic discounts in detail.
- A simple Buy X get Y where asking the shopper to add the second item is fine.
- One free shipping threshold. A minimum purchase and, if you want it, a cap that excludes shipping rates above a set cost.
For these, an app adds a second place to manage the same thing.
Which offers need something beyond native
The Help Center names tiered discounts and multi-step discounts as the point where it points to apps. In practice, that covers:
- A ladder with several steps (more spent, a larger reward, with each step defined separately). Tiered Cart Discounts on Shopify: Setup shows what you can and cannot build with several native discounts.
- A gift that appears in the cart without the shopper adding it. Native Buy X get Y does not add the item.
- Quantity steps (buy 2, save 10 percent; buy 3, save 20 percent) as one offer instead of several overlapping discounts.
If you are not sure that an app is the right call, How to Choose a Shopify Free Gift App lists ten questions to ask any app before installing it.
Where Freebies Engine by Log Studio Lab fits
We describe our templates by their own catalog entries. "Spend X, get a gift" is described as "Shoppers who reach a cart value get a gift added automatically." "Gift tiers" is described as "More spent, more gifts, in as many steps as you like." "Volume discount" is described as "The more shoppers buy, the less each costs," with the example "Buy 2, save 10%; buy 3, save 20%." "Cart discount tiers" is "A discount on the whole cart that grows with spend." The first four map to the gaps above: an added gift, steps, quantity tiers and a ladder on the whole cart. The features page shows the full list.
To see the difference on a real cart, build the Spend X, get a gift template next to a native Buy X get Y in a development store, and compare what the shopper has to do in each. Plan requirements are on the pricing page.
Sources
- Shopify Help Center: Discount types (accessed October 10, 2026)
- Shopify Help Center: Amount off products and order discounts (accessed October 10, 2026)
- Shopify Help Center: Buy X get Y discounts (accessed October 10, 2026)
- Shopify Help Center: Free shipping discounts (accessed October 10, 2026)
- Shopify Help Center: Combining discounts (accessed October 10, 2026)
- Shopify Help Center: Managing discounts (accessed October 10, 2026)
- Shopify developer docs: Build discounts with Shopify Functions (accessed October 10, 2026)
- Shopify developer docs: Discount Function API (accessed October 10, 2026)