Frequently Asked Questions
This page answers the most common questions about Advance Discount Function. If your question is not covered here, check the Troubleshooting page for issue-specific guidance.
1. What discount types does the app support?
Advance Discount Function provides 4 specialized discount function types:
- Conditional — If-then discount rules based on conditions.
- Tiered — Escalating discounts based on quantity or spending thresholds.
- Buy X Get Y — Buy a set of items, get other items discounted or free.
- Bundle — Discount applied when specific product combinations are in the cart.
Each function type is optimized for a specific discount pattern. See the Introduction for a comparison table.
2. Can I use multiple conditions on one rule?
Yes. Each rule group supports up to 18 condition types, and you can combine them using AND or OR logic:
- AND logic — All conditions must pass for the rule group to apply.
- OR logic — Any single condition is sufficient.
For example, you can require that the customer has a “VIP” tag AND the cart subtotal is over $100, or you can allow either condition to trigger the discount.
3. Does the app work with Shopify Plus?
Yes. Advance Discount Function works with all Shopify plans that support Shopify Functions, including Basic Shopify, Shopify, Advanced Shopify, and Shopify Plus. There is no Shopify Plus requirement.
4. How do Shopify Functions differ from Scripts?
Shopify Scripts (Script Editor) used Ruby code running on Shopify’s servers. Shopify Functions use WebAssembly modules that run within Shopify’s infrastructure via a declarative input/output API.
Key differences:
| Aspect | Scripts | Functions |
|---|---|---|
| Language | Ruby | WebAssembly (Rust/AssemblyScript under the hood) |
| Configuration | Custom code | Declarative JSON via UI |
| API | Direct cart manipulation | Input query + structured output |
| Lifecycle | Deprecated Aug 2025, removed June 2026 | Current and actively supported |
| Performance | Server-side Ruby execution | WebAssembly sandbox, faster |
Advance Discount Function abstracts the WebAssembly layer entirely — you configure discounts through a no-code UI, and the app generates the WebAssembly function for you.
5. Can I combine discounts from different functions?
Yes. Shopify allows multiple discounts to apply to the same order, controlled by the combinesWith settings on each discount. You configure these settings when creating the discount in Shopify Admin:
- combinesWith.productDiscounts — Allow stacking with other product discounts.
- combinesWith.orderDiscounts — Allow stacking with other order discounts.
- combinesWith.shippingDiscounts — Allow stacking with shipping discounts.
For example, you can have a “20% off tagged products” discount (Conditional) combine with a “Free shipping over $50” discount (Conditional) by enabling the appropriate combinesWith toggles on both discounts.
6. What happens if I downgrade my plan?
Existing discounts continue to function at checkout. The WebAssembly function does not check your billing tier at runtime, so your customers will not experience any disruption.
However, the rule builder UI will block you from creating or editing features that are not included in your new plan. For example, if you downgrade from Pro to Starter, you cannot edit existing Tiered or BXGY discounts, but they continue to apply at checkout.
7. Is there a limit on rule groups?
Yes. The maximum number of rule groups depends on your plan:
| Plan | Max Rule Groups per Discount |
|---|---|
| Starter | 10 |
| Pro | 20 |
| Enterprise | 25 |
This limit applies per discount — each discount can contain up to the plan’s maximum number of rule groups. Since Shopify allows up to 25 automatic discounts per store, a single discount with multiple rule groups effectively replaces what would otherwise require multiple separate discounts. Existing rule groups beyond the limit are not deleted when you downgrade, but you cannot create new ones until you are within the limit.
8. Can I apply discounts to shipping?
Yes. All four discount functions (Conditional, Tiered, Buy X Get Y, and Bundle) support the Shipping discount class. You can create discounts that reduce or eliminate shipping costs based on conditions like cart subtotal, customer tags, or market location.
To create a shipping discount, set the target to shipping with a scope of "all" (all delivery options) or a specific scope. A 100% percentage discount on shipping effectively makes shipping free.
Note: Shipping discounts only evaluate cart-level conditions. Product-level conditions (like productTag) are not applicable to shipping targets.
9. How does the “first” vs “all” strategy work?
The strategy controls how the function handles multiple matching rule groups within a single discount:
-
“first” — The function evaluates rule groups in order and stops at the first match. Only the first qualifying rule group’s discount is applied. Use this for priority-based rules where a higher-priority group should prevent lower-priority groups from applying.
-
“all” — The function evaluates every rule group and applies all matching discounts. Multiple discounts can stack within the same function. Use this when rule groups are independent and should combine.
Example: With "first" strategy and two rule groups (VIP 30% off, then General 10% off), a VIP customer gets 30% off and evaluation stops. With "all" strategy, a qualifying customer could receive both discounts.
10. Can I target specific products or collections?
Yes. You can target specific products using product-level conditions:
productTag— Filter by product tags (e.g., only items tagged “sale”).collection— Filter by collection membership (e.g., only items in the “Summer Essentials” collection).productType— Filter by product type.productVendor— Filter by vendor.productVariant— Filter by specific variant IDs.
When using product-level conditions with a product target, set the scope to "filtered" to apply the discount only to matching items. Setting the scope to "all" applies the discount to every item in the cart regardless of product conditions.
11. What are rejection rules?
Rejection rules let you block discount codes when specific conditions are met. Unlike regular rule groups that grant discounts, rejection rules prevent codes from being used.
Example: You have a staff discount code. You add a rejection rule with a customerTag condition using the hasNone operator for the “staff” tag. When a non-staff customer enters the code, it is rejected with a custom message like “This discount is for staff members only.”
Rejection rules are evaluated before regular rule groups. If any rejection rule matches, the discount code is blocked and no discount is applied. Rejection rules are available on the Pro plan and above.
12. Does the app support discount codes?
Yes. Advance Discount Function supports both automatic discounts (applied automatically at checkout) and code-based discounts (applied when the customer enters a code).
Both activation methods are available across all four function types. The choice between automatic and code-based is made when you create the discount in Shopify Admin, not within the rule builder.
13. How does Buy X Get Y allocate discounts?
The BXGY function allocates discounts to the cheapest qualifying items first. Here is how it works:
- The function identifies all cart lines that match the buy filter and the get filter.
- It determines how many complete “sets” the customer qualifies for based on
buyQuantity,getQuantity, andmaxSets. - The discounted items (the “get” items) are selected from the cheapest qualifying lines first.
For example, in a “Buy 2 Get 1 Free” promotion with items priced at $30, $20, and $10, the $10 item is the free one because it is the cheapest.
14. Can bundle components overlap?
Yes. If a single cart line qualifies for multiple bundle components, the quantities are merged. For example, if your bundle requires 2 items from Collection A and 1 item from Collection B, and a product belongs to both collections, that product can satisfy requirements for both components. The function resolves overlapping quantities intelligently to determine if the bundle is complete.
15. What is pre-aggregation?
Pre-aggregation is how the app collects metadata from your rule configurations and includes it in the Shopify Function’s input query.
When you configure conditions that reference tags, collection IDs, or variant IDs, the UI aggregates all referenced values into top-level fields in the JSON configuration (e.g., productTags, collectionIds). These top-level fields are used to construct the GraphQL input query that the WebAssembly function sends to Shopify at runtime.
This is necessary because Shopify Functions have a fixed input query that must declare upfront which data it needs. The function cannot dynamically request additional data during execution. Pre-aggregation ensures the function always has the data it needs to evaluate your conditions.
You do not need to manage pre-aggregation manually — the rule builder UI handles it automatically when you save your configuration.
16. Is there a free trial?
Yes. The Starter plan includes a 7-day free trial. During the trial, you have full access to all features included in the Starter plan. No charges are applied until the trial ends. You can cancel at any time during the trial without being charged.
17. Are annual plans available?
Yes. All plans offer annual billing with a 15% discount compared to monthly:
| Plan | Monthly | Annual |
|---|---|---|
| Starter | $39/mo | $400/yr ($33.33/mo equiv) |
| Pro | $99/mo | $1,000/yr ($83.33/mo equiv) |
| Enterprise | $299/mo | $3,000/yr ($250/mo equiv) |
Annual plans are billed as a single upfront charge. To switch, go to Settings → Billing in the app. See the Billing & Pricing page for details.
18. What is the AI Assistant?
The AI Assistant is a Pro and Enterprise feature that lets you generate, update, and refine discount configurations using natural language. It is available on the discount detail page in the app.
There are four modes:
- Generate — Describe the discount you want from scratch and the AI creates the full configuration.
- Update — Describe changes to your existing configuration and the AI applies them.
- Refine — Have a multi-turn conversation to iteratively adjust the configuration.
- Expert — Use an advanced AI model for complex discount logic (Pro and Enterprise, 5 credits/request).
All AI-generated configurations go through a 4-stage validation pipeline before being applied, ensuring the output is structurally and semantically valid.
See the AI Assistant guide for full documentation.
19. How does AI generation billing work?
The AI Assistant uses a credit-based billing system available on Pro and Enterprise plans:
- Pro — 25-credit welcome bonus (one-time). No monthly credit grant. Standard mode (2 credits/request).
- Enterprise Monthly — 50-credit welcome bonus (one-time). No monthly credit grant. Standard + Expert modes (2 or 5 credits/request).
- Enterprise Annual — 50-credit welcome bonus (one-time), plus 200 credits/month. Standard + Expert modes (2 or 5 credits/request).
- Additional credits — Purchase credit packs: Starter Pack (50 credits/$20), Pro Pack (110 credits/$40), Power Pack (180 credits/$60). Purchased credits never expire.
- Rate limits — 20 requests/hour (Pro), 40 requests/hour (Enterprise).
AI usage charges appear on your regular Shopify invoice.
20. Can I use the app with multiple Shopify markets?
Yes. The market condition allows you to target discounts based on the customer’s market or delivery country. It supports two operators:
isAny— The customer’s country must match any of the listed country codes.isNone— The customer’s country must not match any of the listed country codes.
Country codes use the ISO 3166-1 alpha-2 format (e.g., “US”, “CA”, “GB”, “DE”). This condition is available in all four function types.
You can use the market condition to create region-specific promotions, restrict discounts to domestic orders, or offer different discount tiers by country.
21. What are gift card exclusions?
Gift card line items are always excluded from product-level discounts. This is a Shopify platform rule, not specific to Advance Discount Function.
When the function evaluates cart lines for product discounts, gift card lines are automatically filtered out and never receive a discount. This applies regardless of your conditions, targets, or discount configuration. Gift cards are treated as a payment method, not a product, so discounting them would effectively create money.
This exclusion does not affect order-level or shipping-level discounts. An order discount applies to the order subtotal (which may include the gift card’s price), and a shipping discount applies to delivery options.
Still Have Questions?
- Troubleshooting — Diagnose specific issues with discount behavior.
- Core Concepts — Review the foundational concepts behind the app.
- Billing & Pricing — Compare plans and pricing.