cart stateSelection, totals, and line items live in the SDK — never in your markup.
pricingPackage prices and discounts come from the CampaignSpec at render time.
order submitPayment capture and order creation, including failure retry.
hydrationEvery data-next-* attribute is wired on load. No JS required from you.
analyticsCanonical events, commerce payloads, campaign identity, and provider delivery stay in the SDK runtime.
page routingThe funnel order is fixed by the contract: landing → select → checkout → upsell → receipt.
selection stepThe dedicated select page owns variant choice; the SDK carries it into checkout and keeps totals in sync.