Bidirectional product sync
Push products to Shopify, pull from Shopify, or run a full bidirectional sync. Track sync history with detailed logs and maintain entity-product mappings for reliable data consistency.
Push
Send Sigma PIM entities to the external channel. Creates new products or updates existing ones based on sync mappings.
Pull
Import products from the external channel into Sigma PIM. Creates new entities or updates existing ones.
Bidirectional
Full two-way sync. Push local changes and pull remote changes in a single operation. Direction: bidirectional
Test Connection
Verify the channel's connection credentials before syncing. Returns connection status and shop metadata.
Endpoints
| Method | Endpoint | Description |
|---|---|---|
| POST | /channels/:id/test-connection |
Test Shopify connection |
| POST | /channels/:id/sync |
Full bidirectional sync |
| POST | /channels/:id/push |
Push entities to Shopify |
| POST | /channels/:id/pull |
Pull products from Shopify |
| GET | /channels/:id/sync-logs |
Get sync history |
| GET | /channels/:id/sync-mappings |
Get entity-product mappings |
Test connection
Verify that the channel's connection credentials are valid. For Shopify channels, this tests the API key and shop URL. Returns connection status and shop metadata.
Full bidirectional sync
Run a complete bidirectional sync. Pushes local changes to Shopify and pulls remote changes back. Uses checksum-based change detection to minimize unnecessary writes.
Push to Shopify
Push all matching entities from Sigma PIM to the Shopify store. Field mappings defined on the channel are applied during the push. Only entities matching the channel's schema and catalog filters are included.
Pull from Shopify
Pull products from the Shopify store into Sigma PIM. Uses the channel's field mappings in reverse to populate entity attributes. New products create new entities; existing mappings update in place.
Sync history
Retrieve the sync log history for a channel. Each log entry records the direction, status, timestamps, and item counts for a sync operation.
SyncLog shape
| Field | Type | Description |
|---|---|---|
id |
string | Unique sync log ID |
channelId |
string | Channel that was synced |
direction |
string | push | pull | bidirectional |
status |
string | running | success | failed | partial |
startedAt |
string | ISO 8601 timestamp |
completedAt |
string? | ISO 8601 timestamp, null if still running |
pushed |
number | Count of entities pushed to the channel |
pulled |
number | Count of products pulled from the channel |
skipped |
number | Count of unchanged items skipped |
failed |
number | Count of items that failed to sync |
errors |
array | Array of { entityId?, externalId?, message } |
Entity-product mappings
Retrieve the mapping between Sigma PIM entities and external products for a channel. Each mapping tracks the external ID, variant IDs, and last sync timestamps for reliable change detection.
SyncMapping shape
| Field | Type | Description |
|---|---|---|
id |
string | Unique mapping ID |
channelId |
string | Channel this mapping belongs to |
entityId |
string | Sigma PIM entity ID |
externalId |
string | External product ID (e.g. Shopify product ID) |
externalVariantIds |
string[]? | External variant IDs mapped to this entity |
lastPushedAt |
string? | Last time entity was pushed to channel |
lastPulledAt |
string? | Last time product was pulled from channel |
checksum |
string? | Content hash for change detection |