One accessory package for four hundred products.

Anyone creating a separate bundle by hand for every article gives up at thirty. For the case where the same package should hang off many products there is a second route — and it uses tools Shopware brings anyway.

Two routes

Maintained on the product or assigned centrally.

The first route is the obvious one: you open a product and create a bundle there. The second reverses the direction — you create the bundle once and then assign it to many products, through three custom fields the plugin creates on installation.

1On the product
The bundle belongs to this one article. As many per product as you like, each with its own components.
3Through custom fields
Three fields per product — Bundle I, II and III — take a centrally created bundle.
Products per bundle
The same bundle may hang off any number of products. It is changed in one place.

The difference is in the upkeep. A package that hangs off four hundred products you change once — not four hundred times. The price for that is the limit of three centrally assigned bundles per product.

The route through custom fields

Because they are custom fields, Shopware can set them in bulk.

That is the actual trick: the assignment is an ordinary custom field on the product. So every tool Shopware has for custom fields applies — without the plugin having to bring anything of its own.

What can set the assignmentShopware's own tools, no extra module needed
ToolSuited toWhat you do there
Mass edita selection in the product listFilter products, select them, set the custom field
Product importfour-digit product countsA column with the bundle assignment in the import file
Admin APIrecurring runs from a third-party systemWrite the custom field per product

In the administration the three fields are called Bundle I, Bundle II and Bundle III and sit on the product in a group of their own.

The limits

Two things to know beforehand.

  • Three centrally assigned bundles per product. There are exactly three fields. If you need more, create the further packages straight on the product — there the number is not limited.
  • The assignment lives in the system language. An hourly task removes bundle assignments from every other language version of a product. Set the custom fields in a second language and you will find them empty an hour later at the latest.

The second point is not an oversight but deliberate: a bundle is an object, not a text. If the assignment existed per language, the same product would have two different packages in two languages — with two different prices in the same cart. So the task tidies up rather than allowing that.

In practice: always set the assignment in your shop's system language. In an import that is the column without a language marker.

Common questions

Can I assign one bundle to many products at once?

Yes. You create the bundle once and assign it through three custom fields on the product — Bundle I, II and III. Because they are ordinary custom fields, mass edit, product import and the Admin API all work for it without an extra module.

How many bundles can I assign centrally?

Three per product, because there are three fields. Bundles created straight on the product are not limited in number; the two routes can be mixed.

Does it work through the product import?

Yes. The assignment is a custom field and can therefore be passed as a column in the import file. For four-digit product counts that is the fastest route.

Why do my assignments disappear again?

Because they were set in a different language version. An hourly task removes bundle assignments from every language except the system language. Set them in the system language and they stay.

Why is there no assignment per language?

Because a bundle is an object with a price and components, not a translatable text. A language-dependent assignment would lead to two different packages on the same product — and therefore two prices in the same cart.

Do I change a central bundle for all products at once?

Yes, that is the point of this route. The bundle exists once; every change takes effect wherever it is assigned.

In detail in the manual

Both routes in the demo shop.

A bundle straight on the product and one assigned to many through custom fields.