Skip to main content
PUT
Update a product
Updates a product in the store. All fields are optional; only the supplied fields change. shop and user are stripped and cannot be reassigned. Supplying variants merges by variant _id (existing) or adds new ones. Requires the WRITE_INVENTORY scope.

Authorizations

Authorization
string
header
required

Installed-app access token (prefix app_), issued by the OAuth install flow. The store is bound to the token server-side — never send a shop id.

Path Parameters

id
string
required

ObjectId of the product to update.

Body

application/json
name
string

Product name.

description
string

Product description (max 10000 chars).

price
number

Base price (>= 0).

weight
number

Weight (>= 0).

quantity
integer

Stock quantity (>= 0).

promoPrice
number | null

Sale/promotional price (>= 0); nullable.

category
string

Category ObjectId.

images
string[]

Array of image URLs.

video
string | null

Video URL; nullable.

Whether the product is featured.

listed
boolean

Whether the product is listed in the storefront.

lowStockAlert
number

Low-stock threshold (>= 0).

variants
object[]

Product variants; merged by variant _id or appended. Each variant: attributes (required), price (required), promoPrice, quantity, weight, sku.

barcode
string | null

Product barcode; nullable.

Response

Update a product — success.

status
integer
required
Example:

200

success
boolean
required
Example:

true

message
string
required
Example:

"Update a product"

data
object
required

An ecommerce catalog product.

Example: