How do you define a configurable product in the catalog?
As far as the ecommerce system is concerned, a configurable product is just another product in the catalog. It has attributes, pictures, descriptions, product associations, assigned categories, and so on.
You may also like:
A customer could see it in the list of products, search for it, and open its Product Details page.
The configurable product needs to be marked as Configurable by a special flag, and you also need to specify the configurator type.
The type defines which configurator to use. Even if you have only one type of configurable product right now, it will be prudent to assume that you may have more in the future. With the type field, it will be easier to add them later.
Some configurations may be more popular than others. To make it more convenient for customers to buy them, you may add them as pre-configured variants of the configurable product.
That will require an additional change to configurable products in the catalog – the ability to attach configuration data to the product record. Preconfigured products may not necessarily contain a fully completed configuration. You could also store partially configured products to give users good starting points. That saves customers time and reduces complexity.
When customers come to the product details page of the configurable product, they will see the Configure button. The Add-to-cart button will be disabled as the product needs to be configured before it can be purchased.
The Configure button launches a configurator in a separate window embedded into the page.
After the customer has completed the configuration, he will be back to the product details page with the Add-to-cart button enabled and configuration data sent back to the Ecommerce system.
When a configurable product is added to the cart, the result of the configuration (configuration data) is attached to the cart item and included in the order. The configuration data content depends on the configurator type and what your business needs to fulfill the order. It can be a date and seat number in the concert ticket’s example, a CAD drawing for some B2B machinery part, or text, image, and their positions in the t-shirt case. The ecommerce system should not be concerned with what the Configurator returns. It just needs to attach configuration data to the cart & order items and pass it along to the fulfillment system.
When implementing configurable products, it is essential to separate (decouple) the responsibilities of a configurator and digital commerce system.
The ecommerce System defines products as configurable and launches a proper Configurator. Configurator provides a user interface to support the configuration process. The configurator collects configuration data and passes it to the Ecommerce system.
Note that it is up to the Configurator to decide if the configuration is complete and the product can be purchased. The ecommerce system attaches configuration data to a cart item and stores it in the order. A default product price can be provided by the Ecommerce system, but Configurator should be able to override it as some configurations can be more expensive than others. To increase usability, you may design the Configurator and also return a short human-readable description of the configured product to display it in the cart together with the product name.