What is Ubercart Conditional Attributes?

This module can be used to define dependency relationships between options and attributes for each product class. Once established, these dependencies will be applied to all products of that class. Dependent attributes will only be shown (for "enable"-type dependencies) or hidden (for "disable" type dependencies) once the option on the parent attribute is selected.

For example, say you run a pizza online store and you offer a free drink when the user orders a large pizza. Your pizza product class could have a 'Size' attribute with options Small/Medium/Large and a 'Drink' attribute with options for various popular soda brands. Conditional Attributes could be used to define 'Size' as a parent attribute with option 'Large' enabling 'Drink'. The drink selection would then remain hidden until the time when the user selects 'Large' as their choice for 'Size'.


  • Dependency relationships are applied to all products within a given product class at once
  • Functions with several product classes
  • Has support for both 'enable' ("show only when") and 'disable' ("hide only when") relationship types
  • Hidden attributes are removed from the cart product entirely
    • Hidden attributes that are marked as required will not cause problems
    • Hidden attributes will not cause any product price alterations
  • Nested dependent attributes are supported (e.g. an option in A enables B and an option in B enables C)
  • Compatible with the uc_node_checkout and uc_aac modules (after patches - see #1425238: Compatibility with uc_aac module)


Known problems or limitations

  • Only attributes that are displayed as select boxes (drop-down menus) can be used as a parent attribute. Using other types of attribute displays for the dependent attribute is possible, however (for example, a select drop-down menu disabling a set of checkboxes is valid, but not the other way around).
  • The generalized rules defined for product classes cannot be customized or overridden on a per-product basis.


For installation and configuration instructions, please see the module's README.txt file.


Current development of this module is sponsored by Grindflow Management LLC.

This module is based on a fork of uc_cano, originally developed by Vizteck Solutions.. and sponsored by PromDressExpress.com.

This module also incorporates various patches uploaded to the uc_cano module discussion thread on the Ubercart forums. Thanks to all of the Ubercart community members who contributed patches to the module to improve functionality or compatibility.

Similar projects

The Ubercart Dependent Attributes module performs a similar function but functions only on a per-product basis by using alternate SKUs. Each product created must have its own set of definitions created in the Edit > Adjustments tab, which is tedious for sites with a large number of similar products.

Project Information