1. A method comprising: generating a first configurator for a customizable product, wherein the generating the first configurator comprises performing the operations of creating a customizable product, wherein the customizable product comprises a set of one or more attributes, and the set of one or more attributes is configured to define, at least in part, the customizable product, assigning the customizable product to a customizable product class, wherein the customizable product class is a parent class of a hierarchy defining the first configurator, adding a component product class to the customizable product class, wherein the component product class is a subclass of the customizable product, adding a customizable class rule to the customizable product class, wherein the customizable class rule comprises one or more expressions, and the one or more expressions are configured to define one or more constraints on one or more component products added to the customizable product, and mapping a customizable user interface (UI) to the customizable product class, wherein the customizable UI is configured to provide access structure to the first configurator; and generating a second configurator for another customizable product, wherein the generating the second configurator comprises performing at least one of the operations on the another customizable product.