Auto-Populating Delivery Address in Checkout Page Using Storefront API

Topic summary

Problem: Delivery address fields are not pre-populating on Shopify’s hosted checkout when using the Storefront API to set buyer identity and deliveryAddressPreferences.

Process reported:

  • Create cart via cartCreate.
  • Update buyer identity via cartBuyerIdentityUpdate with email, phone, countryCode, and deliveryAddressPreferences (includes address1, city, province, country, zip).
  • checkoutUrl is generated correctly, but the checkout page shows empty delivery address fields.

Technical context: Storefront API (GraphQL) powers custom storefronts. cartBuyerIdentityUpdate is intended to attach buyer details to a cart. deliveryAddressPreferences is used to provide preferred shipping/delivery addresses. The mutation returns successfully (no errors), yet checkout UI does not reflect the values.

Community feedback: Multiple developers confirm identical behavior and ask for updates; one notes the mutation succeeds without errors. No workarounds or official guidance are provided.

Status: Unresolved/ongoing. Key open questions: whether Shopify checkout supports auto-populating from deliveryAddressPreferences, if additional fields/permissions are required, or if another API/flow is needed to prefill shipping address.

Summarized with AI on December 17. AI used: gpt-5.

Hello Shopify Community,

I’m currently developing a custom checkout experience using the Storefront API and have encountered a challenge. Despite successfully creating carts and associating them with user identities (including delivery address preferences), the delivery address fields are not being pre-populated on the generated checkout page.

Here’s a brief overview of my process:

  1. I create a cart using the cartCreate mutation.
  2. I update the buyer identity with the cartBuyerIdentityUpdate mutation, including deliveryAddressPreferences.
    The checkout URL is generated correctly, but when navigating to this URL, the delivery address sections remain unfilled. I’m looking for guidance on how to ensure these fields are automatically populated with the information provided via the API.

Here’s a snippet of my cartBuyerIdentityUpdate mutation for reference:

mutation {
cartBuyerIdentityUpdate(cartId: "cart_id", buyerIdentity: {
email: "user_email",
phone: "user_phone",
countryCode: "user_country_code",
deliveryAddressPreferences: [{
deliveryAddress: {
address1: "user_address1",
city: "user_city",
province: "user_province",
country: "user_country",
zip: "user_zip"
}
}]
}) {
cart {
checkoutUrl
}
}
}
2 Likes

Hey, any luck with this? I am running into the same thing

4 Likes

Facing the same issue. Any updates?

1 Like

Also running into the same issue, the query comes back without errors too

Same problem here. Any news on this?

same issue please tell me how to resolve ??