Update a Product#
Updates one product synchronously. Identify the product with either productId or sku, together with shopId. Provide exactly one identifier; requests containing both or neither return 400 Bad Request.
PATCH https://sdkapi.ideal.house/product-import/products
The identifier is separate from the product object. This allows an integration to locate a product by its current SKU and change the SKU in the same request.
Use productId as the identifier when changing a SKU. This keeps retries unambiguous if the first request updates the SKU but its response is lost.
Request Body#
| Field | Type | Required | Description |
|---|---|---|---|
shopId | string | Yes | Shop ID provided by Ideal House. |
productId | string | Conditional | Product ID to locate. Required when sku is omitted. |
sku | string | Conditional | Current SKU to locate. Required when productId is omitted. |
product | object | Yes | Fields to update. Include at least one field. |
Editable Product Fields#
Only fields included in product are updated.
| Field | Type | Maximum length | Description |
|---|---|---|---|
sku | string | 120 | New SKU. It must remain unique within the shop. |
externalProductId | string | 120 | External product identifier. |
groupId | string | 120 | Product group identifier. |
collectionId | string | 120 | Product collection identifier. |
name | string | 255 | Product name. |
title | string | 255 | Product display title. |
brand | string | 120 | Product brand. |
productType | string | 120 | Product type in your taxonomy. |
normalizedProductType | string | 40 | Normalized product type. Coordinate supported values with Ideal House. |
category | string | 120 | Product category. |
style | string | 120 | Product style. |
color | string | 120 | Product color. |
availability | string | 40 | Availability value. |
imageUrl | string | 1,000 | Public HTTP or HTTPS source-image URL. |
previewImageUrl | string | 1,000 | HTTP or HTTPS preview-image URL. |
productUrl | string | 1,000 | HTTP or HTTPS product-detail URL. |
attributes | object | — | Product attributes. When supplied, this object replaces the current attributes object. |
status | string | — | Product status. The update endpoint accepts active or inactive. |
The following fields are read-only: id, shopId, productCode, createdAt, and updatedAt. Use the delete endpoint to set a product to invalid.
Update by SKU#
{
"shopId": "shop_123",
"sku": "SKU-10001",
"product": {
"name": "Large Gold Wall Mirror",
"color": "Antique Gold",
"status": "active"
}
}
curl --request PATCH \
'https://sdkapi.ideal.house/product-import/products' \
--header 'Content-Type: application/json' \
--header 'X-Client-Id: <YOUR_CLIENT_ID>' \
--header 'X-Client-Secret: <YOUR_CLIENT_SECRET>' \
--data-raw '{
"shopId": "shop_123",
"sku": "SKU-10001",
"product": {
"name": "Large Gold Wall Mirror",
"color": "Antique Gold",
"status": "active"
}
}'
Update by Product ID and Change the SKU#
{
"shopId": "shop_123",
"productId": "product_123",
"product": {
"sku": "SKU-10001-NEW",
"name": "Large Gold Wall Mirror",
"status": "inactive"
}
}
A successful update returns 200 OK and the complete updated product object. An inactive product is retained and remains available through the List Products endpoint.