Send stock levels to Shopify
Lesson 13 of 18 7 min read
Keep Shopify's stock in step with your back-office system, and choose which quantity to update, how to handle negatives and how to handle large catalogues.
Overselling is the fastest way to disappoint a customer. In this lesson you'll set up the Inventories Configuration so stock changes in your back-office system update Shopify, and choose the settings that keep the figure Shopify shows honest.
The flow
Inventory flows from Supply Lens to Shopify by default. You need an Inventories Configuration with Send ticked on the Shopify Integration, and an Inventory Mapping from your back-office Integration to Shopify.
Which number does Shopify show?
Shopify tracks several quantities for each product at each location. Two matter here: available (what can still be sold) and on hand (what's physically there, including stock already committed to orders).
| quantityName | Which Shopify quantity to update: available or on_hand. Default: available. |
|---|---|
| updateReason | The reason recorded against each adjustment in Shopify’s inventory history. Default: cycle_count_available. Shopify’s inventory documentation lists the valid values. |
When to choose which. Keep available if your back-office system sends a sellable
figure (stock less what's already allocated), which is the usual case. Choose on_hand
only if it sends a physical count and you want Shopify to work out what's available
itself. Change updateReason if your team reads Shopify's inventory history and wants a
reason that says where the change came from.
Negative stock and missing locations
| preventNegativeQuantities | When true, negative quantities are sent as 0. When false or not set, negatives are sent as they are. |
|---|---|
| activateMissingLocations | When true, Supply Lens tries to activate a Shopify inventory location for a product that isn’t stocked there yet. When false or not set, products not stocked at a location are skipped without error. |
When to choose which. Turn on preventNegativeQuantities if your back-office system
can go negative (for example when despatches are booked before goods are received) and
you don't want Shopify showing minus figures. Turn on activateMissingLocations if new
products should start being stocked at your Shopify location automatically. Leave it off
if someone deliberately chooses which locations stock each product in Shopify.
Large catalogues
| quantityChunkSize | How many quantities are sent in each update call. Default and maximum: 250, the most Shopify accepts. A larger value is reduced to 250, and the reduction is logged. |
|---|---|
| useBulkOperation | When true, quantities are sent as one asynchronous bulk operation instead of one call per batch. Worth considering for a feed covering a whole catalogue. When false or not set, the normal call-by-call route is used. |
When to change them. You can only lower quantityChunkSize. That's worth doing to
limit the damage of one bad quantity: each call is one entry in Shopify's inventory
history, and if Shopify rejects one quantity it may take the rest of that call with it.
Prove bulk operations first
Shopify's documentation doesn't confirm either way that stock updates can run in bulk.
Test useBulkOperation against your own store before relying on it.
Lead times
| leadTimeConfigurations | A list of rules that control how lead times are sent to Shopify for particular products or locations. |
|---|---|
| defaultLeadTimeDestination | The lead time destination used when no rule matches, so every inventory update has a lead time. |
These are specialist settings. If you need lead times in Shopify, ask your Supply Lens contact to help you set them up.
General timing
| setupDate | Only inventory changes on or after this date are processed. Set automatically. |
|---|---|
| importDelay | A wait before an inventory update is processed, so other systems can make their changes first. |
Hilltop Coffee's stock
Unleashed sometimes dips below zero when the roastery books a despatch before the
production run is entered. Priya turns on preventNegativeQuantities, keeps
quantityName as available, and leaves the chunk size at 250. Hilltop has around 80
products, so bulk operations aren't needed. Now when Unleashed's stock changes, the figure
in Shopify follows, and never shows less than zero.
Recap
- An Inventories Configuration with Send ticked, plus a Mapping, keeps Shopify stock in step.
quantityNamechooses betweenavailable(default) andon_hand.preventNegativeQuantitiessends negatives as zero;activateMissingLocationsstocks products at missing locations.quantityChunkSizemaxes out at 250;useBulkOperationshould be tested first.- Lead time settings are specialist: get help to set them.
Quick guides for this topic
Your progress is saved in this browser. Create a free account to keep it everywhere, take quizzes and earn certificates.