Skip to main content
PUT
/
products
/
{id}
Update a product
curl --request PUT \
  --url https://api.salesive.com/api/v1/products/{id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "price": 17.99,
  "quantity": 95,
  "featured": false
}
'
{
  "status": 200,
  "success": true,
  "message": "Update a product",
  "data": {
    "_id": "66a1f2c4e1b3a40012ab34cd",
    "name": "Classic Tee",
    "slug": "classic-tee",
    "description": "Soft cotton t-shirt",
    "price": 17.99,
    "promoPrice": 14.99,
    "weight": 0.3,
    "quantity": 95,
    "category": {
      "_id": "66a1f0aae1b3a40012ab1100",
      "name": "Apparel"
    },
    "images": [
      "https://cdn.salesive.com/p/classic-tee.jpg"
    ],
    "featured": false,
    "listed": true,
    "hasVariants": false,
    "variants": [],
    "shop": {
      "_id": "66a1eee0e1b3a40012ab0001",
      "name": "Acme Store",
      "currency": {
        "symbol": "$",
        "code": "USD"
      }
    },
    "updatedAt": "2026-06-28T09:15:00.000Z"
  }
}
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:
{
"_id": "66a1f2c4e1b3a40012ab34cd",
"name": "Classic Tee",
"slug": "classic-tee",
"description": "Soft cotton t-shirt",
"price": 17.99,
"promoPrice": 14.99,
"weight": 0.3,
"quantity": 95,
"category": {
"_id": "66a1f0aae1b3a40012ab1100",
"name": "Apparel"
},
"images": [
"https://cdn.salesive.com/p/classic-tee.jpg"
],
"featured": false,
"listed": true,
"hasVariants": false,
"variants": [],
"shop": {
"_id": "66a1eee0e1b3a40012ab0001",
"name": "Acme Store",
"currency": { "symbol": "$", "code": "USD" }
},
"updatedAt": "2026-06-28T09:15:00.000Z"
}