Importing and bulk updating products - best practice

Hi,

I need to import about 4000 products via CSV.

The list will also need to be updated daily as stock, prices change and new products are added daily. Can someone please advise on the best way to achieve this?

For the initial import I have seen the import by CSV, the main issue is the update.

Thank you.

Update of existing products and new products works as well via CSV import. Same goes for inventory update via imported CSV.

Hope this helps!

Thank you for the reply Karl.

I understood there to be a major issue with the number and speed of API calls when updating large number of products and product variants (4000+ products) via CSV.

If this is possible, we will give it a try.

Thanks again

When updating products via CSV import, you only need to import ones which have changes or are new. So if you have a product catalog of say 40,000 but since last import, only 500 have changed and 100 have been added, you simply import 600 which is well within the performance window for CVS imports.

If you have much larger update quantities, simply batch them, break up the imports in smaller chunks.

If you do not want to do any of above manually (there is no API for bulk CSV import / export) then you need to resort to custom importer via API which will be much slower due to throttling.

If the constraints above are good enough, then you may still need much larger inventory updates across the entire catalog and if you run in to performance issues with CSV import for inventory, then you can use the GraphQL Admin API which has inventoryBulkAdjustQuantityAtLocation that has a very low cost on your API usage and may perform better / more reliable for inventory level updates.

Best wishes!

Thanks again Karl.

As the update file comes from the producer, they do not know which products are on our website at any given time, so we will have to update all products (4,000).

So from what you say there are three options:

  1. Break the CSV into 4 smaller files of 1000 products each. The problem as far as I know is that this cannot be automated, so we would have to upload 4 CSVs every night - not an option,
  2. Custom importer via API like you say will be slow - 120 calls per minute/ minute = 30/40 minutes to update the catalogue (this could work)
  3. Or the GraphQL Admin API. This would work for updating the inventory, but not updating the entire product list.

Following this reasoning like this leaves option 2.

Does that make sense to you?

Kind regards.

I’d go for 2 and 3. Option 2 for product updates. Option 3 for inventory updates because it will be much faster than using the REST Admin API (which would be separate calls since product and inventory are separate).

1 Like

Great thank you for you help.

How did you finally do it?

Please let me know.

Hello @MikeyJ ,

I understand that you may have already found solution for your issue, but in case you didn’t or if someone else finds this thread.

Shopify has recently approved my app (Feeds Bridge) which allows you to import/update multiple catalog feeds at the same time.

Any file can be processed as long as file has all required fields for product creation, all you need to do is map your catalog file fields to product fields on the app.

You can synchronize catalog feeds from FTP/SFTP/HTTP servers or import file manually into Feeds Bridge app.