Back to Blog
2026-07-016 min readNexo

Purchase limits by day, week, or month on Shopify

Learn how to set rolling purchase limits on Shopify — daily, weekly, monthly, or custom windows — to prevent hoarding, manage subscription cycles, and keep inventory fair across customer groups.

Purchase limits by day, week, or month on Shopify

Running a store where the same product needs different quantity rules depending on the timeframe is common. A wholesale buyer might order 50 units a month. A retail customer during a promo might be capped at 3 per week. A limited-edition drop might allow just 1 per customer ever.

Shopify tracks total inventory, but it does not track how many a specific customer has bought over the last 7 days, 30 days, or a custom window. That gap is where purchase-limit-by-time-period rules come in.

Why time-based limits matter

A simple per-order cap ("max 5 per order") stops one big cart. It does not stop the same buyer placing five separate orders of 5 each day. If your goal is to spread stock across more customers, or to align with how you restock, you need a rolling window.

Common scenarios:

  • Daily limits: High-demand drops, samples, or products with strict daily fulfillment capacity
  • Weekly limits: Subscription boxes, recurring wholesale orders, promo fairness
  • Monthly limits: Wholesale agreements, distributor allocations, loyalty tiers
  • Custom windows: Preorder campaigns, seasonal products, launch periods

How rolling windows actually work

Most apps enforce rolling windows by checking a customer's order history. When a cart is validated, the app queries: "How many units of this product (or from this collection) has this customer bought in the last N days?"

If the answer plus the current cart quantity exceeds the limit, the cart is blocked or the quantity is reduced.

Key implementation details that vary:

DetailWhat to check
IdentificationCustomer account, email, or guest email
ScopeSingle product, all variants, whole collection, cart total
Reset behaviorRolling (sliding window) vs. calendar (fixed week/month)
StackingDo multiple rules combine or override

Rolling windows slide forward each day. Calendar windows reset on a fixed schedule (every Monday, the 1st of each month). Rolling is fairer for customers; calendar is easier to explain.

Setting up time-based limits without Shopify Plus

Option 1: Apps with purchase-history tracking

Order limit apps with purchase-history tracking offer rolling-window rules. Look for:

  • Daily, weekly, monthly, and custom day-count windows
  • Per-product, per-collection, or cart-level scope
  • Customer-tag conditions (wholesale gets higher monthly cap)
  • Clear customer-facing messages showing remaining allowance

Option 2: Customer tags + scheduled rules

Tag customers by tier ("wholesale-monthly-100", "vip-weekly-10"). Create a rule for each tag with its own window and limit. Update tags when agreements change. This works but gets manual fast if you have many tiers.

Option 3: Shopify Flow + custom logic

Flow can tag customers based on order count, but it cannot block a cart in real time. You would still need a validation layer at checkout (Functions) or cart (app).

Setting up with an order limit app

With an order limit app that tracks purchase history, the setup is usually direct:

  1. Create a rule for the product or collection
  2. Choose "Maximum quantity per customer"
  3. Select the time window: Daily, Weekly, Monthly, or Custom (e.g., 14 days)
  4. Set the limit number
  5. Add customer-tag conditions if limits differ by segment
  6. Write the message: "You've reached your weekly limit of 3 for this product. Limit resets Monday."
  7. Test with a test account placing orders across the window boundary

Most apps identify customers by account or guest email. The same email across guest checkouts counts toward the same limit.

What to watch for

Guest checkout with different emails: If someone checks out as a guest with email A on Monday and email B on Tuesday, they appear as two customers. Apps that only track by email will miss this. Some apps add device/IP fingerprinting (with privacy compliance) to reduce this.

Calendar vs. rolling confusion: A customer who buys 3 on Sunday (weekly limit 3) and tries to buy again on Monday may think the limit reset. If your app uses rolling 7-day windows, they are still blocked until the oldest order falls out of the window. Make the message clear: "Limit resets in 4 days" or "Rolling 7-day limit."

Subscription interactions: A monthly limit of 12 units plus a weekly subscription of 3 units means the customer hits the monthly cap by week 3. Plan limits around subscription cycles, or exclude subscription orders from the limit if your app supports it.

Draft orders and POS: If your staff creates draft orders for wholesale accounts, those should count toward the limit. Same for POS sales. Verify your app covers these channels.

Variant-level vs. product-level: A customer buys 2 red and 2 blue of the same product (limit 3 per week). If the rule is per-variant, they can buy 3 red + 3 blue. If per-product, the total across variants is capped. Choose based on inventory reality.

Practical example: wholesale monthly allocation

You sell coffee beans to cafes. Each cafe has a monthly allocation of 50 kg (50 units of 1 kg bags).

Setup:

  • Tag cafes with "wholesale-monthly-50"
  • Create rule: Product = Coffee Beans 1kg, Scope = Product, Window = Monthly (calendar), Limit = 50, Condition = Tag "wholesale-monthly-50"
  • Message: "Your monthly allocation of 50 units has been reached. Next allocation starts on the 1st."

Result: The cafe can place multiple orders throughout the month, but the total cannot exceed 50. On the 1st, the counter resets.

FAQ

Can Shopify natively limit purchases by time period?

No. Shopify's native inventory settings control total stock, not per-customer purchase history over time. You need an app, or custom cart and checkout validation logic (for example, Shopify Functions), that can read past orders.

What's the difference between rolling and calendar windows?

Rolling: 7-day window slides daily. Calendar: Resets every Monday (weekly) or the 1st (monthly). Rolling is fairer; calendar is easier to communicate.

Do time-based limits work with Shopify Markets and multiple currencies?

Yes. The limit checks quantity at cart/checkout before currency conversion. The same limit applies regardless of market.

Can I exclude certain customer groups from time-based limits?

Yes, if your app supports customer-tag conditions. Create a rule that applies to everyone, then a separate rule with a higher (or no) limit for tagged VIP/wholesale customers.

What happens when a customer hits the limit mid-cart?

They see a message like "You have 2 remaining for this week" and cannot increase quantity or proceed to checkout until they remove items or wait for the window to reset.

Can I set different windows for different products?

Yes. Each rule can have its own window. Coffee beans might be monthly; limited-edition mugs might be lifetime (1 ever).

An order limit app with purchase-history tracking, such as Nexo Order Limits, can set daily, weekly, monthly, and custom windows per product, collection, or customer tag, with clear customer-facing messages and cart or checkout enforcement. The rule still has to match how you actually restock and fulfill, so decide the window and number first, then set it up.