---
title: "product.update"
method: PUT
path: "/product.update.json"
tags: ["product"]
---

# product.update

`PUT /product.update.json`

## Request

- Base URL: `https://api.api2cart.com/v1.1`
- URL: `https://api.api2cart.com/v1.1/product.update.json`
- Auth: API key in header `x-api-key` and API key in header `x-store-key`

This method can be used to update certain product data. The list of supported parameters depends on the specific platform. Please transmit only those parameters that are supported by the particular platform. Please note that to update the product quantity, it is recommended to use relative parameters (increase_quantity or reduce_quantity) to avoid unexpected overwrites on heavily loaded stores.

## Request body

- ProductUpdate
  - `id` string: Defines product id that has to be updated
  - `model` string: Defines product model that has to be updated
  - `sku` string: Defines new product's sku
  - `name` string: Defines product's name that has to be updated
  - `description` string: Defines new product's description
  - `short_description` string: Defines short description
  - `prices_inc_tax` boolean: Indicates whether prices include tax.
  - `price` number: Defines new product's price
  - `old_price` number: Defines product's old price
  - `special_price` number: Defines new product's special price
  - `sprice_create` string: Defines the date of special price creation
  - `sprice_expire` string: Defines the term of special price offer duration
  - `cost_price` number: Defines new product's cost price
  - `fixed_cost_shipping_price` number: Specifies product's fixed cost shipping price
  - `retail_price` number: Defines new product's retail price
  - `tier_prices` object[]: Defines product's tier prices
    - `quantity` number
    - `price` number
  - `reserve_price` number: Defines reserve price value
  - `buyitnow_price` number: Defines buy it now value
  - `taxable` boolean: Specifies whether a tax is charged
  - `tax_class_id` string: Defines tax classes where entity has to be added
  - `type` string: Defines product's type
  - `status` string: Defines product's status
  - `condition` string: The human-readable label for the condition (e.g., "New").
  - `visible` string: Set visibility status
  - `in_stock` boolean: Set stock status. Effective only when manage_stock is false — when stock is managed, the status is derived from quantity automatically and this parameter is ignored.
  - `avail` boolean: Defines category's visibility status
  - `avail_from` string: Allows to schedule a time in the future that the item becomes available. The value should be greater than the current date and time.
  - `product_class` string: A categorization for the product
  - `brand_name` string: Retrieves brands specified by brand name
  - `available_for_view` boolean: Specifies the set of visible/invisible products for users
  - `measure_unit` string: Unit for the price per unit. Must be in allowed list
  - `unit_price` number: Defines new product's unit price
  - `stores_ids` string: Assign product to the stores that is specified by comma-separated stores' id
  - `store_id` string: Defines store id where the product should be found
  - `lang_id` string: Language id
  - `quantity` number: Defines new product's quantity. Effective only when manage_stock is true — otherwise the value is ignored. To enable stock tracking and set a quantity in one call, pass manage_stock=true together with quantity.
  - `reserve_quantity` number: This parameter allows to reserve/unreserve product quantity.
  - `manage_stock` boolean: Defines inventory tracking for product. When true, quantity sets the stock level and the stock status is derived from it; when false, quantity is ignored and in_stock sets the status directly.
  - `backorder_status` string: Set backorder status
  - `increase_quantity` number: Defines the incremental changes in product quantity. Effective only when manage_stock is true — otherwise the value is ignored.
  - `reduce_quantity` number: Defines the decrement changes in product quantity. Effective only when manage_stock is true.
  - `low_stock_threshold` number: Specify the quantity threshold below which the product is considered low in stock
  - `min_order_quantity` number: The minimum quantity an order must contain, to be eligible to purchase this product.
  - `max_order_quantity` number: The maximum quantity an order can contain when purchasing the product.
  - `warehouse_id` string: This parameter is used for selecting a warehouse where you need to set/modify a product quantity.
  - `weight` number: Weight
  - `weight_unit` string: Weight Unit
  - `height` number: Defines product's height
  - `length` number: Defines product's length
  - `width` number: Defines product's width
  - `dimensions_unit` string: Weight Unit
  - `is_virtual` boolean: Defines whether the product is virtual
  - `is_free_shipping` boolean: Specifies product free shipping flag that has to be updated
  - `gtin` string: Global Trade Item Number. An GTIN is an identifier for trade items.
  - `upc` string: Universal Product Code. A UPC (UPC-A) is a commonly used identifer for many different products.
  - `mpn` string: Manufacturer Part Number. A MPN is an identifier of a particular part design or material used.
  - `ean` string: European Article Number. An EAN is a unique 8 or 13-digit identifier that many industries (such as book publishers) use to identify products.
  - `isbn` string: International Standard Book Number. An ISBN is a unique identifier for books.
  - `barcode` string: A barcode is a unique code composed of numbers used as a product identifier.
  - `manufacturer` string: Defines product's manufacturer
  - `manufacturer_id` string: Defines product's manufacturer by manufacturer_id
  - `vendor_id` string: Vendor Id
  - `categories_ids` string: Defines product add that is specified by comma-separated categories id
  - `related_products_ids` string: Defines product related products ids that has to be updated
  - `up_sell_products_ids` string: Defines product up-sell products ids that has to be updated
  - `cross_sell_products_ids` string: Defines product cross-sells products ids that has to be updated
  - `meta_title` string: Defines unique meta title for each entity
  - `meta_keywords` string: Defines unique meta keywords for each entity
  - `meta_description` string: Defines unique meta description of a entity
  - `seo_url` string: Defines unique URL for SEO
  - `search_keywords` string: Defines unique search keywords
  - `tags` string: Product tags
  - `delivery_code` string: The delivery promise that applies to offer
  - `package_details` object: If the seller is subscribed to "Business Policies", use the seller_profiles instead of the shipping_details, payment_methods and return_accepted params.<hr><div style="font-style:normal">Param structure:<div style="margin-left: 2%;"><code style="padding:0; background-color:#ffffff;font-size:85%;font-family:monospace;">package_details[<b>measure_unit</b>] = string</br> Allowed measure_unit values: [English or Metric] </br> Default: Metric</br>package_details[<b>weigh_unit</b>] = string</br> Allowed weigh_unit values: [kg, g, lbs, oz]</br>package_details[<b>package_depth</b>] = decimal</br>package_details[<b>package_length</b>] = decimal</br>package_details[<b>package_width</b>] = decimal</br>package_details[<b>weight_major</b>] = decimal</br>package_details[<b>weight_minor</b>] = decimal</br>package_details[<b>shipping_package</b>] = string</br> See cart.info method, param `eBay_shipping_package_details`</code></div></div>
    - `measure_unit` string
    - `weigh_unit` string
    - `package_depth` number
    - `package_length` number
    - `package_width` number
    - `weight_major` number
    - `weight_minor` number
    - `shipping_package` string
  - `country_of_origin` string: The country where the inventory item was made
  - `harmonized_system_code` string: Harmonized System Code. An HSC is a 6-digit identifier that allows participating countries to classify traded goods on a common basis for customs purposes
  - `shipping_template_id` integer: The numeric ID of the shipping template associated with the products in Etsy. You can find possible values in the "cart.info" API method response, in the field shipping_zones[]->id.
  - `processing_profile_id` integer: The numeric ID of the processing profile (readiness state) for physical products in Etsy. You can find possible values in the "cart.info" API method response, in the field processing_profiles[]->readiness_state_id.
  - `when_made` string: An enumerated string for the era in which the maker made the product.
  - `is_supply` boolean: If true, it indicates the product as a supply, otherwise it indicates that it is a finished product.
  - `downloadable` boolean: Defines whether the product is downloadable
  - `materials` string[]: A list of material strings for materials used in the product.
  - `auto_renew` boolean: When true, automatically renews a listing upon its expiration.
  - `on_sale` boolean: Set whether the product on sale
  - `production_partner_ids` string: Defines product production partner ids that has to be updated
  - `manufacturer_info` object: Manufacturer information.
    - `name` string: Defines manufacturer`s name
    - `address` string: Defines manufacturer`s address
    - `phone` string: Defines manufacturer`s phone
    - `email` string: Defines manufacturer`s email
  - `report_request_id` string: Report request id
  - `disable_report_cache` boolean: Disable report cache for current request
  - `reindex` boolean: Is reindex required
  - `clear_cache` boolean: Is cache clear required
  - `check_process_status` boolean: Disable or enable check process status. Please note that the response will be slower due to additional requests to the store.
  - `specifics` object[]: An array of Item Specific Name/Value pairs used by the seller to provide descriptive details of an item in a structured manner. The list of possible specifications can be obtained using the category.info method (additional_fields->product_specifics). <b>The structure of the parameter is different for specific platforms.</b>
    - `name` string
    - `value` string
    - `values` string[]
    - `used_for_variations` boolean
    - `scale_id` integer, nullable
    - `input_value` string, nullable
    - `food_details` object
      - `calories` number, required
    - `group_products_details` object[]
      - `id` string, required
      - `quantity` integer, required
    - `booking_details` object
      - `location` string, required
      - `type` 'date' | 'date_time', required
      - `session_duration` integer
      - `session_gap` integer
      - `sessions_count` integer, required
      - `time_strict_value` number, required
      - `time_strict_type` 'days' | 'hours' | 'minutes', required
      - `availabilities` object[], required
        - `day` 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday', required
        - `is_available` boolean
        - `times` object[]
          - `from` string, required: The starting time of the of available booking slot in 24 hours format. Required if <code>type=date_time</code>
          - `to` string, required: The ending time of the of available booking slot in 24 hours format. Required if <code>type=date_time</code>
      - `overrides` object[]
        - `day` 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday', required
        - `date` string, required
  - `shop_section_id` integer: Add Shop Section Id
  - `personalization_details` object: <strong>Deprecated.</strong> Use <strong>personalization_questions</strong> instead for setting personalization questions. Defines legacy personalization settings for the listing. To enable personalization, is_personalizable must be set to true. When enabled, additional fields may be used to configure the personalization experience, including whether it is required (personalization_is_required), the maximum character limit (personalization_char_count_max), and buyer instructions (personalization_instructions). All related fields are only applicable if personalization is enabled.
    - `is_personalizable` boolean, required
    - `personalization_is_required` boolean
    - `personalization_char_count_max` integer
    - `personalization_instructions` string
  - `personalization_questions` object[]: Defines personalization questions for the listing as an array of question objects. Each question object supports the following fields: question_id (integer, nullable), question_text (string, 1-45 chars), instructions (string, nullable), question_type (string), required (boolean), max_allowed_characters (integer, nullable), max_allowed_files (integer, nullable), options (array, nullable). Cannot be used together with <strong>personalization_details</strong>.
    - `question_text` string, required
    - `instructions` string
    - `question_type` 'text_input' | 'dropdown' | 'unlabeled_upload' | 'labeled_upload', required
    - `required` boolean, required
    - `max_allowed_characters` integer, nullable
    - `max_allowed_files` integer, nullable
    - `options` string[], nullable
  - `external_product_link` string: External product link
  - `marketplace_item_properties` string: String containing the JSON representation of the supplied data
  - `manufacturer_ids` string: A comma-separated list of manufacturer IDs. Retrieve the IDs from the cart.info method.
  - `responsible_person_ids` string: A comma-separated list of responsible person IDs. Retrieve the IDs from the cart.info method.
  - `idempotency_key` string: A unique identifier associated with a specific request. Repeated requests with the same <strong>idempotency_key</strong> return a cached response without re-executing the business logic. <strong>Please note that the cache lifetime is 15 minutes.</strong>

## Response `200`

successful operation

- object
  - `return_code` integer
  - `return_message` string
  - `result` object
    - `updated_items` integer

---

[API](https://skmtc.dev/api2cart/apis/api2cart-openapi.md) · [All operations](https://skmtc.dev/api2cart/apis/api2cart-openapi/llms.txt) · [OpenAPI document](https://skmtc.dev/api2cart/apis/api2cart-openapi/revisions/c34440741693?raw)
