Proposal на добавление общего параметра (уровень B, модерация, идемпотентный)

POST /v1/attributes/proposal/add

POST/v1/attributes/proposal/add

Продавец предлагает новый параметр для включения в шаблон категории. После одобрения модератором - становится общим для всех продавцов в этой категории, индексируется в фильтрах.

Жизненный цикл proposal:

  • pending - подан, ждёт модерации
  • approved - одобрен, атрибут добавлен в шаблон категории (создан attribute_id)
  • rejected - отклонён (дубликат / слишком специфичен - оставьте как custom)

Пока proposal pending - продавец может использовать атрибут как custom (уровень A), товар не блокируется модерацией.

Тело запроса

request_key
[ "string", "null" ]
Уникальный ключ идемпотентности (опционально). Формат рекомендуется: {seller_id}_{timestamp}_{attr_code} Если не передан - идемпотентность не гарантируется.
category_id
string
required
ID категории, в шаблон которой предлагается атрибут
attribute
object
required
Описание предлагаемого атрибута
Показать свойства
code
string
required
Универсальный код (напр. fabric_density)
name
string
required
description
[ "string", "null" ]
role
string
required
Роль атрибута в карточке:
  • specification - потребительский (таблица спецификаций на витрине); описывает параметр SPU (одинаковый для всех SKU)
  • property - технический (внутренний, не показывается покупателю); описывает параметр SPU
  • variation - потребительский + описывает параметр SKU (отличает варианты внутри SPU): показывается в таблице спецификаций и кнопками выбора варианта; каждая комбинация значений variation-осей = отдельный SKU со своей ценой/штрихкодом/остатком
  • property_variation - технический + описывает параметр SKU (отличает варианты внутри SPU): не показывается покупателю, но используется для различения SKU
Допустимые значения
specificationpropertyvariationproperty_variation
type
string
required
Тип данных значения:
  • string - произвольная строка
  • int - целое число
  • float - дробное число
  • enum - одно значение из справочника
  • multi - несколько значений из справочника
  • bool - да/нет
  • file - файл (изображение/документ)
  • ref - ссылка на сущность (бренд, категория, продавец)
  • color - цвет (UI: показывать свотчи, значения — enum с RGB)
  • size - размер (UI: показывать размерную сетку)
  • brand - бренд (UI: показывать выбор бренда)
Допустимые значения
stringintfloatenummultiboolfilerefcolorsizebrand
unit
max_count
[ "integer", "null" ]
max_length
[ "integer", "null" ]
min_value
[ "number", "null" ]
max_value
[ "number", "null" ]
values
[ "array", "null" ]
Предлагаемые значения (если type=enum/multi; опц.)
Показать свойства
Свойства не описаны
justification
string
required
Обоснование для модератора (почему атрибут важен)

Успешный ответ

200Результат создания proposal
application/json
object
request_key
[ "string", "null" ]
Ключ идемпотентности (эхо из запроса; пусто, если не передан)
proposal_id
string
required
status
string
required
Статус proposal:
  • pending - подан, ждёт модерации
  • approved - одобрен, атрибут добавлен в шаблон (создан attribute_id)
  • rejected - отклонён (дубликат / слишком специфичен)
Допустимые значения
pendingapprovedrejected
created_at
string
required
idempotent
[ "boolean", "null" ]
POST/v1/attributes/proposal/add
1curl https://api.omninet.ru/v1/attributes/proposal/add \2  --request POST \3  --header 'Content-Type: application/json' \4  --data '{5  "request_key": "seller_67890_20260719_170000_fabric_density",6  "category_id": "cat_fabric",7  "attribute": {8    "code": "fabric_density",9    "name": "Плотность ткани",10    "description": "Плотность ткани в г/м²",11    "role": "specification",12    "type": "float",13    "unit": {14      "code": "g_m2",15      "name": "грамм на квадратный метр",16      "symbol": "г/м²",17      "quantity": "area_density",18      "base_unit": "g_m2",19      "factor": 1,20      "locales": [21        {22          "lang": "ru",23          "name": "грамм на квадратный метр",24          "symbol": "г/м²"25        },26        {27          "lang": "zh",28          "name": "每平方米克",29          "symbol": "克/平方米"30        },31        {32          "lang": "en",33          "name": "gram per square meter",34          "symbol": "g/m²"35        }36      ]37    },38    "max_count": 1,39    "min_value": 0,40    "max_value": 1000,41    "values": []42  },43  "justification": "Покупатели часто спрашивают плотность ткани - это важно для штор и постельного белья"44}'
{
  "request_key": "seller_67890_20260719_170000_fabric_density",
  "proposal_id": "prop_001",
  "status": "pending",
  "created_at": "2026-07-19T17:00:00Z"
}

Результат создания proposal