Skip to content

The first person to test your order rules should not be a customer.

Rulestage enforces minimums, order limits and per-customer caps inside Shopify's server-side checkout validation. Simulate any cart against your draft, see which rule wins, and publish it as a version. Nothing changes until you publish. Guard adds version history and rollback.

Free draft sandbox. Enforce $9 or Guard $29 a month, both with a 14-day trial. No theme script; uninstall leaves nothing behind.

Frozen meals5 × Frozen lasagna 6-pack· 65.00 USD· country DE
Blockedblocked by r_de_mov

Subtotal 65.00 USD is below the minimum order value 80.00 USD.

Germany minimum orderr_de_movv_6d01d1a3145f

Shopper sees at checkout

For DE, orders need a subtotal of at least 80.00 USD.

r_global_movoverridden by priority: priority 100 loses to r_de_mov at priority 10

Try a rule set on a cart

Three sample stores are loaded: a frozen-meal shop with a Germany minimum, a limited drop with a one-per-customer cap, and a retail store that keeps stock back for clinic accounts. Change the cart, the country or the buyer, then read the decision.

Frozen meals

Sample loaded

Cart1 line

LineQuantityUnit price
Frozen lasagna 6-pack
lasagna · frozen
13.00 USD
Frozen curry 4-pack
curry · frozen
9.00 USD
Subtotal 65.00 USD

Buyer and context

Identified

This is the engine that runs at checkout, not a preview. Install to run it on your own rules.

Loading the checkout engine…

Enforced where Shopify checks the cart

Rules run inside a Shopify checkout validation function. That is the server-side layer Shopify applies to these paths. A cart that breaks a rule cannot complete checkout on them. The shopper sees one message per cart, written by you.

Rulestage adds no script to your theme. Uninstalling removes the validation with the app; your cart and checkout keep working the way they did before.

Shopify applies validation to

  • Online-store cart and checkout
  • Shop Pay
  • PayPal, Google Pay and Apple Pay
  • The Storefront API
  • B2B and draft-order checkouts

Shopify does not apply validation to

  • POS
  • Order editing
  • The orderCreate API
  • Subscription renewals
  • Pre-orders

Rulestage cannot enforce anything there.

01

See which rule wins before it runs

Edit a cart, a buyer and a country in the simulator. The result names the winning rule, its version, the customer message, and every other rule that matched. Contradictory or unreachable rules block publishing. Shadowed rules need your acknowledgement, and the acknowledgement is recorded on the version.

02

Every publish is a version

Publishing writes an immutable rule set and the checkout projection in one step. Saved scenarios run against the draft and the published version and show what a publish would change. Rolling back publishes the earlier content as a new version, so history is never rewritten.

Affected scenarios2

ScenarioPublishedDraftExpectedDiff
F1 — Frozen meal shipping economicsallowedblockedblockedchanged
F3 — Mixed retail/clinic supplyallowedblockedblockedchanged

03

Reproduce a block instead of guessing

A support ticket says a customer was blocked. Open the version that was live, load that cart into the simulator, and read the winning rule and reason. Every simulator and scenario run is stored with its version and its source. If you still need to write to us, export the diagnostics bundle from that entry instead of describing what happened.

Shopify sends no event when a real checkout is blocked, so the audit log is a replay of decisions Rulestage ran, not a live feed of your checkouts.

The rules Shopify's built-in limit cannot express

Shopify's own order value limit sets one minimum or maximum for the whole store. Rulestage is for the rules that need a scope.

  1. Per-customer limit for a drop
  2. Minimum order value by country
  3. Minimum or maximum by product or collection
  4. Capacity floor across channels
  5. A floor that blocks card-testing orders
  6. Store-wide minimum and maximum quantity and value, too

Seven rule families

  • min_quantity
  • max_quantity
  • min_order_value
  • max_order_value
  • per_customer_limit
  • capacity_floor
  • identified_customer_required

Scope a rule by country, customer tag, product or collection. For example, set a wholesale minimum order without raising the minimum for retail buyers. Give it a priority, a message, and a policy for unavailable buyer history or capacity data.

Templates

Start from a template if you are moving from another limits app: a country minimum, a per-product cap, one per customer for a drop, or a floor that blocks the tiny orders card testers place.

Timing

Per-customer history and capacity pools are written from order and inventory webhooks and can lag a few seconds behind two rapid checkouts. Each affected rule states which way it fails.

Two plans, one difference

Guard

Recommended
$29/ month

14-day trial

Rule families and rule countAll seven, unlimited
Server-side checkout enforcementYes
Simulator on your own draftYes
Detailed conflict, shadow and unreachable reviewYes
Scenarios with run all and diffYes
Version history and rollbackYes
Audit log with version and sourceKept up to 90 days
JSON exportYes

Enforce

Test and enforce
$9/ month

14-day trial

Rule families and rule countAll seven, unlimited
Server-side checkout enforcementYes
Simulator on your own draftYes
Detailed conflict, shadow and unreachable reviewPublish summary only
Scenarios with run all and diffNo
Version history and rollbackCurrent version only
Audit log with version and sourceNo
JSON exportNo

Build rules and simulate your own carts in the free sandbox. No checkout enforcement without a paid plan. Both plans have a 14-day trial, then Shopify bills monthly unless you cancel. If a subscription ends, the published version keeps enforcing for 7 more days, then stops; the sandbox stays available. Uninstalling removes enforcement immediately and ends the subscription. Development stores are free.

Install on Shopify

Questions

No. There is no storefront script. Enforcement runs in Shopify's validation function; the only shopper-visible text is the message you write per rule.

Run a cart before a customer does.