| Job Name | Function | Event |
|---|---|---|
| Product Update: Collection Evaluation | Monitors product attribute updates and re-evaluates product eligibility for collections. | pim:jobs.ProductUpdate.CollectionEvaluation:completedpim:jobs.ProductUpdate.CollectionEvaluation:failed |
| Collection Update: Product Evaluation | Monitors collection rule updates and re-evaluates products based on the revised collection rules. | pim:jobs.CollectionUpdate.ProductEvaluation:completedpim:jobs.CollectionUpdate.ProductEvaluation:failed |

Synchronization Process
1. Job execution
The system runs one of two background jobs:- Product Update: Collection Evaluation (re-evaluates product fitment based on attribute updates).
- Collection Update: Product Evaluation (re-evaluates products based on collection rule changes).
2. Event triggering
Once a job completes successfully or fails, it triggers an event. The webhook listener must be subscribed to both completed and failed events because failed jobs may still update some products.3. Event delivered
The fabric event publisher delivers the event to the webhook listener.4. Extract the output file ID
The Webhook Listener retrieves the first output file ID from the event payload. If multiple output files exist:- Only the first file should be processed.
- Additional files should be reviewed to determine if they contain duplicates, sequential data, or logs.
Example payload with output files
5. Retrieve the file download link
Make an API request to fetch the file download link using the extracted file ID.Example cURL request
6. Download and extract the file
Download the output file from the retrieved link. The downloaded file is a .zip archive that must be extracted before use. Retry logic:- If the download fails, retry with exponential backoff.
- Verify file integrity before extraction.
Example signed URL for file download
X-Amz-Expires, an algorithm used for signing X-Amz-Algorithm, and a signature X-Amz-Signature.
Ensure that the webhook listener processes the file right after retrieval to avoid needing multiple API requests.
If the URL expires before the file is downloaded, request a new signed URL by calling the File API again.
7. Process the extracted data
If no products were updated, the file contains the message “No products updated.” If products were updated, the file contains JSON entries listing:- Product ID
- SKU
- Type (item, variant, or bundle)
- Status (live, draft)
- Collections the product was added to or removed from
