Unable to properly pass parameters to the checkout to set locale and prefilled shipping address

Topic summary

Issue: URL parameters appended to checkout (via JS Buy SDK’s checkout.webUrl) no longer persist, breaking locale (e.g., en-AU) and pickup method (e.g., method=collection) settings with a Zapiet Store Pickup workflow. Previously worked; now the checkout rewrites the URL and strips params, possibly due to the new one‑page checkout.

Context and examples:

  • OP cites another headless + Zapiet store where params remain visible and functional.
  • A screenshot was shared to ask how a specific checkout layout was achieved; also asked if it’s Shopify Plus–only.

Key insights shared:

  • The layout and behavior may rely on Checkout UI extensions within Checkout Extensibility, which are available only to Shopify Plus.
  • Another team reports the same problem: data passed via URL params from a non‑Shopify frontend is stripped by Checkout Extensibility, requiring a new method to transmit data.

Definitions:

  • JS Buy SDK: Shopify’s Storefront API JavaScript SDK for headless carts/checkout.
  • Checkout Extensibility: Shopify’s newer checkout customization framework; often Plus‑focused.

Status/Outcome:

  • No confirmed workaround. Indications that Extensibility strips URL params and that advanced layout/customization likely needs Plus. Discussion remains open with unresolved passing of data without URL parameters.
Summarized with AI on January 6. AI used: gpt-5.

I don’t know if it’s related to this: https://community.shopify.com/post/2307626, the new one page checkout, but I am unable to pass parameters to the checkout properly. Mind you, I am doing it via the checkout.webUrl with the js-buy sdk. But even manually adding the params to the final checkout url it still doesnt work.

Essentially I have a zapiet store pickup third part app, and I want the checkout to reflect that the user chose pickup. I have made en-AU locale file for checkout to have wording that says “pickup” etc… so I want to set that checkout to be en-AU. Previously that has worked with my setup, but I notice the checkout.webUrl structure changes when actually loaded, and removes my params.

I have seen other stores implement it fine, with a similar setup as mine, zapiet + headless. For example they can do the following and not have any url changes: https://shop.parsonsnose.co.uk/14775166/checkouts/dbe10c7f7df5829f1617d6e7cad783b6?locale=en-CA&method=collection

Wonder if anyone else has experience with js-buy checkout.webUrl and appending params.

1 Like

Like how is this store able to achieve this layout? Is it a Shopify plus feature?

It’s possible that they could be using checkout UI extensions, which are part of Checkout Extensibility, and therefore only available to Shopify Plus.

Dealing with a similar issue, though unrelated to layout. Our team relies on data sent from our non-Shopify store to checkout through URL params. The data gets stripped from the URL by Extensibility and we’re looking for a new way to pass this information.