This interaction is used to keep inventory levels up-to-date in Magento by importing the on-hand inventory levels from one, or multiple, warehouses in Brightpearl. The bulk and real-time inventory imports are designed to efficiently and effectively prevent overselling through your Magento stores.
Brightpearl will only send the quantity, all other inventory settings within Magento will be respected.
Import inventory triggers
The Magento inventory levels can be updated at any of the following times:
On shopper view product
|When a product is viewed the inventory for that SKU will be updated||Automatic|
|On shopped add to basket||When a product is added to a basket the inventory for that SKU will be updated||Automatic|
|On shopper view basket||When a shopper views their basket the inventory for all the SKUs in the basket will be updated||Automatic|
|On shopper checkout page||When a shopper goes to the checkout page the inventory for all the listed SKUs will be updated||Automatic|
|On shopper checkout order||When a shopper checks out the inventory for the items being purchased will be updated||Automatic|
|On admin view product||When a product record is opened in the admin panel the inventory for that SKU will be updated||Automatic|
|On admin place order||When a product is added to an order being created in the admin panel the inventory for that SKU will be updated||Automatic|
|Cronjob||Checks all SKUS for an updated on-hand inventory level in Brightpearl||Scheduled|
|Manual: bulk||Checks all specified SKUs for an updated on-hand inventory level in Brightpearl||Manual|
Why so many options for updating inventory levels?
Updating inventory levels for hundreds or thousands of products can be an intensive process for your Magento server. These inventory updates are designed to be the most efficient and effective way of preventing overselling, whilst remaining within API throttle limits.
When all of the import inventory triggers are enabled it is possible that numerous requests to Brightpearl can be made in quick succession, even when it is unlikely that any change will have been seen. Time-to-live is way of specifying how long to wait between calls to Brightpearl for an updated inventory level, essentially, a length of time to ignore any more triggers hit on a particular SKU. This helps prevent excessive requests for inventory updates which could cause performance issues on Magento. For example, if the default time-to-live is set to be 300 seconds (5 minutes) this means that once the inventory is updated for a SKU, Magento will not ask Brightpearl again for at least 5 minutes. Once those 5 minutes have expired then Magento will get a fresh inventory level from Brightpearl the next time one of the triggers is hit. Different time-to-live periods can also be set for each trigger. For example, to ensure the stock is still available once the shopper gets to checkout and prevent overselling, it is a good idea to ensure this trigger isn't blocked so a shorter time-to-live value is a good idea.
It's useful to work with a Magento developer to help find a balance that works for your configuration; where inventory updates are performed regularly enough to keep stock levels in sync without adding any unnecessary overhead on your server.
Which Brightpearl inventory level is used?
The on-hand inventory level in Brightpearl is used for updating Magento. This can be the on-hand quantity at a single warehouse, or the total from multiple warehouses.
The quantity of a Brightpearl bundle will also be sync'd with Magento. The bundle quantity is made up only of complete bundles within a warehouse. A bundle is not considered on-hand if the components are available at separate Brightpearl warehouses, even if all those warehouses are being synchronized with Magento.
The quantity of a Magento bundle will be controlled within Magento based on the inventory levels of the components. Where Brightpearl is providing the quantity of the components from multiple warehouses the bundle availability will therefore include bundles where the items are split across multiple warehouses and could result in orders which require split shipments.
How to manually run a bulk inventory update
- In Magento, ensure that bulk inventory updates are enabled at Interactions > Brightpearl > Configuration.
- To run the bulk stock level import, go to Interactions > Brightpearl > Interactions.
- Select Import Stock Levels (bulk) from the menu and specify:
Batch size: How many products the inventory level will be requested for in one go.
Sleep between saves: The length of time between sending each batch of update requests to Brightpearl
How to manually update the inventory for specific SKU(s)
- In Magento, ensure that real-time inventory updates are enabled at Interactions > Brightpearl > Configuration.
- To run the import, go to Interactions > Brightpearl > Interactions.
- Select Import Stock Levels (real-time) from the menu and specify:
SKU codes: Specify which SKUs to update. Enter comma separated values.
Brightpearl warehouse(s): Specify from which warehouse the on hand inventory level should be used.
Skip unmanaged: Ignore products which are not stock managed (non-stock tracked items)
Zero qty when availability missing: If the product is not in Brightpearl should the Magento availability be set to zero.
Time-to-live: Specify what time-to-live should be set for the products during the update
Query string limit: This is used to break a large number of specified SKUs up into batches. The Brightpearl API has a maximum of 128 characters per API request.
- Click the Execute button to begin updating the inventory levels.
Continue to sell when out-of-stock
Brightpearl will only send the quantity available of an item, all other inventory settings available within Magento will be respected. This means that if you wish to continue to sell items even when they are out-of-stock you can control this on the product in Magento.