1. Choose a Plan for Your Offer
A plan lock identifies the required MTD plan. The MTD Plus app plan and Shopify's Shopify Plus platform plan are different subscriptions.
| MTD plan | Main capabilities | Allowance |
|---|---|---|
| Free | Percentage-based product, collection, quantity and price-position offers; schedules, limits and messages. | 2 active campaigns |
| Starter | Buy X Get Y, exact variants, tags, fixed amounts, codes, cart-value and shipping rewards, revenue analytics. | 10 active campaigns |
| Pro | Gift offers, gift priorities, advanced targeting and explicit currency thresholds. | Unlimited |
| Plus | Pro features plus supported mystery-gift checkout presentation on eligible Shopify Plus stores. | Unlimited |
Open Plans & Billing for current prices, trial terms and the complete feature list. Review Shopify's confirmation before approving a charge. Development-store test access does not mean a paid subscription has started.

2. Set Up Your First Offer
Watch tutorial: Get started
Video unavailable. Follow the illustrated steps below.
Use one clearly named test product and a small discount first. Do not begin with a catalog-wide 100% offer.
- Open MTD. The page is headed Discount & Gift Campaigns; the sidebar entry is All Campaigns.
- Select Create New Campaign, then a recipe or custom format.
- In Offer, name the campaign and choose automatic or code execution.
- In Conditions, choose what qualifies.
- In Rewards, configure tiers, gifts or shipping.
- In Review & launch, inspect the summary and choose Save as inactive draft.
- Reopen to confirm the saved values, then activate for a controlled cart and checkout test.


3. Understand the Four Steps
| Step | Question | Settings |
|---|---|---|
| Offer | What promotion? | Name, method, percentage/fixed amount. |
| Conditions | What qualifies? | Trigger type, products, variants, collections or tags. |
| Rewards | What does the customer get? | Tiers, spend thresholds, gift pool, quantities, auto-add and shipping. |
| Review & launch | When and for whom? | Summary, status, schedule, combinations, sorting, limits, presentation and audience. |
A trigger qualifies the offer; a target receives its benefit; a tier is one reward rule. Product tags and customer tags are different. Mystery presentation does not change the fulfillment product.
Advanced controls stay beside the relevant decision. Existing non-default values remain summarized when closed. Closing a disclosure does not reset its values. Use Change in the review summary to revisit a step without discarding the others.




4. Quantity Breaks Are Not Price Positions
Watch tutorial: Quantity breaks
Video unavailable. Follow the illustrated steps below.
Buy More of One Cart Line
Choose Quantity Breaks for “2 units: 10% off; 3 or more: 15% off.” Each cart line is evaluated separately. One unit of each of two products does not create a two-unit line. Different properties can also keep the same variant on separate lines.
- Select the intended product in Conditions.
- Replace the recipe tiers with minimum quantity 2 at 10%, and 3 at 15%.
- Use unlimited discounted quantity per line if every qualifying unit should receive that rate.
- Save inactive, then test quantities 1, 2, 3 and a return to 1.
| Quantity on one line | Rate | Merchandise total |
|---|---|---|
| 1 | None | $18.00 |
| 2 | 10% | $32.40 |
| 3 | 15% | $45.90 |
| 4 | 15% | $61.20 |
The highest matching quantity tier wins. The percentages are not added together. The three-unit result was checked in the real demo cart and checkout.




Discount the Second or Third Position
For “second item 30%, third item 50%,” create both position rules instead. In Quantity and Sorting, High to Low sorts by unit price, not the extended line total. Cart Order follows cart order. The per-line quantity cap limits discounted units on a line.
For three different eligible units at $30, $20 and $10, those two rules with High to Low give $6 off the $20 unit and $5 off the $10 unit: $49 total. This is illustrative arithmetic, not the Cobalt quantity campaign. Test repeated units and split lines separately.

Repeated products: do not infer the result from the number of visible rows. Shopify may group identical units or split them by properties. Check the trigger family, each tier's target and the per-line cap together. Use Quantity Breaks when every unit on a qualifying line should receive the same highest-matching rate; use position rules when the second and third rewards must remain separate.
5. Products, Variants, Collections and Tags
Select qualifying items in Conditions and reward targets in Rewards. Selecting a notebook as a trigger does not also select it as a gift.
- Choose the trigger and open its picker.
- Select a whole product to include its current and future variants. On eligible paid plans, expand products and choose exact variants for particular SKUs, sizes or colors.
- Confirm the picker and check the selection summary in the form.
- Save inactive, reopen and confirm it persisted. Test an unselected product.

A qualifying-item list uses one target kind at a time; gift pools can mix whole products and exact variants. An empty optional product filter means no product restriction, not an empty eligible catalog. For collection offers, check both the trigger collection and any required collection inside each tier. Product-tag rules use product tags; customer tags belong to audience targeting.
| Selection | Includes | Check before launch |
|---|---|---|
| Whole product | Its current and future variants. | A newly added size or color may qualify too. |
| Exact variants | Only the selected variant IDs. | Reopen and confirm the SKU/variant summary, not only the product name. |
| Collection | Products belonging to the configured collection. | Check the trigger and every required tier collection; saving one does not select the other. |
| Product tags | Products with matching configured tags. | Test an untagged product and do not substitute customer tags. |
| Exclude filter | Eligible items except the chosen products or variants. | A theme bar must exclude the same merchandise from its promise. |
After changing a selection, wait for the returned summary before moving on. Reopen after saving to confirm persistence. Removing a selected resource from an optional filter can broaden the offer; removing a required gift target can make the tier incomplete.
6. Buy X Get Y and Full Sets
Watch tutorial: Buy X Get Y
Video unavailable. Follow the illustrated steps below.
Watch tutorial: Full sets
Video unavailable. Follow the illustrated steps below.
Buy X Get Y unlocks configured free targets when selected buy items qualify. A product/collection tiered campaign with Require complete set instead waits for all required set positions. Neither is the same as a quantity break.
- Choose the Buy X Get Y recipe.
- Select the buy items in Conditions and gift targets in Rewards, using compatible target levels.
- Review gift quantity and automatic/code behavior.
- If automatic addition is enabled for the offer, enable Gift Auto-Add on the tested theme.
- Save inactive, then test the qualifying purchase and a cart missing the buy item.
For full sets, define every required product or collection, check whether the trigger itself receives a discount, and verify every position. Do not advertise all set items discounted unless the trigger setting and rewards actually express that.

Build a Full Set Instead
- Choose Tiered discount and a product, collection or tag condition supported by your offer.
- Select the trigger items, then enable Apply only when full set is in cart.
- In Rewards, select every required tier target and its discount. An incomplete set should receive no tier discount.
- If the starting items should also be discounted, enable Apply discount to trigger products and set that separate percentage or amount.
- Test a complete set, an incomplete set, repeated units and removal of a required item.

7. Gift Offers and Automatic Addition
Watch tutorial: Gift offers and Gift Auto-Add
Video unavailable. Follow the illustrated steps below.
A Gift offer can qualify from products, collections or spend. A classic free gift uses a 100% percentage reward. It remains a real Shopify variant with its existing SKU and inventory identity.
- Choose Gift offer or the gift-threshold recipe.
- Choose the trigger; for spend-based gifts, enter the minimum on the reward tier.
- Select the real gift product or exact variants.
- Open Gift delivery, choose application and quantity, and enable Auto-add gift to cart.
- Enable Gift Auto-Add in the exact theme, save inactive, review and test.

- Limit discounted gifts: cap matching gift units.
- Discount all selected gifts: discount the configured targets present in the cart.
- Random one from selected gifts: choose one available configured variant. MTD does not substitute an unrelated product outside the pool.
Example: One Sun Notebook Over $50
The separate gift example uses a $50 minimum, one Sun notebook and auto-add. Three Coral notebooks cost $72 and unlock one Sun at $0. The real cart below also shows Cart Progress; it is not a staged pricing image.

Priority, Removal and Availability
Lower priority numbers win. Stop lower priority prevents eligible lower-priority gift campaigns from adding gifts. Test overlaps together. Manual removal suppresses re-add for the same qualifying cart fingerprint, including after a reload. A genuinely different qualifying paid cart can receive a new gift; emptying the cart alone is not a promise to undo the shopper's choice. Removing the qualifying purchase should remove its gift.
On cart pages with positional quantity fields, MTD preserves the theme's original row order. A gift may appear before paid items; preserving that order prevents quantities being assigned to the wrong product when the native form submits.
MTD chooses a variant, not a warehouse. Shopify inventory, market availability, fulfillment eligibility and order routing determine supply. A random pool can try another configured candidate after a stock rejection. An exact variant does not silently become a different SKU. Gift-counting settings determine whether gift lines count toward other rules; avoid self-qualifying gift loops.
Untracked stock: a zero inventory count is not automatically sold out when Shopify still permits the variant to be sold. MTD respects Shopify's sale verdict and final add result, including the merchant's continue-selling policy. This does not guarantee physical stock at a particular warehouse.
| Control | Effect | Safe first setting |
|---|---|---|
| Gift quantity | Number of discounted gift units for single/random application. | 1 |
| Quantity mode | Fixed quantity or multiplication by qualifying purchase quantity where supported. | Fixed; check repeated quantities before using a multiplier. |
| Count gifts toward other rules | Changes whether marked gift lines contribute to other campaign conditions. | Off unless an intentional cross-offer setup requires it. |
| Priority | Lower numbers win when gift offers compete. | Test all overlapping offers together. |
| Stop lower priority | Blocks eligible lower-priority gift offers. | Off when gifts should coexist. |
8. Cart Value, Currencies and Shipping
Watch tutorial: Cart value and currencies
Video unavailable. Follow the illustrated steps below.
Enter a minimum for each cart-value reward. An optional maximum stops that tier above its upper bound. Test one cent below, exactly at and just above each boundary, including gaps between tiers.
Use the campaign's eligible merchandise subtotal, not shipping, tax or a crossed-out compare-at price. Product exclusions and gift-counting settings affect which items count. Storefront gift checks use final line amounts when Shopify supplies them, falling back to the available line amount. A grand total after order codes is not a substitute for checking that subtotal. Checkout mystery also has stricter final-eligibility checks; test the actual code you intend to support.
Set Currency Thresholds Explicitly
Amounts are not automatically converted. A EUR 90 base with a USD 100 override does not qualify a USD 95 cart. An unconfigured non-base currency does not qualify in the synchronized configuration. Keep the theme bar and campaign amounts aligned; changing a theme label does not change the actual discount.
On Pro and Plus, open Currency-specific thresholds beside the tier. Enter supported minimums and any maximums. The campaign-wide Minimum cart amount has its own overrides. A currency and a customer's country are different settings.
- Enter the shop-currency minimum on the tier.
- Add each supported currency and enter its minimum; enter a maximum too if the tier has an upper bound.
- Repeat for other tiers and any campaign-wide minimum. One override does not configure all other tiers.
- Switch the storefront market and test below, at and above the threshold in its actual cart currency.

Add a Shipping Benefit
- On Starter or higher, enable Add shipping discount to this tier.
- Use 100 for free shipping, or a smaller percentage for partial savings.
- Check the qualifying tier and combinations.
- Test checkout after Shopify has an address and available delivery rates.

Free shipping does not create shipping rates or replace shipping profiles. An empty checkout saying Enter shipping address is not itself a failed free-shipping calculation.
9. Put Widgets Where Customers Need Them
Watch tutorial: Quantity Tiers widget installation
Video unavailable. Follow the illustrated steps below.
Watch tutorial: Cart Progress
Video unavailable. Follow the illustrated steps below.
| Widget | Placement | Purpose |
|---|---|---|
| Quantity Tiers | Product form | Choose and add a quantity-break tier. |
| Bundle Tiers / Discount Badge | Relevant product page | Explain a product offer. |
| Cart Progress | Cart page or supported drawer | Progress toward cart-value rewards. |
| Cross-Sell Cards / Cross-Sell Trigger | Related product/cart area | Items or conditions needed to complete an offer. |
| Collection Upsell | Related product/collection context | Guide shoppers to qualifying collection items. |
| Gift Auto-Add | Theme App embeds | Hidden runtime for automatic gift insertion and cleanup. |
- Open the intended theme in Shopify's theme editor. Draft and published themes are separate.
- Choose the product or cart template; add the MTD block in a supported section near the related purchase controls.
- For gifts, enable Gift Auto-Add under App embeds too. Quantity Tiers alone does not enable gifts.
- Save the theme and test matching and non-matching products, desktop/mobile, cart and checkout.
Customize Without Changing Eligibility
Start with the block's default text and colors. Then adjust its heading, layout, spacing, button labels, visibility and supported campaign filtering. For product-specific blocks, verify variant changes. For cart widgets, verify both drawer and cart page. Use the campaign's real threshold and audience in your copy; changing a heading, a color or a template label never changes Shopify pricing.
Discount Badge and collection/product guidance can be hidden correctly when no matching campaign is active. Dynamic campaign values should remain dynamic rather than being hard-coded into theme text. Reset one override at a time when diagnosing a mismatch. Do not add a visible block merely to enable hidden Gift Auto-Add.
Quantity Tiers needs a relevant quantity campaign. Cart Progress needs a compatible active cart-value campaign. A block can correctly be absent when no campaign matches. A progress message must not promise a gift to customers excluded by country, tags or discount combinations.
See the real Quantity Tiers and Cart Progress plus gift examples. These use an unpublished demo theme, not a modified customer theme.


10. Save, Schedule and Activate Deliberately
Save as inactive draft stores the setup without making it eligible. Activate when saved enables it subject to its schedule and all other conditions. Saved does not necessarily mean active.
- Review every summary group and use Change for corrections.
- Check start/end dates in the displayed shop timezone, which may differ from your browser.
- Review combinations, quantity caps, sorting, cart minimums, maximum discounts, usage limits, presentation and audience.
- Use Preview to inspect presentation, not to certify Shopify pricing.
- Save inactive, reopen to verify persistence, then activate for the intended test or launch window.
The campaign list uses the shop timezone too. A scheduled or expired campaign does not apply merely because enabled is on. When duplicating, recheck the selections, name, code, schedule and status; do not assume a duplicate is automatically a safe draft.
Advanced Settings Reference
| Control | What it changes | Do not confuse it with |
|---|---|---|
| Maximum discounted quantity per product | Discounted units per cart line; 0 = unlimited. | A purchase limit or cart-wide number of discounted products. |
| Sort Order | High-to-Low or Low-to-High unit-price ranking, or Cart Order. | Extended line totals or storefront row placement. |
| Apply minimum cart condition | An extra spend condition on top of the main trigger; has its own currency overrides. | The reward tier's independent minimum. |
| Limit discount amount | An upper bound on the configured discount benefit. | A maximum cart value or a quantity cap. |
| Usage limit | Available for code execution; limits uses of that discount code. | An automatic-campaign stock limit or a guarantee of one use per customer. |
| Customer-facing presentation | Offer title where supported and discount-code messaging. | A change to the real product title, SKU or entitlement. |
Messages and Preview
In Rewards, open Custom Discount Message. The common template can be replaced by per-tier messages. Use the visible variable buttons: {tier} for the tier label, {per} for percentage followed by %, and {perd} for % followed by percentage. Check a real applied discount label after editing, especially with a fixed amount. An empty custom message uses the app's fallback text.
Preview helps review presentation and supported example calculations; it is not a substitute for Shopify cart/checkout or a live market test. Correct a summary with Change, then return to Review & launch before saving.
11. Combinations and Discount Codes
Watch tutorial: Combinations, schedules and limits
Video unavailable. Follow the illustrated steps below.
In Review & launch, open Combination Settings. Product, order and shipping discounts are separate categories. Shopify also checks compatibility on the other discount; enabling a category in MTD does not make every unrelated code combinable.
- Test the campaign alone first.
- Apply eligible product and order codes separately; check paid items, gifts and totals.
- Test a shipping code after delivery rates are available.
- Remove codes and confirm the original result returns.
- Test an incompatible code for unexpected paid gifts or duplicate additions.
Automatic offers need no code. Code campaigns need the correct valid code. Settings > Gift offer automation controls whether eligible gift codes may be auto-applied. It does not replace campaign auto-add or the theme embed. A discount conflict can block or clean up an auto-added gift. Checkout mystery supports either no combinations or all three categories, not every partial mix.

Create a Code-Based Offer
- In Offer, select Discount Code and enter the intended code.
- Keep the same qualifying conditions and rewards you would test for an automatic offer.
- In Review & launch, set a usage limit if needed and review both sides of each combination.
- Save inactive first; when testing an active offer, enter the exact code in checkout and confirm it is accepted, not just typed into the field.
- Test removal and reapplication. Never infer that a 100% test code behaves like a normal percentage code.
12. Audience and Country Targeting
Watch tutorial: Product and audience targeting
Video unavailable. Follow the illustrated steps below.
Open Audience Targeting in Review & launch. Product tags describe products; customer tags restrict the audience. Cart currency does not prove the shopper's country or tag membership.
- Customer tags: test matching, non-matching and signed-out customers. Storefront tagged-customer gift auto-add needs the signed-in tag context.
- Countries: check Include versus Exclude. Excluding US and Canada is not the same as including only a short list of European countries.
- Currencies: enter each advertised threshold explicitly even where several countries qualify.
- Checkout delivery: test the final country; it may differ from the initial storefront market.
Test an allowed country, an excluded country and every advertised currency. Also test after a market switch. Total stock across all warehouses does not guarantee that a gift is sellable to that customer. Match public widget copy to the restrictions rather than disabling stock or checkout safeguards to hide a mismatch.

13. Theme Integration Without Guesswork
Start with defaults. Open Settings > Theme integration > Advanced cart integration only when a custom drawer or cart page needs help. Per-theme embed values override global app settings.


- Open the exact theme preview and add a test product.
- Inspect the cart wrapper using browser developer tools. Choose a stable ID, custom element or data attribute.
- Identify the repeating cart-item row separately.
- Enter one verified selector per line. Examples include
cart-drawer,#CartDrawer,.cart-itemand[data-cart-item]. - For
shopify-section-cart-drawer, enter onlycart-draweras the section ID. - Change one setting at a time, save and repeat the whole cart cycle.
| Mode | When to use it |
|---|---|
| Use app setting | The embed inherits the global mode. |
| Auto | The default integration; start here. |
| Replace sections | The theme safely supports replacing configured Shopify cart sections. |
| Theme events only | The theme owns refresh and responds to the cart events. |
Avoid generated classes, product titles and animation-only selectors. Test add, remove, add again, remove again and checkout, including exact quantities and variant identities. Do not publish an integration whose checkout action changes quantities.
14. Mystery Gifts and Shopify Plus
Watch tutorial: Mystery Gift
Video unavailable. Follow the illustrated steps below.
Mystery presentation hides the gift's customer-facing identity on supported surfaces while preserving the original variant, SKU, inventory and fulfillment identity. Do not copy SKUs or substitute a dummy non-physical product.
Pro and Plus support eligible storefront-cart mystery presentation for automatic, auto-added 100% gift offers. Checkout mystery additionally requires Shopify Plus, MTD Plus, granted permissions and a supported configuration. A green permissions badge alone does not make every offer compatible.
- Open Gift delivery and Advanced gift settings in Rewards.
- Enable Keep the selected gift a mystery and enter a neutral title.
- Select the presentation surface. If checkout is locked, review the requirements rather than repeatedly saving.
- For checkout, use one cart-value 100% rule, exact gift variants, fixed quantity 1, no extra customer-tag/minimum/maximum/usage limits, and either no combinations or all three. Country targeting and currency overrides must pass the form's compatibility checks.
- Confirm exactly one genuinely free gift and the expected title/image on each selected surface.
MTD verifies current eligibility before masking the marked free line. Older carts, edited campaigns, changed markets and conflicting codes can need cleanup or recovery. Never remove verification simply to silence a checkout error. Staff and fulfillment still receive the real item.


This recorded example used the legacy supported claim path on the exact owned Plus demo. It is not evidence that every fast-path rollout, currency, shipping route or payment method was tested. Current instructions preserve the original variant and SKU; the demo's retained quantity offer is separate from these temporary gift tests.
15. Settings and Analytics
Watch tutorial: Analytics and plans
Video unavailable. Follow the illustrated steps below.
Global Settings
Safety checks require creator confirmation for discounts at or above a configured percentage between 0 and 100. This is an editing safeguard, not the rate charged to customers. An invalid value shows an explanation and prevents saving.
Gift offer automation controls eligible code auto-application. Theme integration holds advanced cart overrides. Interface Language follows Shopify or a selected language. Closing an advanced section preserves its existing custom values when another setting is saved.

Read Analytics After Orders Are Processed
Analytics summarizes recorded uses, discount amounts, affected orders and campaign performance. Adding items to cart or opening checkout does not create an order-use record. Orders before app installation are not included.

Campaign-use counts are not conversion attribution or staff session replay. For a disputed order, compare the saved configuration, order timeline, applied discounts and actual lines.
16. Test the Whole Purchase Path
Watch tutorial: Widgets and cart troubleshooting
Video unavailable. Follow the illustrated steps below.
Write expected quantities, prices, discounts and totals before testing. Start with a fresh cart and one campaign, then add combinations and targeting.
| Case | Check |
|---|---|
| Below / at / above threshold | The intended boundary and highest matching tier. |
| Unselected product | No unrelated discount or misleading widget. |
| Add, remove, add again, remove again | No duplicates, stale totals, refresh loops or stuck loaders. |
| Manual gift removal | No immediate forced re-add for the same qualifying cart. |
| Repeated units / split lines | The trigger and per-line cap match the offer. |
| Codes / countries / currencies | Every advertised combination and audience restriction. |
| Checkout | Same variants and quantities, expected $0 gift, correct totals and no blocking warning. |
| Mobile | The drawer and cart actions still work. |
The gift is missing
I removed Mystery Gift and started a new purchase
The gift is visible but not free
Cart and checkout disagree
The widget or drawer is stale
Send a Useful Bug Report
Include campaign name, time/timezone, country/currency, product variants, quantities, codes, expected outcome and redacted cart/checkout images. Gift diagnostics can be enabled with ?mtdGiftDebug=1 and disabled with ?mtdGiftDebug=0. Do not share tokens, customer addresses or payment information.
17. Frequently Asked Questions
Does a whole-product selection include future variants?
Can gifts run without a visible widget?
Does a free product also mean free shipping?
Why did a gift disappear after a cart change?
Does MTD choose the fulfillment warehouse?
Is Preview enough to approve an offer?
Can a non-Plus Shopify store use checkout mystery?
Why does a packing slip contain long technical text?
Return to your first offer, gift setup or the test checklist.
Quick Glossary
- Trigger
- The purchase condition that qualifies an offer.
- Target
- The item or benefit receiving a reward.
- Tier
- One position, quantity or spend rule; its meaning depends on the selected trigger.
- Variant
- The actual Shopify SKU/size/color choice, distinct from its parent product.
- Automatic / code
- How Shopify applies the offer, not whether the app adds a product.
- App block / app embed
- A visible theme component / a theme-level runtime such as Gift Auto-Add.
- Market / currency
- Storefront country context / the cart's money unit; one does not configure the other.
- MTD Plus / Shopify Plus
- The app subscription / Shopify's platform subscription; checkout mystery needs both.