Hello Commercetools Team,
We are facing significant challenges while synchronizing Product Selections using the Import API and would appreciate your guidance or alternative recommendations.
Context
-
~5000 stores
-
Each store has its own ProductSelection
-
Each ProductSelection contains ~3000 products
-
We are trying to use the Import API to submit full snapshots for each ProductSelection
-
All ProductSelections are independent, but each store has frequent updates
Problems Observed
1. Hard update-action limit
Even though we chunk our ImportRequests to keep each resource under the 500 update-action limit, a single snapshot for a ProductSelection with 3000 items often calculates internal diffs (add/remove) that exceed the 500-action limit.
This results in: InvalidInput: The update actions count exceeds the limit of 500.
It seems that even well-formed 20-resource ImportRequests can fail if Commercetools detects a large diff for a single ProductSelection key.
2. Concurrency issues for the same ProductSelection key
When several resources in import container referencing the same ProductSelection key we observe:
-
Imported operations going fail due to concurenncy issues
Questions
-
Is the Product Selection Import API designed to safely handle large snapshots (2000–5000 products) per resource?
If not, what approach do you recommend for large-scale assortment synchronization? -
Is there any recommended pattern to avoid concurrency conflicts on the same ProductSelection key in one import container (as we can have up to 20 reources in one container) ?
-
Is there a way to bypass or increase the 500 update-action limit for ProductSelections via Import API?
-
Is there an alternative recommended method for full snapshot syncing of ProductSelections at scale (thousands of selections × thousands of products each)?
What we are looking for
We want to understand:
-
Whether our use case (large snapshots, high number of selections) is supported
-
Best practices to implement stable and conflict-free synchronization
Thank you in advance for your help.
Best regards,
Jakub
