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

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.

Other considerations

Guest checkout and lifetime limits

Lifetime limits require customer identification. Guest checkouts can be tracked by email at checkout time, but for the most reliable enforcement, we recommend requiring login for lifetime-limited products. 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