Known Limitations and Platform Constraints

DC Order Limits works within the boundaries of what Shopify's platform allows. This article explains the known limitations you may encounter and, where possible, provides workarounds.

Quick reference

Limitation Impact Workaround available?
Maximum 25 validation functions Shopify platform limit on active rules per store Partial — consolidate rules using tags
Shopify Bundles + lifetime limits Lifetime tracking may not count bundle purchases correctly Yes — apply limits to child products
POS transactions Limits don't apply to Point of Sale orders No — coming in a future update
Subscriptions Limits don't apply to recurring subscription orders No — Shopify platform limitation
Shipping address-based limits Cannot limit by shipping destination No — coming in a future update
Discount code-based limits Cannot apply rules based on which discount code is used Partial — use separate promo products
Rapid-fire orders during drops Back-to-back orders in seconds may slip through Yes — automatic order tagging

Where DC Order Limits works

DC Order Limits uses Shopify's Cart and Checkout Validation Functions. These functions run on specific surfaces within Shopify. Here's what's supported:

Supported surfaces

Surface Description
Online Store checkout Standard Shopify checkout flow
Cart (theme cart template) Validation errors appear in the cart before checkout
Storefront Headless storefronts using Shopify's Storefront API
Accelerated checkout Shop Pay, PayPal, Google Pay, and Apple Pay express checkouts
B2B Business-to-business wholesale checkouts
Draft orders Orders created in Shopify Admin and converted to checkout
Shopify Admin Orders created directly in the admin interface

Unsupported surfaces

The following surfaces do not trigger Shopify's validation functions, so DC Order Limits cannot enforce rules on them:

Surface Status
POS (Point of Sale) Coming soon — we're working on POS support
Subscriptions (recurring orders) Shopify platform limitation — no workaround
Pre-orders and Try Before You Buy Shopify platform limitation — no workaround
Order edits Editing existing orders bypasses validation
Create Order API Direct API order creation bypasses validation
Third-party checkout apps Apps like Shopflo that bypass native checkout

Why some surfaces aren't supported: Shopify's validation functions only run during specific checkout flows. Surfaces like POS, subscriptions, and direct API order creation don't trigger these validation points — this is a Shopify platform constraint, not something we can work around.

Maximum 25 rules per store

The issue: Shopify allows a maximum of 25 validation functions per store. Since each DC Order Limits rule uses a validation function, you can have at most 25 active rules.

This is a Shopify platform limit — not a limitation we impose. Shopify enforces this across all apps using cart and checkout validation functions. You can read more in Shopify's documentation.

Workarounds:

  1. Use product tags to consolidate rules. Instead of creating separate rules for Product A, Product B, and Product C, add a shared tag (e.g., limit-group-1) to all three products and create one rule targeting that tag.
  2. Use collection-based targeting. If your limits apply to groups of products, target a collection instead of individual products.
  3. Combine limit types. A single rule can enforce both minimum and maximum quantities. You don't need separate rules for "min 2" and "max 10" on the same products.
  4. Review inactive rules. Check if you have old rules that are no longer needed. Disabling unused rules frees up slots.

If you've optimized your rules and still need more than 25, contact our support team to discuss your use case.

Shopify Bundles and lifetime limits

The issue: When a customer purchases a bundle created with Shopify's native Bundle app, Shopify adds the child products (the individual items inside the bundle) to the order as separate line items. The bundle product itself acts as a container, but the actual order contains the component products.

Because of this, lifetime limits applied to the bundle product may not track correctly. The app sees the child products on the order, not the parent bundle, so the customer's lifetime count for the bundle product doesn't increment as expected.

What works with bundles:

  • Per-order quantity limits ✅
  • Per-order price limits ✅
  • Mixed cart rules ✅

What doesn't work reliably:

  • Lifetime/customer purchase limits on bundle products ⚠️

Workaround: Apply your lifetime limits to the child products inside the bundle instead of the bundle product itself. Since these are what actually appear on the order, they'll be tracked correctly.

For detailed setup instructions and examples, see Using DC Order Limits with Shopify Bundles.

Shipping address-based limits

The issue: DC Order Limits currently cannot limit orders based on the customer's shipping address. This means you cannot:

  • Limit quantities per shipping address (to prevent resellers using multiple addresses)
  • Block repeat purchases to the same address across different customer accounts
  • Set different limits for domestic vs. international shipping destinations

Why this isn't available yet: Shopify's cart validation functions run before the customer enters their shipping address at checkout. By the time we know where the order is shipping, cart validation has already completed.

Coming soon: We're actively working on shipping address-based limits as a future feature. This will use Shopify's checkout validation (which runs later in the flow when address data is available) combined with post-purchase tracking.

If you have a specific use case for address-based limits, let us know — your feedback helps us prioritize development.

Discount code-based limits

The issue: DC Order Limits cannot apply rules based on which discount code a customer uses. This means you cannot:

  • Limit quantities only when a specific promo code is applied
  • Allow higher limits for customers using a VIP discount code
  • Restrict a "100% off" code to 1 unit per customer

Why this isn't available: Shopify's cart validation functions don't receive discount code information. By the time discount codes are applied, cart validation has already run.

Workaround: Create a separate product (or variant) for the promo, restrict the discount code to that product in Shopify's discount settings, then apply a quantity limit to the promo product. Customers without the code can buy the regular product unrestricted.

Rapid-fire orders during product drops

During high-demand launches, a customer may place multiple orders within seconds of each other. If those orders complete before the first one is recorded, all of them can succeed even though the customer exceeded their limit.

Customer Purchase Limits enforce restrictions at checkout against the customer's recorded purchase history. After each order is placed, it takes a few seconds for that purchase to be recorded and counted. Orders completed back-to-back inside this short window can slip through before the first order is counted.

This is rare. The timing window is only a few seconds, and the customer must complete separate checkouts in rapid succession. In practice, this primarily affects high-demand product drops where customers are racing to checkout.

Automatic flagging with order tags

To catch orders that slip through, we automatically tag any order that pushes a customer past their limit with dash-limit-exceeded. This tag is added within seconds of the order being placed.

You can use this tag in two ways:

  1. In your Shopify admin, go to Orders and filter by tag dash-limit-exceeded to see flagged orders.
  2. Create a Shopify Flow workflow that triggers when a tag is added to an order. Add a condition that the tag equals dash-limit-exceeded, then choose your action: cancel the order, send a notification to your team, or hold for manual review.
The tag applies to orders placed after August 2026. It does not backfill to earlier orders.

Other considerations

Guest checkout and lifetime limits

Guest customers are not tracked by email. Customer Purchase Limits (lifetime limits) require a logged-in Shopify customer account to track purchase history. Shopify does not provide a reliable way to match guest checkout emails to customer accounts during checkout validation.

This means you have two options for guest handling:

  • Allow guest checkout: Guests can purchase without restrictions. The limit only applies to logged-in customers.
  • Block and require login: Guests must log in before purchasing limited products. This is the most reliable enforcement for high-value drops.

For most reliable enforcement of lifetime limits, we recommend requiring login. See Setting Up Lifetime / Once-Per-Customer Limits for details.

Limits and payment failures

Lifetime counts are updated when an order is placed, not when payment is captured. If a payment fails after order creation (e.g., fraud review decline), the customer's count may still be incremented. Contact support if you need to manually adjust a customer's lifetime count.

Questions?

If you're hitting a limitation that's blocking your use case, or you're not sure if something is a limitation vs. a configuration issue, reach out to our support team. We're happy to help find solutions or confirm whether something is on our roadmap.

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.

Still need help? Contact Us Contact Us