Skip to main content

Hi, 

I want to export product data to an external system. This means: 

  1. Initially export all products of a given store to the external system
  2. After the initial export is finished, sync changes of product data to the external system using subscriptions 

I was wondering what the recommended way to do the initial full export is, especially with a large amount if products like ~100.000. I checked the documentation and furthermore had a look at the product export template (https://github.com/commercetools/connect-product-export-template/tree/main). 

The product export template loads all product ids using the the “Query Products assigned to active ProductSelections in a Store” endpoint (https://docs.commercetools.com/api/projects/product-selections#query-products-assigned-to-active-productselections-in-a-store), before retrieving product data with a separate call to the  “Get ProductProjection in Store by ID” endpoint (https://docs.commercetools.com/api/projects/productProjections#get-productprojection-in-store) for every single product. 

This seems like a lot of requests to the API, given a large set of product data with a long execution time for a full export. Furthermore I’m not sure how to handle the problem, that already exported chunks are changed in commercetools, while the export is still running. Yes, I like to use subscriptions to sync changes to the external system, but only after the full export is finished. 

So, in summary, the question arises for me: what is the best und most performant way to keep a external system in sync with the product data for a given store?

Thanks and kind regards
Torben

 

Hey Torben,

Acknowledged.  We are working on getting you a response to this one.


Hey Torben,

For the initial full export, you can use the Merchant Center Exporter and then rely on the subscription to keep the products synchronized with your external system, as you already mentioned.

If the Merchant Center export doesn’t meet your requirements, we suggest checking out this documentation.


Reply