Update a product by lookup key
Update an existing product without knowing the Propeller ID, using the source system's identifier as a lookup key.
Endpoint
PATCH /v2/products/{lookupKey}/{lookupValue}
Request
PATCH /v2/products/sourceId/PRD-00482?source=pim-akeneo
{
"names": [
{ "language": "EN", "value": "Wireless Bluetooth Headset Pro (2026)" }
],
"status": "A",
"manufacturerCode": "AT-WBH-500-V2"
}
Response
{
"data": {
"id": 98765,
"names": [
{ "language": "EN", "value": "Wireless Bluetooth Headset Pro (2026)" },
{ "language": "NL", "value": "Draadloze Bluetooth Headset Pro" }
],
"sku": "WBH-PRO-500",
"status": "A",
"manufacturer": "AudioTech",
"manufacturerCode": "AT-WBH-500-V2",
"source": "pim-akeneo",
"sourceId": "PRD-00482"
}
}
How it works
Use PATCH /v2/products/{lookupKey}/{lookupValue} to update a product by its external identifier instead of the Propeller ID. This enables upsert-style sync patterns where your integration references products by the source system's ID. Only the fields you include in the request body are changed. Omitted fields keep their current values. A sourceId lookup needs the source query parameter, and a request without it is refused with 400. The parameter scopes the lookup to a specific source system, so sourceId values from different systems don't collide.