-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Multi-Variant Products Use-Case and Suggestion #367
Comments
I've tried to give some additional background information and as a complete a view of the design direction I had been envisioning. VariantsMy view of what defines a variant:
In your first example, the product could be the "style".
This is the case we support currently. "Add Glove liners" is probably not a variant, but an add-on-product (or an upsell). In the second example, or where "Style" is a variant,
My intention was to allow infinite creation of parent->child variants and go as deep as needed. Just as a matter of priorities, I didn't build a deeper hierarchical variant UI when I built the first variant UI. It's probably a good time to give this whole process another iteration if we want to accommodate more use cases (and test cases). The UI work will be the majority of the effort I think, as little should change in the product or variant methods. We could add a new action on the child variant ui to allow children to be created. Likely need to refactor the general option selection to be more user friendly with multiple option paths as well... Options
For bundling #368 and multiple variants, we could add an
for each template in options we return
It's possible that much of the logic needed could reside in the I've had some discussion and thought about wether I think we want to have a complete snapshot of the users collection states, at each significant event - and - I want to be able to say "If I show you this product" versus "another version of this product", which did you choose? This product is going to the cart made up just as the user saw it, and that's how it should live through the fulfillment process. UI Updates These might be a bit of work to make elegant UX wise, but not really technically complex. we'd need to create/update templates for
and some updates to product templates
MetafieldsThe Handling of However, with your second example it could make sense that
But here, I think we could possibly merge the Products and ProductVariants schemas (adding description, options and other "product fields" to variants #203) making them truly identical. down the roadmapThinking further ahead, there a couple features we have on the roadmap to take into consideration as well:
There is a lot here, and I probably missed some big holes - and I may have failed to clearly tie everything together - so bring on the feedback. (and hopefully our next posts can be shorter!) |
Hopefully this is shorter. Trying to respond to all of the points you bring up: We agree about what a variant is and most of the nuances around that type.
Is this part of the vision, or the way the schema works currently?
I should have looked at the schema more closely, this is good to know and fits our needs just fine, should make the 'multi-variant' issue trivial to implement.
👍 Agreed on this point. I've got some ideas that I'll start another issue with. Product optionsI like the idea of adding some type of options array to the product schema. I'm also not sure what the use-case for having options on the variants is. This seems like it will work well for both bundled products as well as upsell products. I should be able to start working on an implementation for this now. Are there existing pricing and inventory methods? You might need to explain a little better how the product publication could be used to implement additional rules for these inventory/pricing methods as I don't think I'm following that idea very well. It seems as if this direction could help solve #161 downloadable products as well as unforseen future product needs. UI UpdatesAll of your UI suggestions make sense, definitely some work to make all of this play nice together, but pretty straightforward. Using Metafields to store custom product variables seems obvious now that you've mentioned it. Should work well for what we need. Combining
|
Related conversation: see #741 |
Feature request that requires more definition to meet our current issue guidelines. |
Issue moved to reactioncommerce/reaction-feature-requests #14 via ZenHub |
…-update-jun-6-2019 Daily update jun 6 2019
Multi Variant Products Use-Case and Suggestion
My company rents ski and snowboard apparel. Some of our products include many options.
Rental Gloves Example
Sell Through Example
Another example. At the end of the season we sell through our inventory.
Jackets, Pants, etc generally have two variants, such as Color/Style and Size, but at the end of the season we sell through our inventory and add a third variant that is "Condition".
For example, a Jacket we might sell
Custom Variables
We also have the need for a custom variable(s) that can be attached to any product. An example would be adding a name to a product. These custom variables are independent of price and inventory and thus do not need to be factored in as variants.
How could it be implemented?
Considerations
A consideration with variants is that any given variant should be able to impact price and inventory.
For some types of variants, this may be more of a bundle/add-on affect, e.g. my "Glove Liners" example, the inventory that it affects is independent of the core product and the price is in addition to any other calculated price.
For other variants, such as the Jacket example, or Gloves without the liner option, all three options have an affect on inventory and potentially on price of the core product. For example: a Small / Red / New With Tags jacket cannot be substituted for a Small / Red / Like New jacket and vice-versa. Additionally, the price will be different based on it's condition.
How Shopify Does it
Shopify allows up to three options for each product. Options all have the same OptionTitle (such as Color or Size). Once options for a product have been defined, each variant may have a definition Each option has it's own SKU, Price, CompareAtPrice, Barcode, Weight, and Featured Image
How Reaction Could do it?
I'm still coming to a full understanding of exactly how the product and variants interact in ReactionCommerce so push back on these ideas at will.
I think we could potentially expand the
ProductVariant
Schema include up to a set number of potential options. I think the simplest way would be to add up to 3 or 4 set options - E.g:Obviously this is not the only way to do this, we could allow for an unrestricted number of product options, but if we can also bundle products (issue forthcoming) in the future, then something like this would satisfy my needs.
We would also have to make some adjustments into the admin interface as well as the product template for products and product variants.
Would love to hear feedback on this as well as if anyone else has similar needs.
The text was updated successfully, but these errors were encountered: