Change part of a sales channel
A sales channel is a named selling surface — a name, a description, a disabled flag and metadata.
PATCH /v1/commerce/saleschannel/{saleschannelid}
| Address | https://api.hanzo.ai/v1/commerce/saleschannel/{saleschannelid} |
| Method | PATCH |
| Operation | patch_commerce_saleschannel_by_saleschannelid |
| Auth | Authorization: Bearer $HANZO_API_KEY |
A sales channel is a named selling surface — a name, a description, a disabled flag and metadata. The flag is NEGATIVE, so a channel created from an empty body is enabled. Nothing on this row links products, prices or stock to the channel; here it is a label other surfaces scope themselves by. Loads the stored row and decodes the body OVER it, so only the fields the body names change and everything else keeps its stored value — the difference from the full replace, which clears what it is not told. Answers the merged row. An id absent from the caller org's namespace is 404 and a body that fails to decode is 400. Any valid access token reaches it. The org must also be entitled to the commerce admin: the paywall answers 402 subscription_required unless the org holds an active or trialing pro subscription, a live trial credit or a redeemed invite, and 503 when that entitlement cannot be read rather than admitting on an unknown. The internal service token and a platform superadmin pass straight through. The per-kind permission table has no entry for saleschannel, so the scaffold skips that second check with a warning and the gate above is the whole authorization story.
Request
1 field.
| Field | In | Type | Required | Description |
|---|---|---|---|---|
saleschannelid | path | string | yes |
Response
The document declares no response body for this operation. It answers 200 on success and the platform error shape on failure — see Errors.
Examples
hanzo commerce saleschannel update <saleschannelid>import { Configuration, CommerceApi } from 'hanzoai';
const api = new CommerceApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.patchCommerceSaleschannelBySaleschannelid({ saleschannelid: 'saleschannelid' });from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import CommerceApi
client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = CommerceApi(client).patch_commerce_saleschannel_by_saleschannelid(saleschannelid='saleschannelid')cfg := cloud.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := cloud.NewAPIClient(cfg)
resp, _, err := client.CommerceAPI.PatchCommerceSaleschannelBySaleschannelid(context.Background()).Execute()
if err != nil {
return err
}use hanzo_cloud::apis::{configuration::Configuration, commerce_api};
let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();
let result = commerce_api::patch_commerce_saleschannel_by_saleschannelid(&cfg, Default::default()).await?;import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.CommerceApi;
ApiClient client = new ApiClient();
client.setRequestInterceptor(b -> b.header("Authorization", "Bearer " + System.getenv("HANZO_API_KEY")));
var result = new CommerceApi(client).patchCommerceSaleschannelBySaleschannelid();curl -X PATCH https://api.hanzo.ai/v1/commerce/saleschannel/<saleschannelid> \
-H "Authorization: Bearer $HANZO_API_KEY"The door reaches commerce through the commerce tool, which names its 215 operations with its own verbs — this one among them, under a name only the door declares. describe explains any of them:
curl -X POST https://api.hanzo.ai/v1/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe",
"arguments": {
"op": "list___commerce_deposits"
}
}
}'How is this guide?