Make cost, progress and required information predictable
Checkout does not have to fit on one screen. It has to feel understandable. Keep the order summary visible and update it when shipping, discounts or taxes change. If a charge cannot be calculated until an address is entered, say so rather than presenting a subtotal that looks final. Ask only for information you will use, separate required data from optional marketing fields, and avoid asking the same question twice. Guest checkout should remain easy to find because account creation can be offered after the order using information the customer has already supplied.
Design recovery states as carefully as the happy path
Payment failures, invalid addresses, expired promotions and unavailable inventory are normal events. Generic error messages force customers to guess what happened. When possible, explain whether they should review card details, try another payment method, correct an address or contact support. Preserve cart contents and entered information so a failed attempt does not mean starting over. Confirmation deserves equal attention: show what was ordered, where it is going, expected timing, contact details and what communication comes next.