7. The method of claim 1 , wherein the custom product is part of a product bundle that associates the custom product with a second product; wherein the custom product is associated with a first filter that identifies a first set of constraints associated with the custom product; wherein the second product is associated with a second filter that identifies a second set of constraints associated with the second product; the method further comprising: determining a set of one or more accessory products that satisfy the first set of constraints and the second set of constraints; recommending the set of one or more accessory products to the user as compatible accessory products.
1. A method comprising: receiving, from a user that is customizing a custom product, a first attribute value that defines an attribute of the custom product; in response to receiving the first attribute value, generating, based at least in part on the first attribute value and one or more other attributes of the custom product, a particular key-value expression that includes a plurality of key attributes and values; matching the particular key-value expression to a set of one or more filters; determining, from the set of one or more filters, a legal set of attribute values for a second attribute of at least one of the custom product or an accessory product; wherein the legal set of attribute values identifies one or more attribute values of the second attribute of the custom product or the accessory product that are compatible with the first attribute value and the one or more other attributes of the custom product; wherein the method is performed by one or more computing devices.