For the complete documentation index, see llms.txt. This page is also available as Markdown.

Partially update a product

Updates one or more fields of an existing product. Only the fields you send are changed.

The same business rules as the full update apply:

  • Product type changes are restricted to Simple (0) ↔ Miscellaneous (4). Any other change of product_type is rejected.

  • The form-requirement is recomputed from the attribute set, and a Bundle (2) product always requires form input.

  • The listable status is recomputed across the variant family, governed by the LIST_SIMPLE_INSTEAD_OF_META and LISTABLE_PRODUCT_RULES settings (see the Dynamic Settings & Environment Variables section).

  • When the active status or parent changes, the related product-meta pricing is recalculated.

patch
/products/{id}/
Authorizations
AuthorizationstringRequired

Token credential sent in the Authorization header, in the form: Token <your-token>. Requires a staff (admin) account.

Path parameters
idintegerRequired

The unique identifier of the product.

Body

A partial set of product fields to update. Only the provided fields are changed.

namestringOptional

The product name.

base_codestring · nullableOptional

The base code shared by variants of the same product.

skustringOptional

The unique stock keeping unit.

product_typestring · enumOptional

The product type accepted when creating or updating a product. The value is the numeric code as a string.

The draft types Pre Product (-1) and Pre Miscellaneous (-2) are not accepted here; they are used only for products created through other processes.

  • 0 — Simple
  • 1 — Product Meta
  • 2 — Bundle
  • 3 — Grouped
  • 4 — Miscellaneous
  • 5 — Offer
Possible values:
is_activebooleanOptional

Whether the product is active.

parentinteger · nullableOptional

The identifier of the parent product.

is_seller_productbooleanOptional

Whether the product belongs to a seller.

group_productsinteger[] · nullableOptional

The identifiers of products to group under this product.

attribute_setintegerOptional

The identifier of the attribute set that defines the product's attributes.

custom_attribute_setinteger · nullableOptional

The identifier of an additional custom attribute set.

listing_codestring · nullableOptional

The code that identifies the listable variant grouping.

data_sourceinteger · nullableOptional

The identifier of the default data source (seller).

is_form_requiredbooleanOptional

Whether the product requires form input. This value is determined automatically by the system from the attribute set and product type; any value you send is ignored.

Responses
200

The updated product.

application/json

A product in the catalog.

pkintegerRead-onlyOptional

The unique identifier of the product.

namestringOptional

The product name.

base_codestring · nullableOptional

The base code shared by variants of the same product.

skustringOptional

The unique stock keeping unit.

product_typestring · enumOptional

The product type. The value is the numeric code as a string.

  • -1 — Pre Product
  • 0 — Simple
  • 1 — Product Meta
  • 2 — Bundle
  • 3 — Grouped
  • -2 — Pre Miscellaneous
  • 4 — Miscellaneous
  • 5 — Offer
Possible values:
is_activebooleanOptional

Whether the product is active.

parentinteger · nullableOptional

The identifier of the parent product, when the product is a variant.

is_seller_productbooleanOptional

Whether the product belongs to a seller.

group_productsinteger[] · nullableOptional

The identifiers of products grouped under this product.

attribute_setintegerOptional

The identifier of the attribute set that defines the product's attributes.

custom_attribute_setinteger · nullableOptional

The identifier of an additional custom attribute set.

is_listablebooleanRead-onlyOptional

Whether the product is publicly listable. Determined by the system.

listing_codestring · nullableOptional

The code that identifies the listable variant grouping.

data_sourceinteger · nullableOptional

The identifier of the default data source (seller) for the product.

absolute_urlstring · nullableRead-onlyOptional

The storefront URL of the product, when available.

is_form_requiredbooleanOptional

Whether the product requires form input.

patch/products/{id}/
PATCH /api/remote/1/products/{id}/ HTTP/1.1
Host: sandbox.akinon.com
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 550

{
  "name": "text",
  "base_code": null,
  "sku": "text",
  "product_type": "0",
  "is_active": true,
  "parent": null,
  "attributes": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "attributes_kwargs": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "extra_attributes": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "is_seller_product": true,
  "group_products": [
    1
  ],
  "attribute_set": 1,
  "custom_attribute_set": null,
  "localized_attributes": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "localized_attributes_kwargs": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "listing_code": null,
  "data_source": null,
  "is_form_required": true
}
{
  "pk": 1,
  "name": "text",
  "base_code": null,
  "sku": "text",
  "product_type": "-1",
  "is_active": true,
  "parent": null,
  "attributes": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "attributes_kwargs": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "extra_attributes": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "is_seller_product": true,
  "group_products": [
    1
  ],
  "productimage_set": [
    {
      "pk": 1,
      "status": "text",
      "image": "text",
      "order": 1,
      "created_date": "2026-01-01T00:00:00.000Z",
      "specialimage_set": [
        {}
      ]
    }
  ],
  "attribute_set": 1,
  "custom_attribute_set": null,
  "is_listable": true,
  "listing_code": null,
  "data_source": null,
  "absolute_url": null,
  "is_form_required": true
}

Last updated

Was this helpful?