Hi all,
I'm the developer of the Hierarchical Select module. I'm currently going through the final things for version 3 of this module and I just bumped again into the "support for Ubercart attributes" feature request.
I know Ubercart has gained quite a lot of momentum, but I haven't used it myself yet. So, to gather info quickly I went to the IRC channel (thanks to cYu for answering my questions!), asking if there was a genuine need for Hierarchical Select support. I.e. does it make sense to have hierarchical UC attributes? It seems the answer is yes, since there are several requests for this kind of functionality.
However, this particular post learns me that UC currently has two separate entities, "attribute" and "attribute option". That's fine, but it doesn't allow for very flexible hierarchies. You can still use Hierarchical Select, but it will not be as significant an improvement as possible.
Suppose you have a "type" attribute and a "size" attribute. Type A can't have different sizes than type B, because UC doesn't allow you to define hierarchical attributes.
There are two missing links to hierarchical attributes:
1) There is no way to say that one attribute is a child of an attribute option, which is necessary if we want true hierarchies, as I just described. This must be supported both in the code and in the admin UI.
2) UC is currently using *multiple* form items: one per attribute.
#1, the code part, has to be fixed by the UC developers, or by an additional module. I don't know anything of UC's architecture, so I don't know if this is possible.
The admin UI part *could* also be solved using Hierarchical Select, thanks to its ability to create new items. I wouldn't recommend this though, because it doesn't allow you to create "multiple parents" items. I.e. size X should be available for type A *and* type B. Using Hierarchical Select to create size X for both types would result in two different sizes, at least internally. This depends on UC though.
#2 must also be supported by UC. Hierarchical Select, is a *form element* and will therefore result in *one* form item that contains everything. This will require changes in the #validate and #submit callbacks.
This is pretty much all information that's needed to get support for Hierarchical Select in UC. #1 will always be necessary if you want hierarchical attributes, #2 is a necessity for Hierarchical Select, but might not be an issue in case a custom system is used.
Some important notes before you decide to write a custom system:
- Hierarchical Select degrades gracefully: JS enabled vs. JS disabled and keeps functioning in the same way if JS is disabled!
- Hierarchical Select is *scalable*
- Hierarchical Select already supports: taxonomy, content_taxonomy, the exposed filters in views of the both of these, taxonomy_subscriptions, a university is using it to browse a tree-like web service, a client is using it to dynamically mix multiple vocabularies
- triggers JS events to allow for advanced interactions (e.g. dynamic updates of other parts of the page, e.g. image, price, …)
- has been tested in all major browsers: IE 6/7, Firefox 2/3, Safari 2/3
What I'm trying to say: Hiearchical Select is designed to support *every* scenario and hopes to become the single, standard widget to do this. So it doesn't make much sense to duplicate this project!
Phew. This is the longest forum post in years for me! I hope you liked what you read 


I still wanted to give a quick reply.
Any updates on when can we get this?

Joined: 06/26/2008