Comments (6)
I'm looking at "yet another mapping system" on a Spree 2.4 (which will shortly-ish go solidus) to map line items -> ??? -> multiple inventory units.
I'm having an initial discussion with Hawth and Jared on some of the systems we've already built and seeing what comes out of it. After that I'd like to talk to you @athal7 more about what you've done with bundles if you have a bit of time.
from solidus.
@cbrunsdon can you say more about that mapping system? I'm curious to understand what you mean by that. happy to chat about bundles anytime
from solidus.
Just to give some background to anyone reading this in the future (and anyone feel free to correct me if I'm wrong anywhere here) there are two different ways this has been done.
The first is a "mapping" system that maps a specific line item (or more likely, a line item's variants) to different stock items. When shipments are being created, rather than the line item's variants being added to a shipment, all the variants that are "mapped" get added instead. This is how something like spree-product-assembly works, or a few things we haven't been able to make public.
This method is:
- Easier to make promotions on (as we can look at line-items individually)
- Is much harder to track which line items inventory units came from (since they go through some mapping process)
- Makes tracking stock on the line items very difficult (as we need to know the state of all mapped items)
- Works well if mappings are "dynamic" and fulfilment can be handled by a selection of variants on the backend
The other implementation is "product bundles", which isn't currently public but the folk at Bonobos have in a state that could be shared relatively easily. Instead of handling the mapping of a line item to inventory units, it adds multiple line items to your cart when a "bundle" is added. This is the system I want more clarification on, but my immediate thoughts on it are:
- Makes it very clear in a "cart" which items you're actually getting (which is desirable sometimes but not all times)
- Has potentially less inventory complications as we know the variants that will be added as we check out
- Makes it harder to write promotions for (think: %off if entire bundle is purchased, but a user could remove one of the variants in the cart)
from solidus.
Thanks for the write up. That's my understanding of the options as well
from solidus.
@cbrunsdon Did you consider to add bundle id along with variant id in case of "product bundle" solution so that you can eliminate the problem with promotions (you can check at any moment if a bundle is entire or not)
from solidus.
We don't have a clear winner on how to do bundling, and there isn't a clear path forward anyone is working on they want in so I'm closing this. If anyone was specifically attempting this themselves, happy to re-open the issue.
from solidus.
Related Issues (20)
- PromotionCodeBatch fails generating million codes
- [admin] Backend sections to be ported to SolidusAdmin
- Release v4.2.0
- New admin breaks `assets:precompile` when host app has default Tailwind setup. HOT 2
- [Admin] Search by name in stock HOT 7
- Spree::Variant#set_position conflicts with acts_as_list
- Error when running tests on Macbook Air M1 HOT 6
- Release v4.3
- [Admin] Undefined destroy method call on non soft deletable Spree::Property
- Sandbox does not work in v4.3 and main HOT 7
- Scope Admin Orders to Store HOT 2
- [Admin] products/index/variants/index
- either width or height must be specified HOT 8
- [admin] Consider committing the built tailwind css file into the admin repo
- Backend: use of cdn causes remixicon.symbol.svg to not download due to its being an svg used with <use> tag
- SQL error while searching by variant name in stock management view HOT 3
- Cant install
- [Backend] Backordered items may become on hand when splitting shipment
- Nil variant shipping category not handled properly in form
- The action 'show' could not be found for Spree::Admin::PropertiesController
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from solidus.