This is an optional feature. It requires Business Manager configuration and project code. See Required customization.
Limitations
Mixed Orders is not compatible with Pay By Link, which works only with single orders.Required customization
The cartridges provide the necessary building blocks but leave the hub-specific logic to the project, because hub assignment is merchant-specific.1. Custom product inventory lists
By default SFCC uses one inventory list per site. Mixed Orders allows a different inventory list per product, so stock can be managed per hub. To enable it:-
Set the site preference Use Custom Product Inventory Lists (
geUseCustomProductInventoryLists) to Yes under Merchant Tools → Site Preferences → Custom Site Preference Groups → Global-e Settings. -
Implement the
globale.getProductInventoryListIdhook by overriding its handleronGlobaleGetProductInventoryListId.js(which returnsnullout of the box) to return the correct inventory list ID for a given product.The hook is only invoked when
geUseCustomProductInventoryListsis enabled; otherwise the cartridge returnsnullwithout calling it.
2. Hub code on the SendCart product
The SendCart request (sent before the checkout page is shown) carries aHubCode property per product. It is null by default; for Mixed Orders it must contain the hub ID configured on the Global-e side.
Override the globale.getPliHubCode hook handler onGlobaleGetPliHubCode.js (which returns null out of the box) to return the correct hub ID per product line item.
3. My Account / Order History / Order Details templates
On the storefront, mixed orders appear to shoppers as a single order: My Account shows the main order number, while the order page shows products and prices combined from the main and sub-orders. Shoppers are unaware of the split and see one order in the currency they used. The cartridge logic is based on the base SFCC My Account layout. When you enable Mixed Orders, review every template and script used by the My Account section and adapt any that you have customized away from the base SFRA/SiteGenesis implementation.Order-update hooks
Mixed Orders has dedicated hooks for the multi-order lifecycle — for exampleglobale.onAfterCreateMixedOrder, globale.onAfterUpdateMixedOrders, globale.onAfterPaymentUpdateMixedOrders, and globale.onAfterStatusUpdateMixedOrders. See the Hooks reference for arguments and return values.
See also
- Pay By Link (mutually exclusive with Mixed Orders)
- Checkout flow · Order lifecycle
- Hooks reference —
getProductInventoryListId,getPliHubCode, mixed-order hooks - Metadata reference —
geUseCustomProductInventoryLists

