One product, the whole flow. Tap add to cart, open the cart, pick a payment method, place the order.
Cart state persists server-side, not just in local storage, so a signed-in shopper's cart survives a device switch.
Stripe and PayPal sit behind one order API, so refunds, webhooks, and order status update the same order record no matter which one the shopper picked.
Inventory decrements on payment confirmation, from the webhook, never from the client click, so double-orders and race conditions don't oversell stock.
Confirmed via Stripe. Inventory and order status updated from the webhook, not the click.