Start with the checkout record: how it is created from the cart, which currency it is in and which language its lines show, the stages it passes through on the way to an order, and the four conditions that make it ready for payment, which answer "why is the pay button disabled". Then the architecture of the page itself: state seeded from the server, one API layer, a component per concern, and keeping what the shopper typed through a reload.

The pages after that follow the shopper down the page: the email, addresses and shipping rates; discount codes and automatic discounts; order metadata fields, gift options and donations; and last, guest or account checkout and the captcha that protects the purchase call. Taking the payment itself is the next unit.