SOLID BUNDLES // DOCS

How Orders Arrive at Your 3PL

The whole point of Solid Bundles: your fulfillment provider needs zero special handling. Orders contain component SKUs as ordinary line items at the moment the order is created, not rewritten afterwards, not hidden inside a "bundle" line.

Checkout with a bundle expanded into component line items with real SKUs
01 / CHECKOUT EXPANSION

What the order looks like

A customer buys "Hair Care Set" (2× shampoo + 1× conditioner, bundle price $45):

LINE ITEMSKUQTYPRICEATTRIBUTES
ShampooSHAMPOO-2502$12.50_bundle_parent: HAIR-SET
ConditionerCOND-2501$20.00_bundle_parent: HAIR-SET

The fulfillment order (what your 3PL's Shopify integration imports) lists the same component lines. Inventory decrements on the components, never on a phantom bundle SKU.

Why this matters: the failure mode we designed against

Most bundle apps work at the presentation layer: the order contains one "Bundle" line, and either your 3PL can't map it to pickable items, or the app edits the order after creation to swap in components. Post-order editing races your 3PL's import: if they pull the order before the rewrite lands, they ship the wrong thing. Peak-season order volume makes the race worse exactly when mistakes are most expensive.

Solid Bundles uses Shopify's Cart Transform API: the expansion happens inside checkout, so there is no moment where the order exists without component SKUs. There is nothing to race.

Provider notes

Verify it yourself

App → Verification runs real test carts and shows resulting totals per market. For a full dry run: place a test order (Bogus Gateway on a dev store, or a 100% discount code) and inspect what your 3PL portal imports.