I have a client who needs to list product "Bundles" as individual products. So basically, there would be products x, y, and z, all with their own SKU, and then bundle A with it's own SKU. Bundle A is all three products (x, y, z) at a discounted price. When Bundle A is purchased, the SKU is sent to their ops and packaging team (we have an integration from Commerce to their warehouse software).

The thing is, only bundle A's SKU is sent on purchase, which is fine because the warehouse team know what products belong to what bundle. However, the products in the bundle (x, y, z) have variations.

Is their some reasonable to add a product connection field to the variation of the Bundle? The issue is that the Bundle SKU would need to stay the same, but the customer needs to able to pick the variations of the related products that are in the bundle and have it stored in Commerce for the warehouse team to manually check. I'm a little lost on how to handle this. Basically, when a bundle A is ordered, their needs to be some way to store what variations of the related products were chosen for the bundle. Any suggestions, or am I missing some basic feature that would cover this?


Due to the rush of this job (customer wants this for the shopping season) I'm thinking this (thoughts or comments asked for):

Make a Variation text field (bundleChoices) for the bundle. On the bundle add-to-cart page where all products in the bundle are listed, use Javascript to stop the add-to-cart button, collect the bundle's product's variation choices and skus, and fill in a hidden (bundleChoices) field. Then add the bundle product with plaintext data describing the product variations chosen for this bundle.


We've decided to drop product variants in a bundle product. So if you buy a bundle, you get product x variant a, product y variant f, and product z variant q, no substitutions on the products normal options. To accomplish this, a bundle product will have a field for SKUs where just copy and paste the variant SKUs you want attached to the bundle.

  • Great question. We have a prospective client with needs similar to this, so are also keen on figuring out the most efficient solution to this. It would also be helpful to track stock levels of the individual variants and prevent orders of the bundle once the variants sell-out. Don't have an answer yet, but it will be something we're researching.
    – Simon East
    Nov 15, 2018 at 2:04

1 Answer 1


Without thinking about it too deeply, I think rather than sending the single bundle Id, you will probably want to use MultiAdd for this - https://github.com/verbb/multi-add - and basically set up a form that intercepts the user choices and translates those to the appropriate variant Ids for submission to Commerce.

  • Wouldn't this add some complexity on handling the bundle price? For example, if I use MultiAdd on a bundle page to add three products and their variations, they need to have their discounted price for the bundle only. Then on a cart page, I'd need to keep an eye on the bundle products and make sure only one product is their per purchased bundle, and only apply the discount on products that are in a complete bundle (cart has at least one of east product in that bundle)... and overlapping bundles sharing some products... and...
    – jrothafer
    Nov 11, 2017 at 1:09
  • Would something as dumb as adding a hidden field to the Bundle product variation (text field), and when a user adds a bundle to cart (all the products in the bundle and their variation choices are on one page), skim the variation choices, compile them into simple readable text (Product A - Blue, Product B - Size 4), put it in the hidden field, and then submit to cart?
    – jrothafer
    Nov 11, 2017 at 1:13
  • Well yes it certainly would add complexity re: price as indeed there's not much support for this in discounts etc. So that's a fair point. Dumping it to a text field will handle it in a very basic way and keep the pricing side of things ok, but if you're using stock etc it won't work for that really. Compromises with all approaches with this currently I think! Nov 11, 2017 at 2:46
  • I think we are just going to drop variants in the bundles and just use the default variant of a product if it's in a bundle. Yea, the hacky text field thing would work but after chatting with the client just now, they aren't sure how to insure order fulfillment at the warehouse would check the CMS system. Our Commerce products get stock updated from our integration on an hour cronjob, so Commerce stock would stay decently in order with the warehouse. Thanks for your suggestions!
    – jrothafer
    Nov 11, 2017 at 3:55
  • Sounds sensible! Nov 12, 2017 at 2:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.