Skip to main content

Bulk Operation

POST 

/api/shopify/:integrationInstance/products/bulk

Execute a bulk operation on Shopify products synchronously.

Not yet available to API tokens

This endpoint currently requires session authentication; Personal Access Token scope support is in progress.

Authentication: Requires Bearer token.

Validation:

  • action: required, in: map, unmap, create, remap, archive, unarchive, delete, refresh, revenue
  • selection.type: required, in: selected, visible, filtered
  • selection.ids: required_if type=selected, array of integers
  • selection.filters: sometimes, array of filter key-value pairs
  • options.match_by: sometimes, in: sku, barcode (for map/remap)
  • options.create_if_no_match: sometimes, boolean (for map action)
  • options.field_mappings: sometimes, array of {shopify_field, sku_field}
  • options.financial_line_type_id: required for revenue, integer or null

Field mappings for the create action options.field_mappings controls how Shopify values are copied onto the SKU products created by this operation, for this request only — it is never saved to the integration. Each entry pairs a Shopify source field with a SKU target field; call GET /api/shopify/mappings/available-fields for the valid values. Entries naming an unknown field are ignored. Omit options.field_mappings to use the mappings already saved on the integration.

Revenue line mapping (revenue action) Maps every product in the selection to one revenue financial line type, so future orders book those items as revenue lines instead of product lines (for example shipping insurance, package protection or service fees). No SKU products are created. Pass options.financial_line_type_id (required for this action) with the id of a revenue-classified financial line type, or null to clear the revenue mapping. Products already on that type, or with no revenue mapping to clear, are counted as skipped. A non-revenue type returns 422. Orders already imported are not changed.

Product IDs that belong to a different integration instance are not acted on and are counted in skipped.

Request​

Responses​

OK

Response Headers
    Content-Type