ApproveCart B2B docs

Checkout protection

An approval is tied to protected cart values. Checkout is allowed only when the active approval belongs to the buyer and still matches those values.

What ApproveCart protects

The approval fingerprint includes:

  • Checkout currency
  • Cart subtotal represented in minor currency units
  • The sorted set of merchandise variant IDs and quantities

Sorting means harmless line ordering does not change the fingerprint. The underlying variant and quantity values still must match.

Changes that invalidate approval

ChangeResult
Add or remove a product variantNew approval required
Change a line quantityNew approval required
Change currencyNew approval required
Change subtotalNew approval required
Apply or remove a discount that changes subtotalNew approval required
Reorder otherwise identical cart linesDoes not change the protected fingerprint by itself

Request state is also validated

A matching fingerprint alone is not enough. Checkout protection also rejects a missing, pending, rejected, withdrawn, expired, stale, or otherwise unusable request, and confirms the approval belongs to the current buyer context.

What is not fingerprinted

Test the boundary

  1. Create and approve a representative request.
  2. Restore it and confirm the unchanged cart can proceed.
  3. Change one quantity and confirm checkout is blocked.
  4. Restore or recreate the original cart, then apply a subtotal-changing discount and confirm a new request is required.
  5. Test custom properties and market currencies used by your store.

If checkout is blocked unexpectedly

Compare the current cart with the approved request, including hidden price changes caused by discounts. Confirm the same buyer is signed in and the approval has not expired. If the cause remains unclear, use the Help page inside the app with the request identifier and affected shop.