Update Product

Updates a *Product*. **Limits** - A product can have up to 1000 images. Each image file or image uploaded by URL can be up to 8 MB. **Read-Only Fields** - id - date_created - date_modified - calculated_price - base_variant_id

Authentication

X-Auth-Tokenstring
### OAuth scopes | UI Name | Permission | Parameter | |:--------|:-----------|:----------| | Products | modify | `store_v2_products` | | Products | read-only | `store_v2_products_read_only` | ### Authentication header | Header | Argument | Description | |:-------|:---------|:------------| | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our [Guide to API Accounts](/developer/docs/overview/api-accounts#api-accounts). | ### Further reading For example requests and more information about authenticating BigCommerce APIs, see [Authentication and Example Requests](/developer/docs/overview/api-accounts#x-auth-token-header-example-requests). For more about BigCommerce OAuth scopes, see our [Guide to API Accounts](/developer/docs/overview/api-accounts#oauth-scopes). For a list of API status codes, see [API Status Codes](/developer/api-reference/rest/overview#rest-http-status-codes).

Path parameters

product_idstringRequired

Query parameters

includelist of enumsOptional

A comma-separated list of sub-resources to return with a product object. When you specify options or modifiers, results are limited to 10 per page.

include_fieldslist of enumsOptional

Fields to include, in a comma-separated list. The ID and the specified fields will be returned.

Request

This endpoint expects an object.
availabilityenumOptional
Availability of the product. (Corresponds to the productʼs [Purchasability](https://support.bigcommerce.com/s/article/Adding-Products-v3?language=en_US#sections) section in the control panel.) Supported values: `available` - the product is available for purchase; `disabled` - the product is listed on the storefront, but cannot be purchased; `preorder` - the product is listed for pre-orders.
Allowed values:
availability_descriptionstringOptional0-255 characters

Availability text displayed on the checkout page, under the product title. Tells the customer how long it will normally take to ship this product, such as: ‘Usually ships in 24 hours.’

bin_picking_numberstringOptional0-255 characters
The BIN picking number for the product.
brand_idintegerOptional0-1000000000

You can add a product to an existing brand during a product /PUT or /POST. Use either the brand_id or the brand_name field. The response body can include brand_id.

brand_namestringOptional
You can create the brand during a product PUT or POST request. If the brand already exists, the product /PUT or /POST request adds the product to the brand. If not, the product /PUT or /POST request creates the brand and then adds the product to the brand. Brand name is not case-sensitive; "Common Good" and "Common good" are the same. Use either the `brand_id` or the `brand_name` field. The response body does not include `brand_name`.
bulk_pricing_ruleslist of objectsOptional
categorieslist of doublesOptional
An array of IDs for the categories to which this product belongs. When updating a product, if an array of categories is supplied, all product categories will be overwritten. Does not accept more than 1,000 ID values.
conditionenumOptional

The product condition. Will be shown on the product page if the is_condition_shown fieldʼs value is true. Possible values: New, Used, Refurbished.

Allowed values:
cost_pricedoubleOptional

The cost price of the product. Stored for reference only; it is not used or displayed anywhere on the store.

custom_fieldslist of objectsOptional
200 maximum custom fields per product. 255 maximum characters per custom field.
custom_urlobjectOptional
The custom URL for the product on the storefront. If not provided in the POST request, the URL will be autogenerated from the product name.
date_last_importedstringOptional
the date when the Product had been imported
depthdoubleOptional
Depth of the product, which can be used when calculating shipping costs.
descriptionstringOptional
The product description, which can include HTML formatting.
fixed_cost_shipping_pricedoubleOptional

A fixed shipping cost for the product. If defined, this value will be used during checkout instead of normal shipping-cost calculation.

gift_wrapping_options_listlist of integersOptional

A list of gift-wrapping option IDs.

Always included in the response body; not applicable for the include_fields and exclude_fields query parameters.

gift_wrapping_options_typeenumOptional
Type of gift-wrapping options. Values: `any` - allow any gift-wrapping options in the store; `none` - disallow gift-wrapping on the product; `list` – provide a list of IDs in the `gift_wrapping_options_list` field. Always included in the response body; not applicable for the `include_fields` and `exclude_fields` query parameters.
Allowed values:
gtinstringOptional0-14 characters
Global Trade Item Number
heightdoubleOptional
Height of the product, which can be used when calculating shipping costs.
imageslist of objectsOptional
inventory_levelintegerOptional0-2147483647
Current inventory level of the product. You must track inventory by _product_ for this to take effect (see the `inventory_tracking` field). The Catalog API returns the inventory for only the default location. The inventory for a product cannot exceed 2,147,483,647 in the catalog. If you exceed the limit, the store sets the inventory level to the limit. The Catalog API handles limits in a different way than the Inventory API. For more information, see [Limit handling](/developer/docs/admin/catalog-and-inventory/inventory-adjustments#limit-handling-in-inventory-versus-catalog-api).
inventory_trackingenumOptional
The type of inventory tracking for the product. Values are: `none` - inventory levels will not be tracked; `product` - inventory levels will be tracked using the `inventory_level` and `inventory_warning_level` fields; `variant` - inventory levels will be tracked based on variants, which maintain their own warning levels and inventory levels.
Allowed values:
inventory_warning_levelintegerOptional0-2147483647

Inventory warning level for the product. When the productʼs inventory level drops below the warning level, the store owner will be informed. Simple inventory tracking must be enabled (see the inventory_tracking field) for this to take any effect.

is_condition_shownbooleanOptional
Flag used to determine whether the product condition is shown to the customer on the product page.
is_free_shippingbooleanOptional

Flag used to indicate whether the product has free shipping. If true, the shipping cost for the product will be zero.

is_preorder_onlybooleanOptional

If set to true then on the preorder release date the preorder status will automatically be removed. If set to false, then on the release date the preorder status will not be removed. It will need to be changed manually either in the control panel or using the API. Using the API set availability to available.

is_price_hiddenbooleanOptional

False by default, indicating that this productʼs price should be shown on the product page. If set to true, the price is hidden. (NOTE: To successfully set is_price_hidden to true, the availability value must be disabled.)

is_visiblebooleanOptional

Flag to determine whether the product should be displayed to customers browsing the store. If true, the product will be displayed. If false, the product will be hidden from view.

layout_filestringOptional0-500 characters

The layout template file used to render this product category. This field is writable only for stores with a Blueprint theme applied. For stores with a Stencil theme applied, see Custom Template Associations.

map_pricedoubleOptional
Minimum Advertised Price
meta_descriptionstringOptional0-65535 characters

Custom meta description for the product page. If not defined, the storeʼs default meta description will be used.

meta_keywordslist of stringsOptional

Custom meta keywords for the product page. If not defined, the storeʼs default keywords will be used.

mpnstringOptional
Manufacturer Part Number
namestringOptional1-250 characters
A unique product name.
open_graph_descriptionstringOptional

Description to use for the product, if not specified then the meta_description will be used instead.

open_graph_titlestringOptional
Title of the product, if not specified the product name will be used instead.
open_graph_typeenumOptional

Type of product, defaults to product.

open_graph_use_imagebooleanOptional
Flag to determine if product image or open graph image is used.
open_graph_use_meta_descriptionbooleanOptional
Flag to determine if product description or open graph description is used.
open_graph_use_product_namebooleanOptional
Flag to determine if product name or open graph name is used.
order_quantity_maximumintegerOptional0-1000000000
The maximum quantity an order can contain when purchasing the product.
order_quantity_minimumintegerOptional0-1000000000
The minimum quantity an order must contain, to be eligible to purchase this product.
page_titlestringOptional0-255 characters
Custom title for the product page. If not defined, the product name will be used as the meta title.
preorder_messagestringOptional0-255 characters

Custom expected-date message to display on the product page. If undefined, the message defaults to the storewide setting. Can contain the %%DATE%% placeholder, which will be substituted for the release date.

preorder_release_datedatetime or nullOptional

Pre-order release date. See the availability field for details on setting a productʼs availability to accept pre-orders.

pricedoubleOptional
The price of the product. The price should include or exclude tax, based on the store settings.
price_hidden_labelstringOptional0-200 characters

By default, an empty string. If is_price_hidden is true, the value of price_hidden_label is displayed instead of the price. (NOTE: To successfully set a non-empty string value with is_price_hidden set to true, the availability value must be disabled.)

product_tax_codestringOptional0-255 characters
Tax Codes, such as AvaTax System Tax Codes, identify products and services that fall into special sales-tax categories. By using these codes, merchants who subscribe to a tax provider integration, such as BigCommerceʼs Avalara Premium, can calculate sales taxes more accurately. Stores without a tax provider will ignore the code when calculating sales tax. Do not pass more than one code. The codes are case-sensitive. For details, please see the tax providerʼs documentation.
related_productslist of integersOptional
An array of IDs for the related products.
retail_pricedoubleOptional
The retail cost of the product. If entered, the retail cost price will be shown on the product page.
reviews_countintegerOptional
The number of times the product has been rated.
reviews_rating_sumintegerOptional

The total (cumulative) rating for the product.

sale_pricedoubleOptional

If entered, the sale price will be used instead of value in the price field when calculating the productʼs cost.

search_keywordsstringOptional0-65535 characters

A comma-separated list of keywords that can be used to locate the product when searching the store.

skustringOptional0-255 characters

A unique user-defined alphanumeric product code/stock keeping unit (SKU). The SKU is always unique regardless of the letter case for both products and variants.

sort_orderintegerOptional-2147483648-2147483647
Priority to give this product when included in product lists on category pages and in search results. Lower integers will place the product closer to the top of the results.
tax_class_iddoubleOptional0-255

The ID of the tax class applied to the product. (NOTE: Value ignored if automatic tax is enabled.)

total_soldintegerOptional
The total quantity of this product sold.
typeenumOptional

The product type. One of: physical - a physical stock unit, digital - a digital download.

Allowed values:
upcstringOptional0-14 characters
The product UPC code, which is used in feeds for shopping comparison sites and external channel integrations.
videoslist of objectsOptional
The Catalog API integrates with third-party YouTube. The [YouTube Terms of Service](https://www.youtube.com/t/terms) and [Google Privacy Policy](https://policies.google.com/privacy) apply, as indicated in our [Privacy Policy](https://www.bigcommerce.com/privacy/) and [Terms of Service](https://www.bigcommerce.com/terms/).
warrantystringOptional0-65535 characters
Warranty information displayed on the product page. Can include HTML formatting.
weightdoubleOptional
Weight of the product, which can be used when calculating shipping costs. This is based on the unit set on the store.
widthdoubleOptional
Width of the product, which can be used when calculating shipping costs.
view_countintegerOptional0-1000000000Deprecated
The number of times the product has been viewed.

Response

dataobject
metaobject
Response metadata.

Errors

404
Not Found Error
409
Conflict Error
422
Unprocessable Entity Error