Map Single Product to SKU.io Product
POST/api/amazon/:integrationInstance/products/:product/map
Per-row mapping endpoint used by the unified products mapping modal (Faire/Shopify parity). Maps a single Amazon product to either an existing SKU.io product (product_id) or a subscription offering (subscription_offering_id).
Any valid API token can call this endpoint — no specific scope required. Manage tokens.
Body (one of, required):
product_id(int, required_without:subscription_offering_id, must exist inproducts) — link to a SKU.io product.subscription_offering_id(int, required_without:product_id, must exist insubscription_offerings) — link to a subscription offering.
Behavior:
- If the Amazon product is already mapped (
productListingexists), the existing row is updated in place — supports the Remap flow. - Otherwise a new
ProductListingrow is created withsales_channel_id= the instance's sales channel,listing_sku=seller_sku,document_type=AmazonProduct::class. - After mapping, any unmapped
SalesOrderLinerows matching this listing are dispatched to a background job so back-fill happens automatically.
Returns HTTP 201 with the refreshed Amazon product object.
Named route: amazon.products.map (single).
Request
Responses
- 201
- 401
- 403
- 404
- 422
- 429
Created
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Unprocessable Entity
Response Headers
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.