---
title: "Создать товар/категорию"
method: POST
path: "/goods"
tags: ["Goods"]
---

# Создать товар/категорию

`POST /goods`

Создание товара или категории в UDS. После успешного создания, товар отобразится в UDS, а идентификатор созданной категории можно будет использовать для указания `nodeId` при создании других товаров, а также для получения списка товаров. 

### Основные моменты 
* Тип создаваемого объекта указывается в поле `data.type`. Допустимо 3 значения: 
  - `CATEGORY` - для создания категории товаров 
  - `ITEM` - для создания товара 
  - `VARYING_ITEM` - для создания товара с вариантами 
* Можно создать подкатегорию в категории (допускается три уровня вложенности).  
* Можно создать 20 категорий в основном списке, по 20 подкатегорий для каждой категории и по 20 подкатегорий для каждой подкатегории.  
* Для создания товара без категории следует указать значение `null` в поле `nodeId` 
* Для создания товара без ограничения по количеству следует указать значение `null` в поле `inStock`.  

 |Статус|Код ошибки|Описание| 
|--- |--- |--- | 
|`400`|badRequest|Возникли ошибки при валидации. Для получения подробной информации об ошибке обратитесь к полю `errors`.| 
|`400`|goods.nodeIndex.invalid|Для создания категории указание идентификатора `nodeId` недопустимо| 
|`400`|goods.limitIsReached|Превышен лимит количества товаров| 
|`401`|unauthorized|Неверно указан ID компании или API Key|

## Request body

- GoodsDetailed — Свойства товара / категории.
  - `id` integer — ID товара.
  - `name` string, required — Название товара / категории.
  - `nodeId` integer, nullable — ID категории, в которой находится товар / категория.
  - `externalId` string, nullable — Внешний идентификатор товара / категории.
  - `dateCreated` string, date-time — Дата создания товара / категории.
  - `data` union, required — Свойства товара в зависимости от типа. Использует дискриминатор по полю `type`: CATEGORY — папка для организации товаров, ITEM — простой товар с ценой и остатками, VARYING_ITEM — товар с вариантами (например, размеры, цвета).
    - object
      - `type` 'CATEGORY' | 'ITEM' | 'VARYING_ITEM', required
    - object
      - `type` 'CATEGORY' | 'ITEM' | 'VARYING_ITEM', required
      - `sku` string, nullable — Артикул товара.
      - `price` number — Цена товара.
      - `description` string, nullable — Описание товара.
      - `offer` object, nullable — Акционный товар.
        - `offerPrice` number, nullable — Цена по акции.
        - `skipLoyalty` boolean — Не применять бонусную программу на товар.
      - `inventory` GoodsInventory, nullable — Доступное количество товара.
        - `inStock` integer, nullable — Доступное количество товара. Значение "null" обозначает - неограниченное количество.
      - `photos` string[] — Список идентификаторов изображений товара.
      - `measurement` 'PIECE' | 'CENTIMETRE' | 'METRE' | 'MILLILITRE' | 'LITRE' | 'GRAM' | 'KILOGRAM' | 'TON' | 'SQUARE_METRE' | 'CUBIC_METRE' | 'DAY' | 'HOUR' | 'MINUTE' | 'KILOMETRE' — Единицы измерения товаров.
      - `increment` number, nullable — Количество товара, которое покупатель может добавить или убрать за 1 шаг.
      - `minQuantity` number, nullable — Минимальное количество товара для заказа.
      - `vatCode` 'NO_NDS' | 'NDS_0' | 'NDS_10' | 'NDS_20' | 'NDS_10_110' | 'NDS_20_120', nullable — Коды ставок НДС.
      - `paymentSubject` 'COMMODITY' | 'EXCISE' | 'SERVICE', nullable — Признак предмета расчета: `COMMODITY` - Товар, `EXCISE` - Подакцизный товар, `SERVICE` - Услуга.
    - object — Товар с несколькими вариантами (например, размеры, цвета, вкусы). Каждый вариант имеет своё название, цену и остатки.
      - `type` 'CATEGORY' | 'ITEM' | 'VARYING_ITEM', required
      - `variants` GoodsVariantType[] — Список вариантов товара.
        - `name` string — Название варианта.
        - `sku` string, nullable — Артикул варианта.
        - `price` number — Цена варианта.
        - `offer` object, nullable — Акционный товар.
          - `offerPrice` number, nullable — Цена по акции.
          - `skipLoyalty` boolean — Не применять бонусную программу на товар.
        - `inventory` GoodsInventory, nullable — Доступное количество товара.
          - `inStock` integer, nullable — Доступное количество товара. Значение "null" обозначает - неограниченное количество.
      - `description` string, nullable — Описание товара с вариантами.
      - `photos` string[] — Список идентификаторов изображений товара.
      - `vatCode` 'NO_NDS' | 'NDS_0' | 'NDS_10' | 'NDS_20' | 'NDS_10_110' | 'NDS_20_120', nullable — Коды ставок НДС.
      - `paymentSubject` 'COMMODITY' | 'EXCISE' | 'SERVICE', nullable — Признак предмета расчета: `COMMODITY` - Товар, `EXCISE` - Подакцизный товар, `SERVICE` - Услуга.
  - `hidden` boolean, nullable — Скрыт ли товар / категория.
  - `blocked` boolean, nullable — Заблокирован ли товар / категория.
  - `imageUrls` string[] — Список ссылок на изображение товара.

## Response `200`

Созданный товар или категория.

- GoodsDetailed — Свойства товара / категории.
  - `id` integer — ID товара.
  - `name` string, required — Название товара / категории.
  - `nodeId` integer, nullable — ID категории, в которой находится товар / категория.
  - `externalId` string, nullable — Внешний идентификатор товара / категории.
  - `dateCreated` string, date-time — Дата создания товара / категории.
  - `data` union, required — Свойства товара в зависимости от типа. Использует дискриминатор по полю `type`: CATEGORY — папка для организации товаров, ITEM — простой товар с ценой и остатками, VARYING_ITEM — товар с вариантами (например, размеры, цвета).
    - object
      - `type` 'CATEGORY' | 'ITEM' | 'VARYING_ITEM', required
    - object
      - `type` 'CATEGORY' | 'ITEM' | 'VARYING_ITEM', required
      - `sku` string, nullable — Артикул товара.
      - `price` number — Цена товара.
      - `description` string, nullable — Описание товара.
      - `offer` object, nullable — Акционный товар.
        - `offerPrice` number, nullable — Цена по акции.
        - `skipLoyalty` boolean — Не применять бонусную программу на товар.
      - `inventory` GoodsInventory, nullable — Доступное количество товара.
        - `inStock` integer, nullable — Доступное количество товара. Значение "null" обозначает - неограниченное количество.
      - `photos` string[] — Список идентификаторов изображений товара.
      - `measurement` 'PIECE' | 'CENTIMETRE' | 'METRE' | 'MILLILITRE' | 'LITRE' | 'GRAM' | 'KILOGRAM' | 'TON' | 'SQUARE_METRE' | 'CUBIC_METRE' | 'DAY' | 'HOUR' | 'MINUTE' | 'KILOMETRE' — Единицы измерения товаров.
      - `increment` number, nullable — Количество товара, которое покупатель может добавить или убрать за 1 шаг.
      - `minQuantity` number, nullable — Минимальное количество товара для заказа.
      - `vatCode` 'NO_NDS' | 'NDS_0' | 'NDS_10' | 'NDS_20' | 'NDS_10_110' | 'NDS_20_120', nullable — Коды ставок НДС.
      - `paymentSubject` 'COMMODITY' | 'EXCISE' | 'SERVICE', nullable — Признак предмета расчета: `COMMODITY` - Товар, `EXCISE` - Подакцизный товар, `SERVICE` - Услуга.
    - object — Товар с несколькими вариантами (например, размеры, цвета, вкусы). Каждый вариант имеет своё название, цену и остатки.
      - `type` 'CATEGORY' | 'ITEM' | 'VARYING_ITEM', required
      - `variants` GoodsVariantType[] — Список вариантов товара.
        - `name` string — Название варианта.
        - `sku` string, nullable — Артикул варианта.
        - `price` number — Цена варианта.
        - `offer` object, nullable — Акционный товар.
          - `offerPrice` number, nullable — Цена по акции.
          - `skipLoyalty` boolean — Не применять бонусную программу на товар.
        - `inventory` GoodsInventory, nullable — Доступное количество товара.
          - `inStock` integer, nullable — Доступное количество товара. Значение "null" обозначает - неограниченное количество.
      - `description` string, nullable — Описание товара с вариантами.
      - `photos` string[] — Список идентификаторов изображений товара.
      - `vatCode` 'NO_NDS' | 'NDS_0' | 'NDS_10' | 'NDS_20' | 'NDS_10_110' | 'NDS_20_120', nullable — Коды ставок НДС.
      - `paymentSubject` 'COMMODITY' | 'EXCISE' | 'SERVICE', nullable — Признак предмета расчета: `COMMODITY` - Товар, `EXCISE` - Подакцизный товар, `SERVICE` - Услуга.
  - `hidden` boolean, nullable — Скрыт ли товар / категория.
  - `blocked` boolean, nullable — Заблокирован ли товар / категория.
  - `imageUrls` string[] — Список ссылок на изображение товара.

---

[API](https://skmtc.dev/uds/apis/uds-api-2.md) · [All operations](https://skmtc.dev/uds/apis/uds-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/uds/uds-api-2/revisions/f4f284d76ad0/schema)
