---
title: "Change some of the product’s overrides on one channel | Crossmart Docs"
description: "Documentation for Crossmart, the open-source multichannel platform for sellers and their AI agents."
url: "https://docs.crossmart.io/developers/api/operations/productchannelscontroller_patchoverride_v1/"
---

# Change some of the product’s overrides on one channel

PATCH

/api/v1/workspaces/{workspaceId}/products/{productId}/channels/{connectionId}/override

Select code sample

```sh
curl --request PATCH \
  --url https://api.crossmart.io/api/v1/workspaces/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/products/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/channels/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/override \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <x-api-key>' \
  --data '{ "title": "example", "descriptionHtml": "example", "vendor": "example", "tags": [ "example" ], "mediaUrls": [ "example" ], "visibility": "VISIBLE", "inventoryBuffer": 1, "maxQuantity": 1, "variantPrices": [ { "variantId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "price": "79.00", "compareAtPrice": "99.00" } ] }'
```

- Crossmart Cloud

Absent fields keep their override; null reverts a field to the product’s value. Each `variantPrices` entry replaces that variant’s prices only, and both prices null revert the variant to the pricing rule. When the channel already lists the product, an update is queued.

## Authorizations

- **[api_key](https://docs.crossmart.io/developers/api/#api_key)**
- **[cookie](https://docs.crossmart.io/developers/api/#cookie)**
- **[bearer](https://docs.crossmart.io/developers/api/#bearer)**

## Parameters

### Path Parameters

**workspaceId**

required

string format: uuid

**productId**

required

string format: uuid

**connectionId**

required

string format: uuid

## Request Bodyrequired

Media typeapplication/json

object

**title**

string

nullable <= 255 characters

**descriptionHtml**

string

nullable

**vendor**

The brand this channel shows instead of the product’s vendor

string

nullable <= 255 characters

**tags**

Replaces the product’s tags

Array\<string>

nullable

**mediaUrls**

The product’s image URLs to show, in order

Array\<string>

nullable

**visibility**

Show or hide on this channel, whatever the product’s status

string

Allowed values: VISIBLE HIDDEN

**inventoryBuffer**

Units held back

number

nullable

**maxQuantity**

Most units shown

number

nullable

**variantPrices**

Array\<object>

object

**variantId**

required

string format: uuid

**price**

required

string

nullable

### Example

```json
79.00
```

**compareAtPrice**

required

string

nullable

### Example

```json
99.00
```

## Responses

### 200

Media typeapplication/json

object

**connection**

required

object

**id**

required

string format: uuid

**channel**

required

string

Allowed values: shopify ebay google_merchant etsy amazon walmart

**displayName**

required

string

**status**

required

string

Allowed values: CONNECTED NEEDS_REAUTH DISCONNECTED ERROR

**currencyCode**

required

string

**selected**

required

Whether the connection’s product selection includes it

boolean

**displayState**

required

The product on this store, in one state computed by the server: `draft` (not selected for the store), `needs_details` (selected, but the store setup or the product lacks something publishing needs), `ready` (publishable, not sent yet), `publishing` (queued or in flight, including an update of a published listing that a sync or retry queued), `published`, `failed`, `removing` (being taken off) or `removed`.

string

Allowed values: draft needs_details ready publishing published failed removing removed

**displayReason**

required

For `needs_details` and `failed`: a short, merchant-readable reason (what to add, or the channel’s message). Never holds secrets. Null for the other states.

string

nullable

**displayRequirement**

required

For `needs_details`: the requirement to fix first, so a client can open the right place. Store-setup requirements (`reconnect`, `account_settings`, `shipping_policy`, `payment_policy`, `return_policy`, `ship_from_location`, `listing_setup`) come before the product’s (`images`, `active_product`, `option_names`), which the server checks before publishing; `category` and `item_specifics` are known once the channel refused a publish. Null for the other states.

string

Allowed values: reconnect account_settings shipping_policy payment_policy return_policy ship_from_location listing_setup item_details shipping_profile processing_profile images active_product category item_specifics option_names

**listing**

required

object

**id**

required

string format: uuid

**status**

required

string

Allowed values: PENDING ACTIVE INACTIVE ERROR DELISTED

**source**

required

How the product joined the store: by hand, by an import, or by the automatic rule

string

Allowed values: MANUAL IMPORT RULE

**externalId**

required

The product’s id on the channel

string

nullable

**externalUrl**

required

Where to see it on the channel

string

nullable

**lastError**

required

Why the last sync failed

string

nullable

**missingRequirement**

required

What the channel refused the last publish for lacking (such as `item_specifics`), when the merchant can add it; null otherwise

string

Allowed values: reconnect account_settings shipping_policy payment_policy return_policy ship_from_location listing_setup item_details shipping_profile processing_profile images active_product category item_specifics option_names

**lastSyncedAt**

required

string format: date-time

nullable

**syncRequestedAt**

required

When a sync or retry queued its publish, update or delist; null once that job finished or gave up. While set, a selected listing shows `displayState: publishing`.

string format: date-time

nullable

**category**

required

The channel category it is listed in, on channels with categories (eBay)

object

**id**

required

string

**name**

required

The category with its ancestors, as the channel shows it

string

**override**

required

object

**title**

required

string

nullable

**descriptionHtml**

required

string

nullable

**vendor**

required

string

nullable

**tags**

required

Array\<string>

nullable

**mediaUrls**

required

Array\<string>

nullable

**visibility**

required

string

Allowed values: VISIBLE HIDDEN

**inventoryBuffer**

required

number

nullable

**maxQuantity**

required

number

nullable

**variantPrices**

required

Array\<object>

object

**variantId**

required

string format: uuid

**price**

required

string

nullable

**compareAtPrice**

required

string

nullable

**updatedAt**

required

string format: date-time

**variants**

required

Array\<object>

object

**variantId**

required

string format: uuid

**title**

required

string

**price**

required

object

**price**

required

string

**compareAtPrice**

required

string

nullable

**source**

required

string

Allowed values: override rule base

**steps**

required

Array\<object>

object

**kind**

required

string

Allowed values: base conversion percent fixed_amount rounding floor override

**label**

required

string

**amount**

required

The price after this step

string

**explanation**

required

string

**warnings**

required

Array\<string>

Allowed values: missing_cost below_floor compare_at_dropped clamped_to_zero no_exchange_rate

**unitCost**

required

The variant cost in the channel currency, converted like the price

string

nullable

**rulePrice**

required

In the store’s currency: what its pricing rule gives, before a fixed price on the listing. Equal to the effective price unless the price is overridden.

string

**quantity**

required

The stock the channel shows; null when the variant does not track stock

number

nullable

#### Example

```json
{
  "connection": {
    "channel": "shopify",
    "status": "CONNECTED",
    "currencyCode": "USD"
  },
  "displayState": "draft",
  "displayReason": "Choose a shipping policy in this eBay connection’s listing defaults.",
  "displayRequirement": "reconnect",
  "listing": {
    "status": "PENDING",
    "source": "MANUAL",
    "missingRequirement": "reconnect",
    "category": {
      "id": "20625",
      "name": "Home & Garden > Kitchen, Dining & Bar > Dinnerware & Serving Dishes > Mugs"
    }
  },
  "override": {
    "visibility": "VISIBLE",
    "variantPrices": [
      {
        "price": "79.00",
        "compareAtPrice": "99.00"
      }
    ]
  },
  "variants": [
    {
      "title": "Blue / Large",
      "price": {
        "price": "102.99",
        "source": "override",
        "steps": [
          {
            "kind": "base",
            "label": "+15%",
            "amount": "102.35"
          }
        ],
        "explanation": "$89.00 → +15% → .99 = $102.99",
        "warnings": [
          "missing_cost"
        ]
      },
      "rulePrice": "102.99"
    }
  ]
}
```
