Skip to content

Change some of the product’s overrides on one channel

PATCH
/api/v1/workspaces/{workspaceId}/products/{productId}/channels/{connectionId}/override
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" } ] }'

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.

workspaceId
required
string format: uuid
productId
required
string format: uuid
connectionId
required
string format: uuid
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

79.00
compareAtPrice
required
string
nullable

Example

99.00
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

{
"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"
}
]
}