Skip to main content

Replace Listing Profile Mappings

PUT 

/api/v2/sales-channels/:salesChannel/listing-profiles/:profile/mappings

Replace the listing profile's whole set of general field mappings.

Required scope: products:write

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

This is a full sync, not a per-row patch: send every row the editor rendered. A field omitted from mappings is removed from the profile, and a row whose source_type is blank or null (or whose source_value is empty) is treated as unmapped and likewise stores nothing — that is how a field is unbound without deleting the row. Field names are matched case-insensitively; when the same name appears twice the last entry wins.

Responds with the profile's rows in the same shape as the GET, so a client can render the saved state without a second call.

Returns 404 when the profile does not belong to the sales channel in the path, and 422 when a row is missing channel_field_name or carries an unrecognised source_type.

A profile's vocabulary is the channel's CORE listing fields and nothing else — the fields the channel asks for on every listing whatever the category, as its module declares them. Category aspects are never returned and can never be stored here: a template is category-specific, a profile is not. A row with is_core: false is a mapping made before that rule was enforced — it is still live, so it is returned to be removed rather than hidden.

Authentication: Requires Bearer token.

Request

Responses

OK

Response Headers
    Content-Type