Prime MOQ

The Order Limit Blocked Trigger

Every field the Order limit blocked trigger carries, what shopper action really means, and five worked workflows built on it.

Prime MOQ Team

Prime MOQ Team

Updated ยท 3 min read

Short answer

Order limit blocked a customer" starts whenever a Prime MOQ rule stops a shopper on your storefront, on the product page or in the cart. It carries the rule name, the limit type and the bound that was violated, the attempted and allowed amounts, the product, the customer if there is one, and whether the shopper actually clicked Add to cart or only set a quantity the rule would reject.

  • It is a storefront event, on the product page or the cart, not a Shopify checkout-stage event.
  • About half of all blocks carry no customer, because guests are common.
  • The shopper action field separates a real attempt from pure demand signal. Filter on it.
  • Cart total is defined but not populated yet. Do not build on it.

Before you start

  • Event sending turned on from the Automations page.
  • Shopify Flow installed, with a workflow using this trigger.

What data you get

FieldWhat it is
ProductThe product involved, if there is one
Customer IDThe shopper's numeric ID, or empty for a guest
Rule nameWhich rule fired
Limit typeQuantity, Order value or Weight
What was violatedmin, max, multiple, minValue, maxValue, minWeight, maxWeight or repurchase
Attempted amountWhat the shopper tried to do
Allowed amountWhat the rule actually permits
UnitUnits, a currency code, or a weight unit, depending on the limit type
Cart totalDefined but not populated yet
Whereproduct_page or cart
Shopper actionTried to add to cart, or Stopped before adding

What shopper action means

This field separates two signals that look identical in a log and mean very different things.

Tried to add to cart. The shopper clicked Add to cart and was stopped. A real attempt.

Stopped before adding. The shopper set a quantity the rule rejects and never clicked, usually because the button had already disabled itself. Demand signal, not an attempt.

A workflow that does not filter on this field runs for both equally. If it sends an email, posts to Slack or tags a customer, it will fire far more often than you expect, on events where nobody tried to complete anything.

Add a Flow condition, Shopper action is equal to Tried to add to cart, to any workflow that should only see genuine attempts.

This field was added after the trigger shipped. A workflow you built before it existed carries no condition on it, which means it is now running for both cases where it used to run for one. If your Slack channel got noisier without you changing anything, this is why.

Handling guests

Guests have no customer record, so Customer ID arrives as an empty text value rather than as a missing field. Roughly half of all blocks have no customer attached.

Any step that needs a real customer, such as tagging, emailing them directly or adding them to a segment, should sit behind a condition: Customer ID is not empty. Build for it from the start rather than finding out in production.

Five workflows worth building

Email the freight team on an oversized cart. Condition on Limit type equals Weight, then send an email carrying the rule name, the attempted and allowed amounts and the unit. This is the shipped "Oversized cart becomes a freight quote" template, covered in Ready-made workflow templates.

Slack alert above a value threshold. Condition on Attempted amount above a number that matters to you, then post to a channel with the rule name and product. This catches the handful of blocks a week worth a human look without flooding the channel.

Tag near-miss shoppers as wholesale leads. Condition on Limit type equals Order value, What was violated equals minValue, and Attempted amount above roughly 60 percent of Allowed amount. Someone that close to your minimum is a lead, not a shopper on the wrong store. Gate out guests first, then tag and notify a rep. This is the shipped "Near-miss carts become leads" template.

Log every real attempt to a spreadsheet. Filter to Shopper action equals Tried to add to cart, then append a row through Flow's spreadsheet connector with the rule name, product and amounts. A weekly review list that does not require opening the app.

Branch by limit type. Limit type and What was violated are both available, so one workflow can send Weight blocks to the freight team, tag Value blocks as leads and quietly log Quantity blocks. One trigger, several outcomes.

Common mistakes

  • Not filtering shopper action. Covered above, and the most common cause of a workflow that fires more than expected.
  • Assuming a customer always exists. Gate customer steps behind Customer ID is not empty.
  • Building on cart total. It is not populated yet. Use Attempted amount, Allowed amount and Unit for anything value-based.
  • Expecting a checkout-stage event. It fires where Prime MOQ observes the block, which is the storefront. Checkout enforcement itself is a separate mechanism, described in How limits are enforced at checkout.

Frequently asked questions

Does this fire for every blocked click, even from the same shopper?

No. Repeat blocks from the same shopper within a short window are deduplicated into a single event, so a frustrated customer clicking six times starts one workflow run rather than six.

Can I build a workflow that reacts to only one specific rule?

Yes. Add a condition on Rule name, or on the fields specific to that rule's limit type, to scope the workflow down to the one rule you care about.

What does the Where field actually tell me?

Whether the shopper was still on the product page or had already added items and was looking at the cart. It is useful when you want different handling for each stage of the journey.

Why is Unit sometimes a currency code and sometimes a weight?

Because it describes whatever the limit type is counting. A Quantity rule reports units, a Value rule reports your currency code and a Weight rule reports the weight unit set on the rule.

Does an empty Customer ID mean the shopper has no account?

Not necessarily. It means they were not signed in at that moment. A customer with an account who is browsing signed out arrives exactly like a first-time guest.

Best for: Anyone building a custom reaction to a blocked shopper, beyond what the four ready-made templates cover.

Applies to: Pro plan

Did this answer your question?

Related articles

Still stuck?

Tell us what you are trying to set up and we will reply within 24 hours.

Contact support

We use one cookie to remember this choice, and Google Analytics only if you say yes. Nothing analytics related loads until you do. Read the cookie policy.