Ideal House
Skip to content

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.

http
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#

FieldTypeRequiredDescription
shopIdstringYesShop ID provided by Ideal House.
productIdstringConditionalProduct ID to locate. Required when sku is omitted.
skustringConditionalCurrent SKU to locate. Required when productId is omitted.
productobjectYesFields to update. Include at least one field.

Editable Product Fields#

Only fields included in product are updated.

FieldTypeMaximum lengthDescription
skustring120New SKU. It must remain unique within the shop.
externalProductIdstring120External product identifier.
groupIdstring120Product group identifier.
collectionIdstring120Product collection identifier.
namestring255Product name.
titlestring255Product display title.
brandstring120Product brand.
productTypestring120Product type in your taxonomy.
normalizedProductTypestring40Normalized product type. Coordinate supported values with Ideal House.
categorystring120Product category.
stylestring120Product style.
colorstring120Product color.
availabilitystring40Availability value.
imageUrlstring1,000Public HTTP or HTTPS source-image URL.
previewImageUrlstring1,000HTTP or HTTPS preview-image URL.
productUrlstring1,000HTTP or HTTPS product-detail URL.
attributesobjectProduct attributes. When supplied, this object replaces the current attributes object.
statusstringProduct 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#

json
{
  "shopId": "shop_123",
  "sku": "SKU-10001",
  "product": {
    "name": "Large Gold Wall Mirror",
    "color": "Antique Gold",
    "status": "active"
  }
}
bash
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#

json
{
  "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.