Cart and checkout permalinks now support UCP at /buy
Shopify developer change
MerchantDiff detected this entry in Shopify's official developer changelog on October 28, 2026.
This Shopify update is categorized as UCP, New, 2026-08-25.
What changed
Shops now list the dev.ucp.shopping.permalink capability in their UCP discovery profile at /.well-known/ucp, and its config.endpoint points to the shop’s /buy route. A /buy link encodes items in the path as token:quantity pairs and sets other cart and checkout fields with query parameters named by their UCP field path, such as buyer/email or discounts/codes/0. With a /buy link, you can: Add one or more items by variant ID Prefill buyer details, such as email address Set the buyer’s country and language Apply discount codes Indicate a preference for Shop Pay Send the buyer to a specific page on the shop with a continue_to parameter If a link can’t be applied, Shopify redirects the buyer to the continue_to destination when it’s present, or to the shop’s storefront instead of showing an error page. Existing /cart permalinks keep working, although they’re now the legacy format.
Who is affected
Shopify app developers using the API or platform feature named in this update should review the official change.
What action may be needed
Use /buy for new links, and move existing /cart links to /buy where you can. New capabilities only apply to /buy, and the same link format works on any business that supports UCP. Your /cart links keep working, so you can migrate on your own schedule. If you rely on selling plans, line item properties, cart notes, or cart attributes, keep using /cart for now.
Use the official Shopify entry below as the source of truth for technical implementation details, affected APIs, migration instructions and deadlines.
Want the actionable version?
MerchantDiff monitors Shopify API changes, deprecations, deadlines and ecosystem updates, then turns them into developer-focused release intelligence: what changed, who is affected and what action may be needed.
Get MerchantDiff →