storeMode, and getting this wrong is a common and easily missed cause of B2B checkout failures. If you need a refresher on how Stores and Channels scope a project, see the Model your business structure path.Store modes
storeMode field controls where a Business Unit's Stores come from:Explicit: the Business Unit holds its own Stores directly, in itsstoresarray.FromParent: the Business Unit takes its Stores from the nearest ancestor that has Stores set.
Explicit, because it has no parent to inherit from. A Division defaults to FromParent, so by default it inherits its parent's Stores. For the field-level definitions, see BusinessUnitStoreMode in the API reference.storeMode is Explicit, the unit's resolved Stores appear in stores. When storeMode is FromParent, they appear in inheritedStores instead. The inheritedStores field is eventually consistent, so it may lag briefly after a change higher in the hierarchy.stores field of BusinessUnit in the API reference.The Store override rule
storeMode: FromParent inherits the full set of Stores from the closest parent that has Stores defined. The moment you set a Division to storeMode: Explicit and give it its own stores, it stops inheriting parent Stores entirely; explicit assignment replaces inheritance rather than adding to it.storeMode to Explicit and supplying stores overrides inheritance; the Division now sees only the Store you assign. The version in the request must match the Business Unit's current version, because updates use optimistic concurrency control.POST /{projectKey}/business-units/key=pacific-commercial HTTP/1.1
Content-Type: application/json
{
"version": 3,
"actions": [
{
"action": "setStoreMode",
"storeMode": "Explicit",
"stores": [
{ "typeId": "store", "key": "pacific-commercial-store" }
]
}
]
}
storeMode is now Explicit, the assigned Store appears in stores, and inheritedStores is no longer present, confirming the Division no longer inherits from its parent.{
"id": "7c1f9e22-5555-6666-7777-888899990000",
"version": 4,
"unitType": "Division",
"key": "pacific-commercial",
"storeMode": "Explicit",
"stores": [
{ "typeId": "store", "key": "pacific-commercial-store" }
]
}
storeMode: FromParent empties its stores array and resumes inheritance from the closest parent that has Stores.What inherits and what is always explicit
Store inheritance is only one of several inheritance behaviors in a Business Unit hierarchy. The following matrix summarizes what a Division can inherit and what it must always define for itself.
| Aspect | Inherits? | Mechanism |
|---|---|---|
| Stores | Conditionally | storeMode: FromParent resolves to the closest parent with Stores (Store Override Rule) |
| Associates | Conditionally | associateMode: Explicit or ExplicitAndFromParent |
| Associate role assignments | Per assignment | inheritance on each assignment: Enabled or Disabled (default Disabled) |
| Approval Rules | Conditionally | approvalRuleMode: Explicit or ExplicitAndFromParent |
| Customer Group assignments | Conditionally | customerGroupAssignments (beta) resolve from the hierarchy |
| Addresses | Never | Always explicit on each Business Unit |
| Custom Fields | Never | Always explicit on each Business Unit |
The associate and approval inheritance modes are covered in detail in Module 2 and Module 7. The key point here is the bottom of the table.
Worked example: Pacific Property Group stores
Pacific Property Group is a Company with two Divisions: Residential and Commercial. Residential shares the parent Company's catalog and negotiated prices. Commercial has a separate assortment served from its own Store.
- Residential keeps the default
storeMode: FromParent. It inherits the parent Company's Store, which delivers the shared assortment and pricing, and its inherited Stores appear ininheritedStores. - Commercial is set to
storeMode: Explicitwith its ownpacific-commercial-store. By the Store Override Rule, it no longer sees the parent Company's Store at all; only its own. - Both divisions are given their own
addresses, because addresses never inherit. Without this step, checkout would fail for both divisions even though their Stores are configured correctly.
This configuration gives Residential shared assortment and pricing with minimal setup, while Commercial gets an isolated assortment, and both can complete checkout.
Putting it together: the setup sequence
The worked examples across this module are steps in a single end-to-end setup. Because some steps depend on others, follow this order when you onboard a buyer organization:
- Create the Associate Roles the organization needs. The Merchant Center Business Unit flow requires roles to exist before you can add Associates (covered in Module 2).
- Create the Company as the top-level Business Unit, with its own Stores.
- Create each Division under the Company. Divisions default to
storeMode: FromParentand inherit the Company's Stores. - Override Stores per Division only where a Division needs a different assortment, by setting
storeMode: Explicitand its ownstores(Store Override Rule). - Add addresses to every Business Unit, including each Division. Addresses never inherit, so a Division without its own shipping and billing addresses cannot complete checkout.
Key takeaways
storeModeisExplicit(Stores defined on the unit) orFromParent(Stores inherited from the closest parent with Stores).- A Company is always
Explicit; a Division defaults toFromParent. - The Store Override Rule: setting a Division to
Explicitwith its own Stores overrides all inherited Stores; inheritance is all-or-nothing, never merged. - Stores, Associates, role assignments, Approval Rules, and Customer Group assignments can inherit; addresses and Custom Fields never inherit.
- A Division with no addresses cannot complete checkout, which is a common and easily missed B2B configuration failure.