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

Update a product

Replaces the details of an existing product. Provide the full set of writable fields.

Business Rules

  • Product type changes are restricted. Only the following transitions are allowed:

    • Simple (0) → Miscellaneous (4)

    • Miscellaneous (4) → Simple (0)

    Any other change of product_type is rejected. Keeping the same type is always allowed.

  • The form-requirement (is_form_required) is recomputed from the attribute set. A Bundle (2) product always requires form input regardless of the value you send.

  • For an Offer (5) product, the product's images are re-synchronized from the offer relationship.

  • After the update, the listable status is recomputed across the whole variant family (the parent and all its variants). Products that are no longer active lose their listable status. The LIST_SIMPLE_INSTEAD_OF_META setting determines whether an individual simple variant or the parent product meta holds the listable position.

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

Dynamic Setting

Setting Key
Type
Default
Effect

LIST_SIMPLE_INSTEAD_OF_META

boolean

false

When enabled, an individual simple variant is exposed as the listable product for its group instead of the parent product meta. This changes the listability recomputed here for Simple and Product Meta types.

LISTABLE_PRODUCT_RULES

array of strings

["image_rule", "is_listable_rule"]

The ordered rules that decide which variant is chosen as the listable product within a group. Applied when the listable status is recomputed across the variant family.

You configure these settings in the management panel. For LIST_SIMPLE_INSTEAD_OF_META, when it is not set its value falls back to the corresponding server configuration value, and to false if that is also unset. See the Dynamic Settings & Environment Variables section for full definitions.

put
/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

The data used to create or fully update a product.

namestringRequired

The product name.

base_codestring · nullableOptional

The base code shared by variants of the same product.

skustringRequired

The unique stock keeping unit.

product_typestring · enumRequired

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.

Default: true
parentinteger · nullableOptional

The identifier of the parent product. Required for offer products.

is_seller_productbooleanOptional

Whether the product belongs to a seller.

Default: false
group_productsinteger[] · nullableOptional

The identifiers of products to group under this product.

attribute_setintegerRequired

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). Required for offer products.

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.

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

{
  "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": false,
  "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?