Dev Guys,
eC4 brought the revolution concept of product features, which can be linked to regular nodes.
The problem with that is its currently adds an extra layer: Product types. Its quite confusing, because in order to implement "Auction" on a custom made CCK node, we need to create an Product type first and then link it to the node type. The developers work also gets more complicated, because permissions could be set in all those instances/layers.
I propose to get rid of product types and link product features directly to node types.
Advantages:
1* A node is a product if it has at least one product feature linked to it. Checking functions might be easier.
2* Simpler form: product features can be assigned to node types on the node types editing form.
3* Simpler management for admins.
4* Better permission logic.
5* Easy method for creating new modules for with new product features. (Also shipping, availability, auction, file will be all product features)
Challenges:
1* Hierarchical (dependency) features: "shipping" feature might need the "availability"
best regards,
massa
Comments
Comment #1
gordon commentedAs we have spoken before on this issue I am still not convinced, and the removing product types will just make administration more difficult, in that for every product you need to load up the the features need to be added, which also needs store a lot more additional data.
Also changing the charateristics of a product after it is created means that it has to be done on every single product. not just the once.
Also the level of knowledge of the people entering the products will need to be higher as they will need to know how to contruct a product to do it where as now a store admin can set up the product type and then a less knowledgable person can load the products without any issue.
Overall I feel that it will make the store administration a lot harder and make it much easier to cause problems.
How ever I am considering getting rid of the productapi and only use features to extend a product type, but I am still considering the implecations on monolythic products and if this will make them much harder to build these products.
Comment #2
brmassa commentedGordon,
i believe you misunderstood my idea. NP, let try again: Product features will be linked to Node Types, not to each node. A small DB table with "ntype" and "pfeature" columns might do the work. On
function ec_product_feature_check($ntype, $pfeature = NULL), a simple check can be performed to check what features a given node type have or if a given feature is among of them.People might (un)set a feature to a node type on admin/content/types page, like CCK does. It might be a simple checkboxes with each feature. It is more intuitive than the current 2-steps procedure (managing features for each product type and than (un)linking it to each node type).
Also, we can perform most of the current hook_productapi operations with the simple hook_nodeapi and hook_form_alter. I did some very successful tests only by using them. I added the "Buy Now" button on each node, changed it to "Add to Cart" or "Place a Bid" only by checking if a product feature is present on nodeapi.
Bottom line:
instead product features -> product types -> node types relationship, only product features -> node types stays.
best regards,
massa
Comment #3
darren ohI hope to see this change soon.
P.S. I deleted the Product node type on my site, so all product types are node types. The product type layer does nothing important in the user interface.
Comment #4
gordon commented