Support for creating Cart objects using Storefront API

Topic summary

Headless checkout integration is running into a gap between Shopify’s Storefront API Cart and Checkout objects. The store uses the Checkout API to create checkout sessions, while a third-party app for upsells expects data from Shopify’s Cart object on the checkout page.

Key issue:

  • Two different checkout links exist: Cart checkoutUrl and Checkout webUrl.
  • It is unclear whether a Cart can be created or managed through the Storefront API in a way that stays connected to a Checkout created headlessly.

What is being asked:

  • Whether Shopify currently supports creating/updating Cart objects for headless storefronts.
  • Whether Cart and Checkout can be synchronized so line items and changes appear consistently at checkout.
  • Whether Checkout webUrl already includes an editable Cart behind the scenes, or whether a Cart checkoutUrl can be derived from a Checkout.

Current status:

  • No solution or confirmed workaround is provided in the post.
  • The question remains open, including whether future API support is planned.
Summarized with AI on March 6. AI used: gpt-5.4.

Hello, I’m integrating an App from Shopify’s App Store called “OrderBump” to my Shopify store that reads from the Cart object in the checkout page for potential upsells. The Storefront API is currently integrated headlessly and I’m using Checkout API to create the checkout.

I found that there’s 2 types of checkout urls, one from the Cart’s checkoutUrl (https://shopify.dev/api/storefront/reference/checkouts/cart) and from Checkout’s webUrl (https://shopify.dev/api/storefront/reference/checkouts/checkout)

I’m wondering if it’s possible to create/manage Shopify’s Cart object using Storefront API? Or if it will be a feature in future versions of the API and if there’s any recommended workaround to modify Shopify’s Cart object headlessly?

Ideally, upon going to the checkout page from Checkout’s webUrl, the Cart object will be filled with lineItems added to Checkout and any modifications to either objects will update the checkout page, that’ll be great!

Or if we can generate a Cart object’s checkoutUrl from the Checkout object that contains this Cart object at the checkout page, or if the Checkout’s webUrl already contains a cart object that can be modified.