[PaaS only]{class="badge informative" title="Applies to Adobe Commerce on Cloud projects (Adobe-managed PaaS infrastructure) and on-premises projects only."}

Connector sync pipeline

Built on SaaS Data Export, the Adobe Commerce Optimizer Connector maps data collected by SaaS Data Export indexers to the format required by the Adobe Commerce Optimizer Catalog Data Ingestion API and handles authentication, batched submission, and scope-based sync control. The sections below describe how that synchronization works.

Related context:

How the sync works

The following diagram shows data synchronization from Adobe Commerce to Commerce Optimizer through the Adobe I/O Gateway.

Commerce Optimizer Connector high-level sync diagram {width="800" modal="regular"}

When catalog data changes in Adobe Commerce, synchronization moves through these stages.

  1. Entity Change Detection — (every 1 min) A cron job (indexer_reindex_all_invalid) detects Adobe Commerce entity changes and triggers the SaaS Data Export, which assembles feed items and tracks their status.
  2. Transformation — The Commerce Optimizer Connector picks up the assembled feeds, maps Adobe Commerce entities and scopes to formats required by the Commerce Optimizer API, and prepares the payload for transmission.
  3. Transmission — The transformed data is sent via HTTP POST (/v1/catalog/<feed name>) through the Adobe I/O Gateway to Commerce Optimizer, which validates and persists the incoming feeds.
  4. Failure Retry (every 5 min) — A separate cron job (*_resend_failed_items) detects any failed feed items and re-submits them through the same pipeline.

Scheduled cron jobs

Two cron groups automate the pipeline on a fixed schedule.

Cron group
Purpose
Schedule
indexer_reindex_all_invalid
Listens for entity updates, assembles feed items, persists feed status
Every 1 minute
*_resend_failed_items
Checks for failed feed items and resubmits them to Commerce Optimizer
Every 5 minutes

The SaaS Data Export extension handles feed collection and status tracking. The connector layer maps entities and scopes to the format required by the Commerce Optimizer API and submits them via POST /v1/catalog/<feed name>.

Requirements

Scope-based sync control

The CommerceOptimizerScopeMapper module reads per-website and per-store-view export settings and enforces them during feed collection and submission.

  • Enabled scopes export data on the normal delta schedule.
  • Disabled scopes are excluded from the pipeline.
    Previously synced entities are removed from Commerce Optimizer on the next cron run.

If sync issues affect only one catalog source or price book, see Data not syncing.

For details on customizing the synchronization scope, see Customize the Commerce scopes export configuration.

Timing and monitoring

Scenario
Typical timing
Routine catalog updates
1–2 delta-sync cycles (~1–2 minutes for indexing, plus submission)
Transient failures
Retried every 5 minutes
Full sync or large catalogs
Minutes to hours

Monitor per-feed status from the Data Feed Sync Status page in the Commerce Admin. See Verify that the data sync is working.

Feed submission and error handling

The FeedSubmitter process handles Catalog Data Ingestion API calls.

  1. Separates update items from delete items (different API endpoints).
  2. Calls update and delete endpoints independently.
  3. Merges per-item status results back into a single response.

HTTP status code merging

When update and delete calls return different status codes, FeedSubmitter combines the results as follows.

Updates result
Deletes result
Final result
200
200 or none
200 success
200
400
200 with delete errors
400
400
400 merged errors
other
other
RETRYABLE
Error type
Behavior
400
Items listed in the response errors field appear in the Admin and require attention. Other items in the batch are retried.
5xx
Retried by the feed-specific *_feed_resend_failed_items cron jobs in the resync_failed_feeds_data_exporter group.
recommendation-more-help
commerce-help-aco-connector