A configurable product is one of the many product types Magento 2 offers. The main difference between the Magento 2 configurable products and simple products is that the former has variable options customers can choose from. It is exactly what makes it the most popular kind of product in Magento 2.
To create a Magento 2 configurable product means to create several different variations of the same simple product. Since configurable products consist of simple ones that have separate SKUs it's more convenient to track down every single product variation.
So, before you start to create configurable products make sure the configurable attributes are created and assigned to the corresponding attribute sets.
e.g. You can create the configurable Material attribute and add it to the current Bags attribute so the customers can choose bags in different materials.
To create Magento 2 configurable product:
1. Navigate to Catalog > Products and choose the Configurable Product from the Add Product dropdown.
2. Fill in all of the fields as in the simple product configuration.
2. Find the Configurations section, press the Create Configurations button and start the 4-step product configuration process.
3. Select the configurable Attributes customers will be able to choose from.
Note: when you remove or add an attribute, all configurations are automatically updated and you need to recreate the current configuration manually.
4. Move to the next step and select Values for each attribute you've added.
5. Customize Images, Price and Quantity for configurable product variations. You can to add new values, set a single value for all products and skip any configurations for each of these options.
6. Review all the options you added and press the Generate Products button. It will generate product variation for the Magento 2 configurable product.
Once the products are generated you can change the values and upload new images if needed.
7. Don't forget to Save and check it out on the storefront, after you finish creating a Magento configurable product.
So, this is exactly how you create a Magento 2 configurable product with custom options. Having configurable products in your store allows you to diversify the catalogue and satisfy your customer's needs with a wider set of options.
But there is also an alternative solution. If you prefer carrying out various Magento tasks using coding, you can create configurable products in Magento 2 programmatically. Both ways work perfectly well, so it's up to you which one to use.