Skip to content
v0.3

catalog.category.set_custom_fields

Set the declared custom fields on a category — MERGES by key: a key you do not name is left alone, and a null value removes one (an empty map is refused). Unlike cart.set_custom_fields, which replaces its bags, because this one is shared by the merchant, apps and the kernel.

  • Scope: catalog.category.write
  • System: no
  • Reachable from: POST /v1/commands/catalog.category.set_custom_fields — the tenant data face, with a tenant credential carrying catalog.category.write · MCP tool catalog.category.set_custom_fields · SDK client.call('catalog.category.set_custom_fields', …)
  • Events: none — No public read projects a category’s custom fields — the category doc carries description, banner and meta, not the field bag. Nothing in the kernel derives from them either, so an event here would be outbox volume with no reader.
{
"properties": {
"category_id": {
"minLength": 1,
"type": "string"
},
"custom_fields": {
"additionalProperties": {},
"propertyNames": {
"type": "string"
},
"type": "object"
}
},
"required": [
"category_id",
"custom_fields"
],
"type": "object"
}
{
"additionalProperties": false,
"properties": {
"category_id": {
"type": "string"
}
},
"required": [
"category_id"
],
"type": "object"
}

validation_failed (400) · unauthorized (401) · forbidden (403) · conflict (409) · internal (500)