bleroy / Nwazet.Commerce

Idiomatic commerce module for Orchard CMS.
BSD 3-Clause "New" or "Revised" License
26 stars 21 forks source link

Product Options #60

Open bleroy opened 9 years ago

bleroy commented 9 years ago

Originally reported by: Jeffrey Olmstead (Bitbucket: ems, GitHub: ems)


I am migrating a client from an eCommerce site that supports product options where you can have "multiple purchases" based on the product option. In other words, if you were selling a "Cardboard Box" you could select 5 large and 5 small right on the product screen. As it stands right now I don't believe Nwazet.Commerce supports this and that a user would have to select 5 large (and add to cart) then select 5 small (and add to cart). Am I correct on this?

The other feature which is kind of nice (though not critical to me today) is that it supports a weight difference based on the option selected. This would allow the shipping to dynamically adjust based on the weight changing due to the options selected. Any thoughts on whether this would be valuable to pursue?

Other than that, the Nwazet.Commerce is right there supporting the other features (better i think :) ) which is fantastic to be able to have this right within Orchard.


bleroy commented 9 years ago

Original comment by Bertrand Le Roy (Bitbucket: bleroy, GitHub: bleroy):


Makes sense. Let's keep this open, in case somebody else wants to implement that first.

bleroy commented 9 years ago

Original comment by Jeffrey Olmstead (Bitbucket: ems, GitHub: ems):


I have been pondering all day whether they should be separate products... I was looking at the AMC movie theater site and noticed that you can add Adult, Child, and Senior priced tickets on one "Product". https://www.amctheatres.com/movies/big-hero-6#5202 I don't think that actually uses Nwazet.Commerce module but thought that there is a perfect example of where having the one product with multiple attributes and quantities of attributes makes great sense. On my instances today... I think they should be different products. Well, if I get the chance to build a movie theater site (and I just might soon) then I will definitely expand the module to support quantity per attribute. Thanks for confirming not in there yet.

bleroy commented 9 years ago

Original comment by Bertrand Le Roy (Bitbucket: bleroy, GitHub: bleroy):


You're correct. It would be nice, yes, to be able to put into the cart quantities of each option of a product in one operation. Varying the weight based on attributes would be useful too.

I would however pause to ask at what point those variations become separate products.

MatteoPiovanelli-Laser commented 7 years ago

I started thinking about the inventory-by-attribute. My idea, so far, goes as follow:

I define as Variant a combination of attributes and their values. e.g. the XL (Size attribute, id 12) Red (Color attribute, id 14) "Magnificient Shirt" (Product, id 1023). The record for a variant has:

If a variant does not have a record, I consider its inventory to be 0.

An issue I can immediately see with this approach is that this table would grow very fast for product types that combine several attributes, and/or where an attribute has several possible values.

Does anyone have any opinion on this?

bleroy commented 7 years ago

Why have a table at all for this? Are we going to query on it? If not, it would be considerably simpler to store that info in the infoset. I wouldn't be too worried about the table growth: if there's many available combinations, the size of the table is the least of your problems. The real-life inventory management is going to be where the bigger problem is. For the kind of catalog scale that this module is designed for, the number of records in this table should not be that large anyways that it would cause problems.