Broadleaf's basic inventory functionality provides:
quantityAvailablefield for Skus
blUpdateItemWorkflowto check if inventory is available for a Sku
blCheckoutWorkflowto actually decrement inventory on checkout
blCheckoutWorkflowto put inventory back if there was an exception after decrementing inventory
Below shows the screen for managing the quantity of a Sku in the admin along with its inventory type:
If the inventory type is anything but 'Check Quantity' then the available quantity is ignored.
You can also inventory type on a per-category basis. For instance, you could leave the inventory type for the Sku unselected but then mark then entire 'Hot Sauces' category as 'Check Quantity':
There are a few steps that you need to follow to enable the above functionality. You can find these steps within the 3.1.0 to 3.1.1 Migration doc.
The Broadleaf advanced inventory module expands upon the basic inventory functionality by providing concepts for:
The advanced inventory module is automatically included in all enterprise licenses. Full module documenation
The starting point for interfacing with 3rd-party systems is in the InventoryServiceExtensionHandler. If there is an active inventory extension handler then this will intercept all calls to the
ContextualInventoryService and thus the
InventoryService interface. This is how you can override all of the framework checks for handling inventory in just one place.
If that override is insufficient for your needs it might be more appropriate to wholesale override the
DecrementInventoryRollbackHandler. If you decide to go this route then you can determine if Skus within an Order are eligible for an inventory check via