From 3109ed74f4f578712097dcacbecf0035e8c3facb Mon Sep 17 00:00:00 2001 From: YanisMtcr Date: Thu, 3 Sep 2026 00:51:00 +0200 Subject: [PATCH] docs(cart): define the continue_url destination and format The cart page asks businesses to provide continue_url but leaves its destination as a TODO from #73. The permalink spec already lets the business resolve into a cart or a checkout; this adds a Continue URL section that keeps that choice open, requires the cart contents to survive the handoff, and points at the checkout page for the format. --- docs/specification/shopping/cart/index.md | 35 +++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/docs/specification/shopping/cart/index.md b/docs/specification/shopping/cart/index.md index a5c4427b5..c11e30851 100644 --- a/docs/specification/shopping/cart/index.md +++ b/docs/specification/shopping/cart/index.md @@ -89,6 +89,37 @@ SHOULD be linked for the duration of the checkout. on a cleared cart ID return `not_found`; the platform can start a new session with `create_cart`. +## Continue URL + +The `continue_url` field hands a cart from the platform to the business UI, so +a buyer can share, recover, or keep building the cart in a browser, or move on +to purchase. + +### Destination + +The destination is the business's choice: its cart page, its checkout entry, +an embedded flow, or any surface that fits its purchase path. Whatever the +destination, it **MUST** present the cart's current `line_items`, with their +quantities and selected variants, without requiring the buyer to add them +again. Items that can no longer be offered at resolution time follow the +[permalink redirect resolution rules](../../permalink.md#redirect-resolution). + +A cart session is served by the business's UCP endpoint, and that endpoint does +not always share state with the storefront. A `continue_url` that points at the +storefront's own cart page then lands the buyer on an empty basket. + +### Format + +The `continue_url` **MUST** be an absolute HTTPS URL and **MUST** carry or +reference the cart contents. Businesses **MAY** use either approach described +in the [checkout Continue URL format](../checkout/index.md#format): + +* an opaque URL backed by server-side cart state, for example + `https://business.example.com/carts/{cart_id}`; +* a stateless URL that encodes the cart's items, such as a + [permalink](../../permalink.md), which the business resolves into a cart + or a checkout. + ## Quantity and sale basis Cart line items apply the shared @@ -147,8 +178,8 @@ custom scopes are defined in [Identity Linking — Scopes](../../common/identity ### Business -* **SHOULD** provide `continue_url` for cart handoff and session recovery. -* TODO: discuss `continue_url` destination - cart vs checkout. +* **SHOULD** provide `continue_url` for cart handoff and session recovery. See + [Continue URL](#continue-url) for destination and format. * **SHOULD** provide estimated totals when calculable. * **MAY** omit fulfillment totals until checkout when address is unknown. * **SHOULD** return informational messages for validation warnings.