[03]
Storefront surface
The storefront includes search, filtering, cart, wishlist, moderated reviews and resumable guest checkout. Promotions are validated server-side for eligibility and value.
A three-service commerce platform — storefront, transactional API and CMS admin — built around a checkout designed for its edge cases, not just its happy path.
* THREE SERVICES + DUAL SETTLEMENT
[01] The problem
Commerce systems often couple content changes to releases and treat payment callbacks as orderly. Duplicate, delayed or mismatched events then become financial risk, while a monolith makes either concern harder to change safely.
[02] The constraints
Stripe events can be duplicated, delayed or reordered. Every settlement write therefore had to be safe to replay without charging twice or advancing an unpaid order.
Marketing needed to change banners, FAQs and promotions without engineering releases, while the storefront had to tolerate incomplete CMS data.
The payment controls are tested but not yet proven by production traffic. The case study reports implementation counts, not business outcomes.
[03] The approach
I separated storefront, transactional API and CMS, then designed settlement for duplicate and out-of-order events. Money writes are idempotent and the order state machine only advances through explicit transitions.
[04] The trade-offs
[01]
[02]
[03]
[04]
[05] The build
[01]
Client confirmation records payment immediately; the webhook reconciles signature, amount, ownership and transaction identity. Fourteen tests cover this settlement logic.
[02]
Eleven CMS collections plus editable navigation and site settings cover merchandising, with CSV import for bulk catalogue work.
[03]
The storefront includes search, filtering, cart, wishlist, moderated reviews and resumable guest checkout. Promotions are validated server-side for eligibility and value.
[06] The result
3
Deployable services
* storefront · API · CMS
8
Payment guard layers
* signature to state machine
14
Settlement tests passing
* confirmation logic
2
Independent paths to settled
* client confirmation · webhook fallback
These are implementation counts, not production outcomes: three deployables, eight settlement guards, fourteen passing tests and two paths to a settled order. Tests verify the written logic, not its assumptions under live traffic.
[07] What I’d do differently
The payment layer is hardened but not yet observed in production. I would instrument checkout success, reconciliation accuracy and promotion conversion before adding more features.
Need something like this built?
Next case study [06]
Muterpe
AI Image Generation SaaS
Read the case study →