Ensure your store has the Shopify Bundles feature enabled (available as a free app on Shopify app store, or via API for Plus); obtain `write_products` Admin API access scope
Call the `productBundleCreate` mutation, passing a `ProductBundleCreateInput` with `title`, `productOptions` (if the bundle has options), and `components` — an array of `ComponentInput` objects each containing a `variantId` (the component variant) and `quantity`
The mutation runs asynchronously and immediately returns a `ProductBundleOperation` object with a status; poll `productOperation(id:)` query until `status` is `COMPLETE`
Once complete, retrieve the bundle product ID from the operation result and use `productUpdate` or the admin UI to set pricing, images, and descriptions on the bundle parent product
Activate the bundle product variant so it appears on the storefront; inventory is automatically calculated from component variants — no separate inventory entry is needed for the bundle parent
Test by adding the bundle to a cart: verify component inventory decrements correctly when the bundle is purchased
Known gotchas
productBundleCreate is asynchronous — do not assume the bundle product is ready immediately after the mutation returns; always poll productOperation until COMPLETE before reading the resulting product ID
Bundle components must all be on the same store; cross-store or cross-channel component references are not supported
Changing component quantities after creation requires `productBundleUpdate`, not productUpdate; mixing the two mutation paths can leave the bundle in an inconsistent state
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp