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
| Change | Result |
|---|---|
| Add or remove a product variant | New approval required |
| Change a line quantity | New approval required |
| Change currency | New approval required |
| Change subtotal | New approval required |
| Apply or remove a discount that changes subtotal | New approval required |
| Reorder otherwise identical cart lines | Does 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
- Create and approve a representative request.
- Restore it and confirm the unchanged cart can proceed.
- Change one quantity and confirm checkout is blocked.
- Restore or recreate the original cart, then apply a subtotal-changing discount and confirm a new request is required.
- 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.