Zernio
Zernio
API Reference

Products

List productsGETGet a productGETUpdate a productPATCH
Dashboard
llms.txtOpenAPI
OverviewPlatformsAPI ReferenceResources
Products

Update a product

Partial-updates a product. Send any subset of title, descriptionHtml, handle, vendor, productType, tags, status, seo and variants; at least one field is required (an empty body returns 400). tags replaces the full tag list. variants updates the price and compare-at price of the listed variant ids only; other variants are untouched, and a variant id that does not belong to the product is a 400. Responds with the product as it is after the update.

Supported on Shopify (platform shopify); accounts on other platforms return 400. A store connected before product access was added answers 403 insufficient_permissions until the merchant reconnects it through GET /v1/connect/shopify.


PlatformsShopify
PATCH
/v1/accounts/{accountId}/products/{productId}

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.

In: header

Path Parameters

accountId*string

Connected Shopify SocialAccount id.

productId*string

Platform-native numeric product id. Non-numeric values return 400.

Match^\d+$

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

At least one field is required.

Response Body

application/json

application/json

application/json

{  "platform": "shopify",  "product": {    "id": "string",    "platform": "shopify",    "title": "string",    "handle": "string",    "descriptionHtml": "string",    "vendor": "string",    "productType": "string",    "tags": [      "string"    ],    "status": "active",    "featuredImage": {      "url": "string",      "altText": "string"    },    "images": [      {        "url": "string",        "altText": "string"      }    ],    "options": [      {        "name": "string",        "values": [          "string"        ]      }    ],    "variants": [      {        "id": "string",        "title": "string",        "sku": "string",        "barcode": "string",        "price": "string",        "compareAtPrice": "string",        "inventoryQuantity": 0,        "availableForSale": true,        "selectedOptions": [          {            "name": "string",            "value": "string"          }        ]      }    ],    "seo": {      "title": "string",      "description": "string"    },    "totalInventory": 0,    "onlineStoreUrl": "string",    "createdAt": "2019-08-24T14:15:22Z",    "updatedAt": "2019-08-24T14:15:22Z",    "publishedAt": "2019-08-24T14:15:22Z"  }}
Was this page helpful?

Get a product

Fetches a single product with its variants, options and images. `productId` is the platform's numeric product id from `GET /v1/accounts/{accountId}/products`, not a Zernio id. Supported on Shopify (platform `shopify`); accounts on other platforms return 400.

List phone numbers

List all phone numbers purchased by the authenticated user. By default, released numbers are excluded. Connected (bring-your-own) WhatsApp numbers are returned in the separate `connected` array; they are not billed and have no provisioning lifecycle.

title?string
Length1 <= length
descriptionHtml?string

Product description as HTML.

handle?string

URL slug of the product.

Length1 <= length
vendor?string
productType?string
tags?array<string>

Replaces the full tag list.

status?string

archived hides the product everywhere; draft keeps it editable but unpublished.

Value in

  • "active"
  • "draft"
  • "archived"
seo?

Search-engine title and description overrides.

variants?array<>

Price changes per variant. Only the listed variants change.

Items1 <= items <= 100