Just trying to put my head around and understand the issue and list potential solutions.
How do backorders work today?
- enabling or disabling backorders is done at instance level
- if enabled it means stock levels can go into the negatives
- if disabled it means it can’t so when shoppers buy and stock is reaching 0 it’s not possible to order this product anymore, and will disappear from shop
ALL INSTANCES today have disabled backorders.
How “on demand” works today?
- a hub manager can tell for each variant of a product if the available stock is fixed or infinite (= on demand)
ALL INSTANCES have disabled backorders and hub managers who want to allow orders beyond stock level click on “on demand” but then it means the don’t manage stock anymore. A lot of users actually do today, few users apparently use the stock on hand to manage their stock level within OFN.
How Spree evolves?
- got rid of “on demand”
- moved “allow backorders” at stock item level, so variant level
Some input from product chain model inception work
In this when we imagined how stock info would be treated, we imagined the stock of a product going negative, then the hub sourcing the product so the product reaching it’s catalog and the stock going back to 0 (I won’t reexplain fully, check this other post to understand).
Possible solutions after Spree got rid of on-demand?
1- Option 1:
- get rid of on-demand
- allow backorder enabled by default for all variants (=on-demand checkbox checked by default for any new product, proposal = rename “can be ordered beyond stock” to be more precise) >TO BE DISCUSSED. If most hubs setup products to on demand it seems logical.
- AND enable a hub to prevent ordering a product beyond stock level (override backorder setup) by unchecking the “on-demand” (renamed “can be ordered beyond stock”) checkbox.
So basically we could keep exactly the same UX for our users but just change what the system does bellow, which is good:
- if “on demand” (renamed “can be ordered beyond stock”) is checked for a variant the stock level on hand remains (can be 0 or hub can specify a current stock) but backorders are allowed, so when orders are placed, stock will go to -10 for instance of 0 and 10 ordered, then when producer delivers hub, hub stock will go back to 0.
- if “on demand” is unchecked it means the “allow backorders” info has been disabled for that variant (only for my own hub, can be overriden in inventory) so in my hub if a customer tries to order beyond stock on hand quantity she gets an error message, and if stock reaches 0 it disappears from shop.
2- Other option? This post is a wiki so you can all add options.