The guide is dedicated to the customizable options — the extra settings available for simple, downloadable, and virtual products in Magento 2 that enable the creation of product variations. Products with custom options resemble configurable products staying a unique system element at the same time. Throughout the text, we’ll discover the peculiarities of custom options, learn how to use them properly, and how to import them to your Magento 2 store.
Table of contents
What are custom options
As it was mentioned above, customizable options add unique features to simple products (as well as downloadable and virtual ones) in Magento 2. Simple products, being the basic units within a Magento 2 store, mean standalone items that are sold individually and as a part of complex entities, such as grouped, bundle, and configurable products. The same applies to non-physical downloadable and virtual products. One of the specifics of the types is that merchants can’t sell items with several attribute sets within a single product. As a result, the products are limited in providing diversity. However, the native Magento 2 functionality offers a way the closest to the problem solution — customizable options. By configuring custom options, you get the opportunity to make your offers more flexible.
If you are also interested in specifics of other types of products, explore the related posts composed by our team.
How custom options work
You can configure custom options in the store backend. They can be applied right from the product page in the backend. Go to Catalog > Products and select a product of a simple, downloadable, or virtual type. Scroll down the product page to find the ’Customizable Options’ section. The settings allow you to add multiple options, choose option modes, and get various combinations. In the next segment, you can find the descriptions of option types and get the idea of what they are used for.
You can select the desirable custom option type out of text, file, selection mode, and date. The setting section contains fields for indicating the title, option type, price details, supported file extensions, etc.
The option type establishes the number of setting entries you need to fill in to enable the option.
- ‘Text’ (field or area) allows customers to request product variations. ‘Field’ is a single line of text and ‘area’ is a text box available for customizing with WYSIWYG and HTML. The maximum text length is manageable for both types.
- ‘File’ is used for a customer file upload feature. Here, you can set permissions for file extensions and image dimensions.
- ‘Select’ means an option selection form that can be displayed as dropdown, radio buttons, checkbox, and multiselect.
- ‘Date’, specified to years, months, days, hours, and minutes, adds time-related options to a product. ‘Date’ and ‘time’ values can be used both separately and combined.
Custom options can be easily confused with configurable products as they serve the same purpose and enable a high level of interaction with customers. Nevertheless, the functionalities are totally different in the core; the backend routines are separate for these two as well. The detailed comparison between the entities can be found in the next chapter.
If you want to enable product customizable options, there are a few things you must know beforehand:
As custom options do not have QTY, you won’t be able to maintain full control over the inventory as long as you sell physical products. Custom option SKU adds a suffix to the product SKU and is used purely for order processing and analytical purposes.
- Price Rules.
Be it a fixed sum or a price percent, custom options simply add extra cost to the base product price. If you want to create discounts, keep in mind Catalog Price Rules reduce only the PRICE of the product, while prices for custom options remain the same. Cart Price Rules process Total for discounts, so, in this case, both PRICE and custom option price are lowered.
Product variations made with custom options are not identified by search engines. Upon an entry, search results won’t show anything except the base product information. And, as a result, those variations are not visible to the Internet.
Magento 2 possesses the native import of custom options that can be found in the same section. By clicking ‘Import options’, you can implement the existing custom options from product to product to save time on configuring similar variations for different items.
Taking into account the peculiarities of custom options, the most plausible scenario for composing such product variations would be service providing. Custom options for simple, downloadable, and virtual products can become a useful tool for those who sell courses, membership, season tickets, item modifications, etc. If your business is strongly dependent on storage management, you should turn to more appropriate to the case functionality — configurable products.
Products with custom options vs. Configurables
Both product custom options and configurable products can be the means for creating product variations. Both ways have own specifics, areas of use, challenges, and limitations. Now it’s time to look at the difference between them in detail.
First and foremost, we must keep in mind that сustom options and configurable products in Magento 2 are of separate nature. Custom options are just a modified layer over a product, while configurable product components are products themselves. The gap reflects directly on the setting up process. Configurable products require much more effort from the admin, still provide more flexibility for future data editing. Custom options are easy to handle with a strictly limited number of settings involved. Absent of separate SKU, custom options can make s mess of inventory records. Moreover, custom options are almost invisible within the store and can be found by customers only on a product page. SEO tools cannot track product variations presented by custom options and, thus, cannot promote them in the net or within a store.
In their turn, variations of configurable products introduce an extensive setting list, identical to one of the actual standalone products. They are easily managed and available to customers on all the levels of Layered Navigation, at the category page, and during the search. Crawlers index such product pages as trustable and able to satisfy user entries.
|Criterion||Products with custom options||Configurable products|
|Accessibility||Product variations are not available for searching and filtering upon||Product variations are fully independent separate products and have own positions in the store navigation|
|Inventory relation||Not manageable||Easily trackable and manageable|
|Pricing possibilities||Product price with the addition of a fixed sum or a price percent||Flexible for each child product|
|SEO orientation||No||Yes, possesses a full attribute set and visibility terms|
|Display mode||Variety of display options.||Can’t be customized.|
|Level of admin involvement||Set up per-product||Each variation of a configurable product is a simple product|
Set up custom options if:
- your business does not depend on physical storage;
- you specialize in unique services and need a special form of interactions with customers;
- you don’t put on massive product promotions;
- search is out of your concerns.
Decide on creating configurables if:
- you are looking for a functionality with full admin control;
- inventory management is a part of your business lifecycle;
- you focus on the progressive sales growth and transmit your offers on multiple channels via all available tools, including SEO and price-based marketing.
How to import custom options to Magento 2
You are able to perform import massively and get full control over transferred data with Firebear Improved Import and Export for Magento 2. The extension allows applying custom options to multiple products, decide import behavior, retrieve data from various sources, including REST and SOAP API, GoogleSheets, file uploads, and many more. Once the entities are implemented, you get the ability to edit any property and adjust prices. For more info on the module visit the product page.
As custom options are a built-in product feature set, their import is impossible without transferring products they belong to. We start the process with creating a product table with all the necessary product data, including the custom options. At the
To enable custom option transfer, add the corresponding column in the table under the name custom_options. Look at the the example of a column with a text area option:
If you plan to transfer multiple options to a product, divide the option values with |. The option for both text area and date and time types will look as following:
name=OPTION NAME,type=area,required=1,price=3,sku=a1,max_characters=50,price_type=percent|name=OPTION DATE,type=date_time,required=1,price=1,5,sku=a2,price_type=fixed
In the table below we describe how to insert custom options attributes and what the meaning behind each value is.
3.5.1 release of Improved Import & Export extension has added opt_row_id and opt_id attributes to customizable options. With these attributes you can now update required customizable options, instead of always adding new ones during the add/update import procedure. This has been implemented to avoid native Magneto 2 behavior when the import would only add new options and won’t let update existing.
|Option feature||Reference||Value||Value example|
|name||The title of an option.||Alphabetic/numeric format, will be displayed in the frontend||Limited offer|
|type||Specifies the type of the added custom option.||text — for a text field,
area — for a text area,
file — the file type.
Preferred selection mode:
|required||Implies customers must make a selection to proceed with the purchase.||1 – yes, value is required,
0 – no, value is not required.
|price||Product variation price that is added to the base product price.||Price amount||23|
|price_type||The type of price added to the base product price.||Fixed amount or price percentage.||Percent|
|sku||Optional. Adds a suffix to the base product SKU.||Any letter or number sequence separated with underscores (_) and dashes (-).||OPT|
|max_characters||The limitations for text length.||Numeric, measured in characters.||50|
|file_extension||File formats permitted for customer uploads.||Various file formats.
Note that Improved Import and Export does not process multiple file extensions, even if they are separated by a comma.
|image_size_x||Width of an uploaded image||Numeric dimension in pixels.||620|
|image_size_y||Height of an uploaded image||Numeric dimension in pixels.||480|
|option_title||The name of each variation you add in a selection mode.||Alphabetic/numeric format, will be displayed in the frontend||First option|
|opt_id||The ID of the customizable option, which is used to identify the option during add/update import||Numeric.||20006|
|opt_row_id||The ID of the option row, i.e. the place of the current title of the option inside the customizable option||Numeric.||60016|
Once the table is ready, you are free to implement the data into your database in the most comfortable way.
Import process step by step
Data transfers with Improved Import and Export are performed via jobs — unique rules supported by the extension. Job configuration covers all the crucial matters related to import: manual or automatic data updates, imported entity specifics, a preferred way of synchronization, tools for data modification. See the details in our guide.
Don’t forget that custom option import is processed along with the product entity as they are an integral part of it. So to create a product import job take the following steps.
- Go to System > Improved Import and Export > Import Jobs > Add New Job.
- Insert a title to highlight the job. Decide whether the job is run automatically via cron updates or manually by the admin.
- Select ‘Products’ in the entity type field.
- Set up how the import data will be implemented in the import behavior section.
- Make up your mind about the import source and select a path to the table with product data, including custom options.\
- Customized import data via mapping settings to avoid conflicts, overlapping, and add unique elements to data piece.
- Run the job.
How to increase the potential of custom options and configurables
In the post, we’ve reviewed product customizable options along with configurable products. Both entities have their pros and cons, which means there’s room for functionality upgrade. Do you want to expand the use cases for configurable products and custom options? Try Improved Configurable Product. The extension functionality introduces lots of innovations and modifications in configurable product setup. With the extension, you manipulate every part of a configurable product page, from child product name in the title to separate reviews and shipping logic. SKUs are fully adjustable; tier prices can be assigned to all child products. But the most relevant to our topic feature is the ability to add custom options to configurable products. Improved Configurable Product stimulates the creation of offers with the unique toolset. The extension allows forming bundle products with both products with custom options and configurables. Thus, fully equipped, you can address your audience with the most personalized purchases,
If you long to know how to manage all the parts of Magento 2 successfully, follow the latest posts in our master import guide.