Bundle products in Magento 2 are one of the several complex product types. Such products let customers create their own products from the available variants and “bundle” their own set.
In this guide, we will show you how to create bundle products and how to import such products to Magento 2 catalog.
Table of contents
The complete guide to the bundle products and how to import them continues the line of blog posts for Magento 2 import/export guide list. Each post in the line either covers a particular product type or offers a complete guide to a procedure. Here is a full list of posts:
- The Complete Guide to Magento 2 Product Import / Export
- The Complete Guide to Magento 2 Configurable Products, and how to import them
- The Complete Guide to Magento 2 Grouped Products, and how to import them
- How to Add, Export and Import Magento 2 Taxes
- How to Export and Import Magento 2 Categories
- How to Add and Import Magento 2 Fixed Product Tax
- How To Import Customers & Customer Addresses To Magento 2
- How to Import CMS Pages to Magento 2
- How to Import Magento 2 Advanced Pricing
- How to Import Magento 2 Cart Price Rules
What is bundle product
As it has been mentioned above, the bundle products let customers compose their own set of items. Say a camping set, where customers select a tent for two, three or four persons, decide if they want a boat included, and polish it all with a grill of their liking. Basically, instead of visiting three separate product pages, customers can get ready for camping from a single page.
Bundle products are similar to grouped and configurable products in how they work. All three complex product types combine simple products to offer a customer better shopping experience. The main difference is in how the products are delivered to the screen. Configurable products offer multiple variations of a single product, like different colors. Grouped products provide a pre-composed set of products, without variations. Bundle products offer a set of products with variations, unique prices, shipping, and quantity.
Creating bundle product
Before creating bundle product we first need to make sure that we have created all the simple products that will be assigned to it. In other words, we are not creating a single product; we are first creating products that will be used in the bundle, then we create a bundle.
With simple products, I believe everything is clear. This is the most basic Magento 2 product, and you should be already familiar with it.
Now you should know some of the facts about the bundle products:
- Products composing a bundle can be shipped either separately, or as a bundle;
- Bundle product price can be composed as a total of all selected simple products, or you can set up percent and flat values to be added to the simple product prices;
- Bundle product can assign dynamic SKU suffix to all simple products sold as a part of it. Basically, it will add an SKU of a parent bundle to each simple product at the order details page. This can be helpful if you also sell simple products included in the bundle separately.
So, let’s move directly to bundle products and navigate to Catalog > Products screen. Here, we click Add Product > Bundle Product.
Most of the product attributes available at the bundle product screen can be found within a simple product. To shorten the guide, we will omit such attribute and will only explain how the bundle-specific attributes work.
Dynamic SKU adds the simple product SKU as a suffix to the SKU of the bundle products. The suffix is added to the order details page for quick reference and helpful reporting data.
Dynamic Weight – if enabled the bundle weight is calculated as a total weight of all simple products selected by a customer. If disabled you can specify a set weight manually.
Dynamic price – if enabled the bundle price is calculated as a total of all simple products customer purchases within a bundle. If disabled you can specify flat bundle price and add either flat or percent value to each simple product included in the bundle.
The bundle product has a set price of $123. Four simple products are included in the bundle:
- Two products with fixed price of $20 and $30;
- Two products with percent price of 5% and 10%. The percent is applied to the price of the bundle product, meaning 5% will be $6.15 and 10% will be $12.30.
Then the total price of the bundle product will be calculated on the following pattern:
Bundle Price + Prices of the selected simple products
As you can see, the simple product prices we have set manually are added to the set bundle price of $123.
Now, as we are clear with the general bundle product attributes it is time to assign simple products. This can be done from the Bundle Items section.
Here, you decide how you want the items shipped, either all itms together, or every item from the bundle will be shipped separately.
Then, we can add the options to the bundle product by clicking ‘Add Option’ button. The option is somewhat of a group within a bundle. You can have several multiple options assigned to each bundle, like in the example with tents and boats.
When the option is added, you can add the simple products by clicking ‘Add Products to Option’ button.
At the Add Products to Option grid, you are represented with the product catalog, where all created products can be found. By applying necessary filters, you can find the simple products you want to be assigned to the option. When done, click ‘Add Selected Products’ button to proceed.
When the products are added, it is time to edit the option. The Input Type for a customer can be:
- Radio buttons;
- Multiple select.
With Is Default checkbox you can define which products will be pre-selected when the bundle page loads.
Then, if Dynamic Price option is disabled, you can specify the Price of the selected simple products, and define the Price Type: fixed or percent. If Dynamic Price is enabled, Price and Price Type fields will be missing, and set prices of simple products will be used instead.
Next, you can set up Default Quantity. It defines how many simple products will be included in the bundle by default. This can be useful depending on the wares or services you offer.
When done with setting up simple product attributes, you can either add another bundle option or save the product.
Congratulations! You have just finished creating a bundle product.
Magento 2 bundle product import
Before going in depths of import procedure, we strongly advise reading through the Complete Guide to Magento 2 product import/export. In this guide, you will learn basics of product import and export procedures and will learn how to format the CSV table, how to compose the attributes and fill all necessary information.
In this very article, we will focus on the bundle product-specific attributes and will learn how to import bundle products to Magento 2 store and keep all simple product ties. Let’s get to it.
Magento 2 guidelines shed a little on the issue and in some cases shouldn’t even be trusted. For example, Magento 2 team suggests that attribute associated_skus is used to tie simple products to bundle parents; however, it is not. What attribute(s) is used then?
There are six main attributes of the bundle product that are used in the import table:
The main attribute that should ALWAYS be in the import table is bundle_values. It contains all the necessary information to tie simple child products with the bundle parent. All other attributes carry other bundle product specific values, however, if absent Magento 2 will put in default values. bundle_values attribute, however, defines how bundle options work, what products are assigned to options and covers product settings. We will break these attributes one by one and explain which values are expected from the store owner to import a fully functional bundle product.
While reading about bundle product attributes feel free to reference any values to the
As it has been said, this is the main attribute which is responsible for tying simple products to the bundle. It is also the most complex attribute of all, as its value is composed of the several options. If your bundle product has two simple products assigned the bundle_values attribute value will look something like this:
name=Pushup grips,type=select,required=1,sku=bundle-grips1,price=10.0000,default=0,default_qty=1,price_type=fixed,can_change_qty=1|name=Pushup grips,type=select,required=1,sku=bundle-grips2,price=10.0000,default=0,default_qty=1,price_type=fixed,can_change_qty=0
It may look overwhelming on the first glance; however, it is pretty simple when you break it down. This attribute value mirrors all the settings available within the Bundle Items configuration section of the bundle product, where we have the following:
Here we have:
Option title, Input Type, Required, if simple product is pre-selected (is default), SKU of a simple product, price of a simple product, price type of a simple product, default quantity and if qty of a product is user defined. All these values go into the bundle_values attribute for EVERY simple product. Let’s draw a table of these options and their attribute values.
|Option||Attribute value||Allowed symbols||Example|
|Option Title||name||All symbols except pipe |||If you name option ‘Camping tent’, the value should read:
drop-down – select
radio buttons – radio
checkbox – checkbox
multiple select – multiselect
|If you want customers select product from drop-down list, the value should read:
|Required||required||1 – option is required
0 – option is not required
|If the option is required, the value should read:
|Is Default||default||1 – product is default
0 – product is not default
|If the product is set as default, the value should read:
|SKU||sku||All symbols available for composing product SKU||If SKU of the product is ‘ABC123’, the value should read:
|Price||price||Numerals only||If the price of the product is $12.34, the value should read:
|Price Type||price_type||fixed – flat price value
percent – percent value calculated from bundle price
|If the price type for simple product is fixed, the value should read:
|Default Quantity||default_qty||Numerals only||If default quantity of the simple product is set to 10, the value should read:
|User Defined||can_change_qty||1 – is user defined
0 – is NOT user defined
|If you want to let users define option value quantity: can_change_qty=1
Now that we are done with the option values, let’s copy all the examples from the table to compose them together. When done we will see how a single simple product assigned to the bundle will look like in the bundle_values column of the import table:
As you can see we used comma to separate attribute values and pipe to end the line. After the pipe we can add another simple product in the same pattern.
Now let’ actually read what have we got in the attribute. We have Option Title ‘Camping tent’, and customers will select from the drop-down, this option is required, and this simple product is default, it is ABC123 simple product, with price of $12.34, the price type is fixed and default quantity is set to 10, and customer can adjust the product quantity. Simple huh?
Now what you should remember:
- Option values are separated by comma: name=123,sku=321,…;
- Products are separated by pipe symbol: …,default_qty=10|name=123,…
- If bundle Dynamic Price is enabled you don’t need price and price_type values. If Dynamic Price is disabled make sure to include price and price_type values.
- If you do not want customers to define product quantity set can_change_qty to ‘0’.
That’s pretty much it, now you can fill in bundle_values for your import table properly. If you still have any questions – make sure to leave a comment in the end of this article.
This bundle product attribute defines whether Dynamic Price is enabled or disabled. The allowed values are:
- dynamic – means that the Dynamic Price is enabled;
- fixed – mean that the Dynamic Price is disabled.
This bundle product attribute defines how the price of the product will be displayed. The allowed values are:
- price range – from the lowest possible bundle total to the highest. For example: $100-$200.
- as low as – only the lowest possible bundle total will be displayed.
This bundle product attribute defines how the SKUs of the simple product will be composed. The allowed values are:
- dynamic – the SKU of the simple product will be added as a suffix to the bundle product SKU to allow more precise reporting data;
- fixed – only the SKU of a parent bundle product will be displayed on the order details screen.
This bundle product attribute defines how the weight of a bundle product is calculated. The allowed values are:
- dynamic – the weight of the bundle product is calculated as a total of all simple products selected by customer;
- fixed – the weight of the bundle product is always the same and is inputted manually.
This bundle product attribute defines how the items of a bundle product are shipped. The allowed values are:
- together – all items will be shipped to the customer together in a single parcel;
- separately – items of the bundle product will be shipped to customer separately.
Google sheets import
The import procedure of bundle products can be enhanced with the help of Magento 2 Improved Import and Export extension by FireBear Studio. The extension allows to schedule the import and export jobs, allows import from a variety of sources and comes with the table and attribute mapping functionality.
What is also important the extension support import from Google Sheets, and we would like to share with you the Google Sheet Master Table.
In the Master Table we have composed a
Every product attribute in the table comes with the description and hints on which values are expected from the store owner. If you are new to Magento import procedure or want to make sure your clients understand which values are expected from them, feel free to use the table. It is completely FREE!
So, this is it for Magento 2 bundle products guide. We hope that you have found lots of useful information and your questions have been answered. If still any questions – feel free to leave a comment.