-
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
Suggestion: Rental / For Hire Products #343
Comments
@spencern on pricing at least, I'm wondering if we could implement some sort of a "pricing engine" approach "price" etc - (probably going to do this with discounts/promos at some level anyways). Instead of pulling direct from the data, we could use the "pricing engine" implementation where you could determine the pricing data. We have also discussed having product "types" where you could choose from a couple different product types. #152 and #160 touch on these. I'd like to handle the additional types in core, but add as packages. Since nothing has been done towards 'product types' yet.. maybe you could discuss the challenges that you face as you try to implement something like as a package, and we'll adjust core as needed to make sure it's flexible for extending/adding new product types. Subscriptions #330, and digital goods are other product types that will have similar requirements as well. |
I think the options approach described in #367 could be used to handle this case as well |
From gitter chat: May 12 2015 12:00 PM @spencern
If so, are there methods already which aggregate the inventory count for these barcoded items, or does that still need to be written? @aaronjudd |
This method of individual item tracking is essential to being able to offer rental products. I've been poking around in the Say we have 3 identical mountain bikes.
I'm trying to figure out the best way to store one of these items. Following the schema, it seems like they should be variants where the Anyone else with this need or thoughts on this? |
You're saying that you have "Small" and that should the visible option, but your inventory, is 20 of the same "product" but each has it's own sku/barcode? I'm thinking that could be a child variant of "small" (same as existing structure) that we could mark as "type: inventory" and then handle that with some unique view and inventory mgmt.... maybe hide (or not ) for the 'consumer', but use and update for inventory |
@aaronjudd @spencern "You're saying that you have "Small" and that should the visible option, but your inventory, is 20 of the same "product" but each has it's own sku/barcode?" I have an almost exact use case, but in a different scenario... imagine something that can be exemplified (such as an ebay item listing) where you have many of the same products (say 500) and you are allowing this specific item to be bought in variable quantities of minimally 1 to x (x being the max number of items remaining in your inventory)... when someone in your commerce site adds the item to his/her cart they are in essence on-the-clock* 'holding or reserving' x qty of the item(s) until his/her checkout is complete. I need a way to mark that specific item/SKU as being reserved or held (until a short threshold datetime is reached to prevent something from being held too long - ie they failed to checkout within the short reservation period of say 5 minutes). So what I'm thinking is that I need to track two things to each item similar to the "barcode" idea presented by Spencer... namely 1. the userId of the person reserving each instance of the available item(s) and 2.) a datetime stamp indicating a hard point in time that the reservation expires and the full reserved qty is made available to everyone once again. (Note: a CRON type job would run through the Mongo Collection every minute or so to remove the expired reservation set for an item. Instead of polluting the product collection I think perhaps these reservations might make more sense in their own collection which merely alters the product/sku availability quantites when a CRUD event occurs upon the reservation collection. Thoughts? |
@aaronjudd exactly. Added a PR that enables products to have and track inventory as child variants. @markchipman I think that this idea should solve your use case too. What we will also need to do (and perhaps I should break up this issue into multiple sub-issues) is create packages that modify the (inventory) variant schema to add additional fields as necessary - for us it might be rental availability calendar, condition, etc. for @markchipman it might be reservation status and reservation expiration time or something similar. |
A variation on this theme: Subscriptions |
…#343. Adds tests, and fixes issue where parent/grandparent quantities were not adding up properly. (11 Squashed) Squashed commits: [272ddf1] Make publications more consistent. Fixes #395. [be04b1c] Allow database ids as valid slug for tags. Bevor this change it was for example not possible to use a product id as name (slug) for a tag, because the application interpreted the id as a tag id, instead of a tag name. A valid use case would be to display a link to a product's related products. Allowing a product's id as tag name (slug) it is easy to build an URL to related products e.g. product/tag/<product_id> . The old behaviour is still in service as a fallback. [9cf1232] remove testing logging. [97a4a5f] Update inventory calculator again. Passes all tests against inventory calculation, is less brittle, and faster. [207c0ad] WIP: Still need some work to update all variants if/when the inventory starts wrong. [c360ae1] Fix issue where inventory was undefined if variant was new option [2beb2a0] Compensate for bootstrap's padding when applying .container-fluid class. [0055b68] Replace brittle inventory update hook with slightly more robust update hook that will update all ancestors in parent chain. [7f6a91c] Update inventoryVariant tests to test creation of variable quantities of inventoryVariants being added. [192b7c5] Addl Inline doc for cloneVariant method.
Would love to be able to use reaction to build a store where products can be rented out (e.g. lensrentals.com, Rent The Runway, etc) as there is not currently a good open source solution to this business case.
Some challenges that this would introduce on top of standard ecommerce:
I'm certain there are other issues that would crop up, but those seem to be the big
Is this something that could be implemented as a package or would it have to be integrated into core?
I'd love to jump in and help build this out, but would need some direction as to the best place to start working on something like this.
The text was updated successfully, but these errors were encountered: