Best way to update a large number of inventory item quantities

I’m working on an integration between an ERP system and Shopify. The main objective is to update the inventory quantities in a Shopify store with quantities from the ERP system. The ERP system may have hundreds (if not thousands) of quantity changes a day and the Shopify inventory levels need to reflect the updated values.

I have something working for a few customers, but it appears to be throttled (and non-functional) for other customers due to their Shopify store/package levels. I’m trying to find a better/more efficient way to update large amounts of inventory quantities.

I am currently using the REST Admin API. I saw there were bulk mutation operations available in the GraphQL and have been investigating switching to that instead.

inventoryBulkAdjustQuantityAtLocation looked exactly like what I wanted but it has now been deprecated and the only APIs remaining seem to have the same throttling problem I’m running into now. The bulk mutation operation stuff appeared to only work for certain mutations and none of them looked like they would update inventory.

Is there any way I can update a large number of inventory levels without running into throttling? One customer was previously doing some kind of CSV import or something and I am wondering if that may be the only viable option here.

Hi Jayb1,

Would the inventoryAdjustQuantities or inventorySetQuantities mutations work for your use case? I would recommend against using the REST API or a CSV export/import method if possible.

I can definitely use it, but is it going to handle updating a few hundred inventory items as a batch job every evening for even customers on the cheapest plans? We do technically have something working, but only for customers with a certain level of package with Shopify. I’m hoping for something that anyone can use, regardless of their rate/request allowances.

@Liam I’m curious why you don’t recommend using the REST API?

Is this for an app on the app store?

GraphQL will be a much more efficient method, especially if there’s an especially high level of API calls being made - and you’ll be less likely to encounter rate limiting issues (see comparison table here).

2 Likes

No it’s not. It’s a direct push of data from an ERP system through the REST admin API.

This table does help a lot, thank you. The request I need to make through GraphQL seems to cost 10 which should allow for significantly higher traffic than REST.

I’ll have to do some investigation to figure out if that will be fast enough for the volume I need.

HI,there

Can I understand that in your scenario, multiple stores can share the same inventories?

It’s unlikely, but it’s possible.