---
title: "Update a collection"
method: PATCH
path: "/v1/commerce/collections/{collectionId}"
tags: ["Commerce"]
---

# Update a collection

`PATCH /v1/commerce/collections/{collectionId}`

Partial update; at least one field besides accountId is required. Change membership with POST /v1/commerce/collections/{collectionId}/products.

## Path parameters

- `collectionId` string, required

## Request body

- object
  - `accountId` string, required
  - `title` string
  - `descriptionHtml` string
  - `handle` string
  - `sortOrder` 'manual' | 'best_selling' | 'alpha_asc' | 'alpha_desc' | 'price_asc' | 'price_desc' | 'created' | 'created_desc' | 'most_relevant'
  - `seo` object
    - `title` string
    - `description` string
  - `image` object
    - `url` string, uri, required
    - `altText` string

## Response `200`

Collection updated

- object
  - `collection` CommerceCollection — A product collection on a connected store.
    - `id` string — Platform-native collection id.
    - `accountId` string
    - `platform` 'shopify' | 'woocommerce'
    - `title` string
    - `handle` string, nullable
    - `descriptionHtml` string, nullable
    - `image` CommerceImage
      - `id` string, nullable — Media id, used to reorder or remove images. Null for collection images.
      - `url` string
      - `altText` string, nullable
    - `sortOrder` 'manual' | 'best_selling' | 'alpha_asc' | 'alpha_desc' | 'price_asc' | 'price_desc' | 'created' | 'created_desc' | 'most_relevant'
    - `productCount` integer, nullable — Updates a few seconds after a membership change.
    - `seo` object
      - `title` string, nullable
      - `description` string, nullable
    - `updatedAt` string, date-time, nullable
    - `platformData` object, nullable

## Other responses

- `400` — Invalid request
- `401` — Unauthorized
- `403` — The platform rejected the request (code insufficient_permissions). Reconnect the store.
- `404` — Account not found (code account_not_found) or collection not found (code resource_not_found).
- `429` — Rate limited, either by Zernio or by the platform. Retry later.

## Changes

- **2026-09-30** `16a7b9d5373e` — 1 info
  - removed the `platform` enum value from the `details/budgetScope` response property for the response status `400`
- **2026-09-29** `69bbe3da3a18` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/commerce/collections/:collectionId/patch.md)

---

[API](https://skmtc.dev/zernio/apis/zernio-api.md) · [All operations](https://skmtc.dev/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zernio/apis/zernio-api/revisions/16a7b9d5373e?raw)
