4. A computer program embodied on a non-transitory computer-readable medium and comprising code, that, when executed by a computer system, enables the computer system to perform the following method for enabling users to create and use a collection of template rules to generate custom product-configuration rules, the method comprising: enabling a user to submit one or more example rules for a rule pattern; in response to a user submitting one or more example rules for a rule pattern, identifying any variables in the example rules; enabling a user to select which of the identified variables will be customizable in instances of the rule pattern; creating the rule pattern from the submitted example rules, wherein, for each submitted example rule, the rule pattern includes a corresponding template rule and wherein the selected variables are customizable fields in the template rules; adding the rule pattern to a rule pattern library, wherein a user is able to select the rule pattern as a basis for creating custom configuration rules for a product; in response to a user selecting the rule pattern from the library, generating a user interface in which the customizable fields for each template rule in the rule pattern are displayed and a user is able to enter values for the customizable fields; and generating configuration rules for a product from the template rules and the values entered by the user for the customizable fields.
4. A computer program embodied on a non-transitory computer-readable medium and comprising code, that, when executed by a computer system, enables the computer system to perform the following method for enabling users to create and use a collection of template rules to generate custom product-configuration rules, the method comprising: enabling a user to submit one or more example rules for a rule pattern; in response to a user submitting one or more example rules for a rule pattern, identifying any variables in the example rules; enabling a user to select which of the identified variables will be customizable in instances of the rule pattern; creating the rule pattern from the submitted example rules, wherein, for each submitted example rule, the rule pattern includes a corresponding template rule and wherein the selected variables are customizable fields in the template rules; adding the rule pattern to a rule pattern library, wherein a user is able to select the rule pattern as a basis for creating custom configuration rules for a product; in response to a user selecting the rule pattern from the library, generating a user interface in which the customizable fields for each template rule in the rule pattern are displayed and a user is able to enter values for the customizable fields; and generating configuration rules for a product from the template rules and the values entered by the user for the customizable fields. 5. The computer program of claim 4 , wherein the enabling steps comprise: providing a user interface via which a user is able to create a rule pattern, wherein the interface enables the user to enter a name for the rule pattern, submit example rules, select which of the submitted rules will be used in the rule pattern, select which variables in the submitted rules will be customizable in instances of the rule pattern, and enable the rule pattern for use in the rule pattern library.