Import inventory levels (bulk & real-time)

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:

Time Description Execution method

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.

Using time-to-live

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.

Learn more about managing bundles with Magento

How to manually run a bulk inventory update

  1. In Magento, ensure that bulk inventory updates are enabled at Interactions > Brightpearl > Configuration.
  2. To run the bulk stock level import, go to Interactions > Brightpearl > Interactions.
  3. 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

    mg import invrntory 1

How to manually update the inventory for specific SKU(s)

  1. In Magento, ensure that real-time inventory updates are enabled at Interactions > Brightpearl > Configuration.
  2. To run the import, go to Interactions > Brightpearl > Interactions.
  3. 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.

    Run price index: Check this box if the SKU codes are components of a bundle.

    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.

    mg import inventory 2

  4. 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.

mg import inventoty3

Have more questions? Submit a request

0 Comments

Article is closed for comments.