Skip to main content

Bulk Assign Product Pricing Sync Profile

POST 

/api/v2/products/bulk/pricing-sync-profile

Set — or clear — the product-level pricing sync profile on many products at once, by ID list or by the same filter[...] query List Products accepts (send the filter keys without the filter[] wrapper). Exactly one of the two must be sent.

Required scope: products:write

Grant this scope to your token under Settings → Developer → Personal Access Tokens.

An explicit selection of up to 200 products is applied immediately (mode: "sync", HTTP 200) and the affected listings — those of the changed products that carry no profile of their own — are re-priced before the response returns. A larger selection, or any filter scope, runs as a background job (mode: "job", HTTP 202); the filter is resolved to a fixed list of product IDs when the job is queued.

Authentication: Requires Bearer token.

Requires the products.update permission (API tokens: products:write scope).

Request body:

  • pricing_sync_profile_id (integer|null, required — the key must be present): the profile to apply, or null to clear. An archived profile is refused (422).
  • product_ids (array of integers, optional): the products to update.
  • filters (object, optional): the product list filters to resolve into products.

Response data when applied immediately (mode: "sync"):

  • assigned (integer): products whose profile changed
  • unchanged (integer): products that already had this profile
  • not_priced (integer): of the re-priced listings, how many have no price at any level of the new profile's sequence
  • not_sku_mastered (integer): of the re-priced listings, how many are not mastered by SKU.io and so are never pushed
  • not_found (integer): requested IDs that are not products

Response data when queued (mode: "job"):

  • tracked_job_log_id (integer): the background job to follow
  • total (integer): products the job will process

Request

Responses

OK

Response Headers
    Content-Type