engineering
Checkout Without the Page: How AI Conversations Replace the Cart Drawer
When a customer's AI assistant runs the buying flow, your /checkout page never loads. Here's what actually happens at payment time.
The classic e-commerce checkout is a sequence of pages. Cart, address, shipping method, payment, confirmation. Every page transition is an opportunity for the customer to drop. Every form field is friction.
The new shape
In an agentic checkout, none of those pages render. The customer's AI assistant has been collecting information across the conversation — name, default shipping address from prior orders, preferred payment method — and it submits a single tool call:
// LLM tool call
{
"tool": "create_checkout_session",
"params": {
"items": [{ "sku": "TSHIRT-BLK-M", "qty": 1 }],
"shipping_address_id": "addr_default",
"payment_method_id": "pm_default",
"currency": "EUR"
}
}
Your storefront returns either a payment_link (delegated payment — customer confirms in Stripe / Apple Pay / a wallet) or a committed_order (passwordless one-tap path, where the customer's AI has already authenticated payment for routine purchases).
What the merchant has to expose
For this to work, the storefront ships:
- An MCP / ACP server with read tools (
search_products,get_product_details) and write tools (add_to_cart,create_checkout_session). - Idempotent writes. The model retries failed tool calls. If
create_checkout_sessionruns twice, you create one order, not two. - Stable customer identity across channels. A customer who has bought from your web store should be recognisable to your AI tool calls — same
customer_id, same address book, same payment methods.
Where the friction moved
Friction didn't disappear; it moved to authentication. The first time a customer's AI buys from your store, somebody has to authorise payment + shipping. After that, the friction is zero — every subsequent purchase is one tool call.
The website checkout page isn't dead. It's just become the fallback path for the first-time customer or the customer who isn't using an AI assistant. The aspirational path is "no page loads at all."