I am trying to solve a checkout behavior issue for a cart type use case in Shopify.
We have carts where a cart attribute is set as:
DFType = pickup
In this flow, the shipping address represents the dealer location, not the customer’s actual billing address.
What we want
For these pickup carts only, we want to:
- Hide the “billing address same as shipping” toggle / option, or
- Default billing address to separate from shipping automatically
What we confirmed with Shopify Support
Shopify Support confirmed the following:
- Checkout UI Extensions do not have a target for the billing address section and can only add UI, not remove or suppress native checkout elements.
- The Checkout Branding API does not provide controls for billing address visibility.
- The billing address is read-only from an extension, so it cannot be preselected or filled programmatically.
- The only supported setting today is the store-wide checkout preference:
Settings > Checkout > Advanced preferences > Address collection > “Don’t use shipping address as billing address by default” - However, that setting is global and cannot be applied conditionally based on a cart attribute like
DFType = pickup.
Question
Has anyone implemented a workable pattern for this kind of conditional checkout behavior?
Specifically:
- A way to handle pickup flows where shipping address is not the correct billing address
- Any workaround that is production-safe
- Any alternative architecture, app pattern, or checkout design that avoids confusing the customer