Payment integration and checkout for Princess Auto — the Canadian retail brand. Connecting and configuring the payment stack for secure, reliable transactions at scale.

Swipe through the shipped surfaces — one screen at a time.
The job wasn't to reinvent checkout — it was to make sure every transaction lands cleanly, every refund threads, and every state survives a retry.
Princess Auto needed payments wired up across their public storefront and store-pickup flow. The work was the unglamorous half of e-commerce: payment intents, idempotency keys, webhook reconciliation, refund handling, and the surface area where the storefront meets a checkout SDK.
I owned the integration end-to-end: server-side intents in NestJS, client-side checkout flow in Next.js, webhook handlers for async settlement, and the dashboard plumbing that lets ops see what's stuck.
The store-pickup and shipping options share the same intent model, so refunds and partial captures behave the same regardless of fulfillment path.

Catalog, promos, flyers, and a basket flow — all sitting on top of a checkout backend that doesn't lose money on a flaky connection.

Every payment is initiated server-side with an idempotency key tied to the cart hash. Retries from a flaky client don't double-charge; webhook reconciliation closes the loop.

Online + store-pickup means partial fulfillment is the norm. Refunds are processed against the same intent model so accounting stays clean across split shipments.
A walk through the public storefront surfaces.




If you're plugging a payment processor into a real-world commerce flow and want it to behave under load — let's talk.