openapi: 3.1.0
info:
  version: ''
  title: Apicore Dealer API
  description: |
    >__Начало работы__
      * Для запросов в API используется метод `POST`
      * Для подключения нужен Api-ключ
      (Получить `<Api-ключ>` можно в разделе кабинета "Настройки")
      * Тело запроса raw должно быть в формате `JSON`
      * Ответ отдается также в формате `JSON`

    {% admonition type="info" %}
      **Интерфейс API:** [https://api.apicore.one](https://api.apicore.one)
    {% /admonition %}

    > **Заголовки запроса** ***(Headers)***
    ```
    POST / HTTP 1.1
    Host: https://api.apicore.one
    Api-Key: <Api-ключ>
    Content-Type: application/json
    Accept: application/json
    ```

    {% admonition type="danger" name="Внимание!" %}
      Не передавайте Api-ключ посторонним лицам! 
    {% /admonition %}

    {% admonition type="warning" %}
      На запросы по API действует правило - не более 2-х запросов в секунду.  
      
      Если от вас поступает слишком много ошибочных или одинаковых запросов, мы можем ограничить доступ к API
    {% /admonition %}

    {% admonition type="info" %}
      Если вам требуется дополнительная функциональность в API, пишите на <a href="mailto:support@apicore.one" target="_blank">support@apicore.one</a>, с радостью рассмотрим предложения.
    {% /admonition %}

    {% cards %}
      {% card title="Telegram" icon="../images/telegram.svg" to="https://t.me/apicore_dealer" variant="elevated" %}
        Kанал по актуальным обновлениям. 
      {% /card %}
    {% /cards %}
  contact:
    name: Связаться с поддержкой
    email: support@apicore.one
  x-logo:
    url: ./logo.svg
    altText: Apicore logo
servers:
  - url: https://api.apicore.one
    description: Основной сервер
security:
  - api_key_auth: []
x-tagGroups:
  - name: Общие методы
    tags:
      - Api-ключ
  - name: Каталоги Дистрибьюторов
    tags:
      - Категории каталогов Дистрибьюторов
      - Товары Дистрибьюторов
  - name: Каталоги Дилера
    tags:
      - Работа с каталогами Дилера
      - Категории каталогов
      - Товары каталогов
  - name: Источники дилера
    tags:
      - Работа с источниками дилера
      - Категории источников
      - Товары источников
  - name: Стек импорта
    tags:
      - Работа со стеком импорта
paths:
  /dealer/v1/key.check:
    post:
      operationId: key-check
      tags:
        - Api-ключ
      summary: Проверка ключа
      description: >
        > Для быстрой тестовой проверки подключения к API можно использовать
        этот метод. Он не требует наличия тела запроса. 

        Нужно только в Header-заголовке “Api-Key” указать Api-ключ. Работает без
        тела запроса.
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      responses:
        '200':
          description: Подключение успешно
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simpleResponsesSchema'
              example:
                status: true
                message: Подключение успешно
        '400':
          description: Неверный запрос
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/simpleResponsesSchema'
              examples:
                no-api-key:
                  value:
                    status: false
                    message: Header заголовок Api-Key не найден
                no-post:
                  value:
                    status: false
                    message: Api работает только через POST запрос
        '401':
          description: Неверный API ключ
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simpleResponsesSchema'
              example:
                status: false
                message: Пользователь не найден
        '404':
          description: Некорректный метод
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simpleResponsesSchema'
              example:
                status: false
                message: Метод не найден
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
        '500':
          description: Внутренняя ошибка сервера
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simpleResponsesSchema'
              example:
                status: false
  /dealer/v1/distrib.category.list:
    post:
      operationId: distrib-catalog-list
      tags:
        - Категории каталогов Дистрибьюторов
      summary: Получение списка категорий
      description: >
        > Метод возвращает полный список категорий каталога требуемого
        Дистрибьютора.
          {% admonition type="info" %}
            Более подробную информацию о получении _"Уникального идентификатора"_ можно получить, перейдя по ссылке  в раздел [__Дистрибьюторы__](https://docs.apicore.one/cabinet/dealer/section-guide/distributors) пользовательской документации __Кабинета Дилера__.
          {% /admonition %}
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                distributor_id:
                  type: string
                  description: Уникальный идентификатор Дистрибьютора.
              required:
                - distributor_id
            example:
              distributor_id: b4d0d204
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  categories:
                    description: Массив категорий.
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          description: Уникальный идентификатор категории.
                          type: number
                        name:
                          description: Название категории
                          type: string
                        date_update:
                          description: Дата последнего обновления категории
                          format: date-time
                          type: string
                        depth_level:
                          description: Уровень вложенности категории в каталоге
                          type: number
                  count:
                    description: Количество категорий в текущем ответе
                    type: number
              example:
                status: true
                categories:
                  - id: 5
                    name: Комплектующие
                    date_update: 22.04.2023 08:59:02
                    depth_level: 1
                  - id: 6
                    name: Видеонаблюдение
                    date_update: 22.04.2023 08:59:02
                    depth_level: 1
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simpleResponsesSchema'
              example:
                status: false
                message: Не указан ID дистрибьютора.
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/distrib.product.full:
    post:
      operationId: distrib-product-full
      tags:
        - Товары Дистрибьюторов
      summary: Получение полного набора данных о товаре
      description: |
        > Отдает полный набор данных по товару.
          Отдает по 200 товаров на запрос.
        {% admonition type="warning" %}
           На сбор товаров есть ограничение – не более 2х раз в день.
        {% /admonition %}
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                distributor_id:
                  type: string
                  description: id дистрибьютора, который можно получить в кабинете дилера
                catalog_code:
                  type: string
                  description: >-
                    если у дистрибьютора несколько каталогов можно указать код
                    нужного каталога
                limit:
                  type: number
                  description: Oграничение по количеству элементов в ответе
                offset:
                  type: number
                  description: сдвиг для получения следующих товаров
                webp:
                  type: boolean
                  description: Если нужны картинки в формате webp
              required:
                - distributor_id
            example:
              distributor_id: d9262a56
              catalog_code: main
              limit: 1
              offset: 0
              webp: true
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  products:
                    type: array
                    description: Массив товаров
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                          description: Уникальный идентификатор товара
                        name:
                          type: string
                          description: Название товара
                        long_name:
                          type: string
                          description: Полное название товара
                        category_id:
                          type: number
                          description: Уникальный идентификатор категории
                        category_name:
                          type: string
                          description: Название категории
                        vendor:
                          type: string
                          description: Бренд
                        vendor_code:
                          type: string
                          description: Артикул
                        barcode:
                          type: string
                          description: Штрихкод
                        inner_code:
                          type: string
                          description: >-
                            Любой уникальный код товара во внутренней системе
                            дистрибьютора
                        quality:
                          type: string
                          description: Качество товара
                        distributor_id:
                          type: string
                          description: Уникальный идентификатор дистрибьютора
                        description:
                          type: string
                          description: Описание товара
                        images:
                          type: array
                          description: Массив ссылок на изображения товара
                          items:
                            type: string
                        prices:
                          type: object
                          description: Объект с ценами товара
                          properties:
                            purchase:
                              type: object
                              description: Объект с ценой и наименованием валюты
                              properties:
                                price:
                                  type: number
                                  format: float
                                  description: Цена закупки
                                currency:
                                  type: string
                                  description: Код валюты
                        quantity:
                          type: number
                          description: Остаток товара
                        props:
                          type: array
                          description: Массив с свойствами товара
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                description: Название параметра
                              value:
                                type: string
                                description: Значение параметра
                        params:
                          type: object
                          description: Объект с параметрами товара
                          properties:
                            weight:
                              type: number
                              description: Вес товара
                            width:
                              type: number
                              description: Ширина товара
                            height:
                              type: number
                              description: Высота товара
                            length:
                              type: number
                              description: Длинна товара
                            weight_unit:
                              type: string
                              description: Единица измерения веса товара
                            dimensions_unit:
                              type: string
                              description: Единица измерения размера товара
                  total:
                    type: number
                    description: общее количество товаров
                  count:
                    type: number
                    description: Количество товаров в текущем ответе
                  limit:
                    type: number
                    description: Oграничение по количеству элементов в ответе
                  offset:
                    type: number
                    description: Параметр текущего смещения.
                  next_offset:
                    type: number
                    description: >-
                      Параметр смещения для получения следующего списка товаров.
                      Служит для определения, нужен ли еще один запрос.
              example:
                status: true
                products:
                  - id: 29
                    name: Жесткий диск HDD 2Tb Seagate Barracuda8
                    long_name: >-
                      Жесткий диск HDD 2Tb Seagate Barracuda SATA6Gb/s 7200rpm
                      256Mb 3,5\" ST2000DM008"
                    category_id: 27
                    category_name: Жесткие диски
                    vendor: Seagate
                    vendor_code: ST2000DM008
                    barcode: ''
                    inner_code: '20886'
                    quality: new
                    distributor_id: 265b0478
                    description: >-
                      Универсальный жесткий диск для настольного компьютера или
                      моноблока. Данный HDD также подходит для домашнего сервера
                      или системы хранения данных DAS начального уровня.
                    images:
                      - >-
                        http://api.apicore.kz/upload/apicore_product/bf625afa/29_402a3480ebca97c8.jpg
                    prices:
                      purchase:
                        price: 29835
                        currency: KZT
                    quantity: 238
                    props:
                      - name: Серия
                        value: Barracuda
                      - name: Емкость накопителя
                        value: 2ТБ
                      - name: Кэш/Буфер
                        value: 256МБ
                      - name: Формат накопителя
                        value: 3.5'
                      - name: Производитель
                        value: Seagate
                      - name: Название для комплектаций
                        value: HDD 2Тb
                      - name: EAN
                        value: '8719706002981'
                    params:
                      weight: 380
                      width: 100
                      height: 140
                      length: 20
                      weight_unit: g
                      dimensions_unit: mm
                total: 562
                count: 200
                limit: 1
                offset: 0
                next_offset: 200
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/simpleResponsesSchema'
              examples:
                not-distributor-id:
                  value:
                    status: false
                    message: Не указан ID дистрибьютора
                not-access-to-catalog:
                  value:
                    status: false
                    message: >-
                      У вас нет доступа к каталогу этого дистрибьютора. Создайте
                      запрос Дистрибьютору в личном кабинете Apicore
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/distrib.product.list:
    post:
      operationId: distrib-product-list
      tags:
        - Товары Дистрибьюторов
      summary: Получение товаров каталогов Дистрибьюторов
      description: >
        > Метод возвращает список базовых карточек товаров из каталога
        требуемого Дистрибьютора. 
          Возвращаются только активные товары, доступные к продаже.

          Один запрос возвращает до 1000 товаров. Чтобы получить следующие 1000 товаров добавьте в тело запроса параметр смещения `offset` : 1000

          В ответе возвращается параметр `total`, содержащий общее количество товаров. Если `offset` будет больше, 
          чем `total`, то будет возвращаться значение из `offset` с пустым массивом товаров.
          В ответе возвращается параметр `count`, содержащий количество товаров в ответе.

          Для определения, нужен ли еще один запрос, чтобы получить следующие 1000 товаров, в ответе возвращается 
          параметр `next_offset`. 
          Если он есть, можно подставлять значение из этого параметра в `offset` следующего запроса. 
          Если `next_offset` отсутствует, значит вы получили весь список товаров.
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                distributor_id:
                  type: string
                  description: Уникальный идентификатор Дистрибьютора.
                limit:
                  type: number
                  description: Oграничение по количеству элементов в ответе
                offset:
                  type: number
                  description: Параметр смещения для получения следующего списка товаров.
              required:
                - distributor_id
            example:
              distributor_id: b4d0d204
              limit: 2
              offset: 0
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  products:
                    type: array
                    description: Массив с карточками товаров
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                          description: Уникальный идентификатор карточки товара
                        name:
                          type: string
                          description: Название карточки товара
                        long_name:
                          type: string
                          description: >-
                            Полное название товара с перечислением некоторых
                            особенностей
                        category_id:
                          type: number
                          description: >-
                            Уникальный идентификатор категории каталога
                            Дистрибьютора
                        barcode:
                          type: string
                          description: Штрихкод
                        vendor:
                          type: string
                          description: Бренд
                        vendor_code:
                          type: string
                          description: Артикул
                        inner_code:
                          type: string
                          description: >-
                            Любой уникальный код товара во внутренней системе
                            дистрибьютора
                        quality:
                          type: string
                          description: Качество товара
                        distributor_id:
                          type: string
                          description: Уникальный идентификатор Дистрибьютора
                  total:
                    type: number
                    description: общее количество товаров
                  count:
                    type: number
                    description: Количество товаров в текущем ответе
                  limit:
                    type: number
                    description: Oграничение по количеству элементов в ответе
                  offset:
                    type: number
                    description: Параметр текущего смещения.
                  next_offset:
                    type: number
                    description: >-
                      Параметр смещения для получения следующего списка товаров.
                      Служит для определения, нужен ли еще один запрос.
              example:
                status: true
                products:
                  - id: 20
                    name: Батарейка DURACELL Basic АА 4шт LR6
                    long_name: >-
                      Батарейки Duracell пальчиковые AA LR6/MN1500, 1.5 V, 4 шт.
                      в упаковке
                    category_id: 68
                    barcode: ''
                    vendor: DURACELL
                    vendor_code: '81545403'
                    inner_code: '19817'
                    quality: new
                    distributor_id: b4d0d204
                  - id: 21
                    name: Жесткий диск HDD  1Tb Seagate BarraCuda SATA6Gb/s
                    long_name: >-
                      Жесткий диск HDD 1Tb Seagate BarraCuda SATA6Gb/s, 7200rpm,
                      64Mb, 3.5, ST1000DM010
                    category_id: 27
                    barcode: ''
                    vendor: Seagate
                    vendor_code: ST1000DM010
                    inner_code: '17746'
                    quality: new
                    distributor_id: b4d0d204
                total: 1409
                count: 1000
                limit: 2
                offset: 0
                next_offset: 1000
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/simpleResponsesSchema'
              examples:
                not-distributor-id:
                  value:
                    status: false
                    message: Не указан ID дистрибьютора
                not-access-to-catalog:
                  value:
                    status: false
                    message: >-
                      У вас нет доступа к каталогу этого дистрибьютора. Создайте
                      запрос Дистрибьютору в личном кабинете Apicore
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/distrib.product.prices:
    post:
      operationId: (v1)distrib-product-prices
      tags:
        - Товары Дистрибьюторов
      summary: Получение цен товаров
      description: >
        {% admonition type="warning" %}
          Метод устарел! Используйте метод [/dealer/v2/distrib.product.prices](/api/dealer/tovary-distribyutorov/distrib-product-prices)
        {% /admonition %}


        > Метод возвращает цены всех товаров по всем доступным Дистрибьюторам.

        Запрос может содержать указание `id дистрибьютора` или `id товаров` для
        получения фильтрованных данных по конкретным товарам.

         Один запрос возвращает до 1000 записей цен. Если в запросе указано больше `id товаров`, ответ будет ограничен первыми 1000.

          В ответе возвращается массив `products`, который содержит указание цены и валюты по каждому найденному товару.
          Также возвращается массив `not_found_id`, который содержит в себе `id товаров`, которые не были найдены у Дистрибьютора, либо эти товары не активны и отсутствуют в продаже.
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      x-badges:
        - name: устаревший
          deprecated: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/productIdOrDistributorIdRequestSchema'
            examples:
              product-id-request:
                value:
                  product_id:
                    - 4803
                    - 21
                    - 22
                    - 19
                    - 20
              distributor-id-request:
                value:
                  distributor_id:
                    - 338a196c
                    - 238a196f
                    - 34ea279a
                  limit: 3
                  offset: 0
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  products:
                    type: array
                    description: Массив товаров с ценами
                    items:
                      type: object
                      properties:
                        product_id:
                          type: number
                          description: Уникальный идентификатор товара
                        price:
                          type: number
                          format: float
                          description: Стоимость товара
                        currency:
                          type: string
                          description: Код валюты
                        rrp:
                          type: number
                          format: float
                          description: Рекомендованная розничная стоимость
                  not_found_id:
                    type: array
                    description: Массив ненайденных ID товаров
                    items:
                      type: number
                  total:
                    type: number
                    description: Общее количество товаров
                  count:
                    type: number
                    description: Количество товаров в запросе
                  offset:
                    type: number
                    description: Параметр текущего смещения.
                  next_offset:
                    type: number
                    description: >-
                      Параметр смещения для получения следующего списка товаров.
                      Служит для определения, нужен ли еще один запрос.
              example:
                status: true
                products:
                  - product_id: 20
                    price: 1785
                    currency: KZT
                    rrp: 2000
                  - product_id: 21
                    price: 16330
                    currency: KZT
                    rrp: 17990
                  - product_id: 22
                    price: 16100
                    currency: KZT
                    rrp: 17990
                not_found_id:
                  - 4803
                  - 19
                total: 1409
                count: 1000
                limit: 3
                offset: 0
                next_offset: 1000
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simpleResponsesSchema'
              example:
                status: false
                message: У вас нет доступа к указанным Дистрибьюторам
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v2/distrib.product.prices:
    post:
      operationId: distrib-product-prices
      tags:
        - Товары Дистрибьюторов
      summary: Получение цен товаров
      description: >

        > Метод возвращает цены всех товаров по всем доступным Дистрибьюторам.
        Запрос может содержать указание id дистрибьютора или id товаров для
        получения фильтрованных данных по конкретным товарам.

         Один запрос возвращает до 1000 записей цен. Если в параметре product_id указано больше 1000 id товаров, ответ будет ограничен первыми 1000.
         Чтобы получить следующие 1000 товаров добавьте в тело запроса параметр смещения offset: 1000

         Для определения, нужен ли еще один запрос, чтобы получить следующие 1000 товаров, в ответе возвращается параметр next_offset.
         Если он есть, можно подставлять значение из этого параметра в offset следующего запроса.
         Если next_offset отсутствует, значит вы получили весь список товаров.
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                distributor_id:
                  type: array
                  description: Массив ID дистрибьюторов
                  items:
                    type: string
                    description: Уникальный идентификатор Дистрибьютора.
                product_id:
                  type: array
                  description: Массив ID товаров
                  items:
                    type: number
                    description: Уникальный идентификатор товара
                limit:
                  type: number
                  description: Oграничение по количеству элементов в ответе
                offset:
                  type: number
                  description: Параметр смещения для получения следующего списка товаров.
            example:
              distributor_id:
                - 265b0478
                - 34fa23fb
              product_id:
                - 28
                - 37
                - 45
                - 46
              limit: 2
              offset: 0
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  products:
                    type: array
                    description: Массив товаров с ценами
                    items:
                      type: object
                      properties:
                        product_id:
                          type: number
                          description: Уникальный идентификатор товара
                        purchase:
                          type: object
                          description: Дилерская цена (цена покупки)
                          properties:
                            price:
                              type: number
                              format: float
                              description: Стоимость товара
                            currency:
                              type: string
                              description: Код валюты
                        rrp:
                          type: object
                          description: Рекомендованная розничная стоимость
                          properties:
                            price:
                              type: number
                              format: float
                              description: Стоимость товара
                            currency:
                              type: string
                              description: Код валюты
                  not_found_id:
                    type: array
                    description: Массив ненайденных ID товаров
                    items:
                      type: number
                  offset:
                    type: number
                    description: Параметр текущего смещения.
                  next_offset:
                    type: number
                    description: >-
                      Параметр смещения для получения следующего списка товаров.
                      Служит для определения, нужен ли еще один запрос.
                  total:
                    type: number
                    description: Общее количество товаров
                  count:
                    type: number
                    description: Количество товаров в запросе
              example:
                status: true
                products:
                  - product_id: 28
                    purchase:
                      price: 70000
                      currency: KZT
                    rrp:
                      price: 84990
                      currency: KZT
                  - product_id: 37
                    purchase:
                      price: 21250
                      currency: KZT
                not_found_id:
                  - 45
                  - 46
                limit: 2
                offset: 0
                next_offset: 1000
                total: 1160
                count: 1000
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simpleResponsesSchema'
              example:
                status: false
                message: У вас нет доступа к указанным Дистрибьюторам
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/distrib.product.quantities:
    post:
      operationId: distrib-product-quantities
      tags:
        - Товары Дистрибьюторов
      summary: Получение остатков товаров
      description: >
        > Метод возвращает остатки всех товаров по всем доступным
        Дистрибьюторам.

        Запрос может содержать указание `id дистрибьютора` или `id товаров` для
        получения фильтрованных данных по конкретным товарам.

         Один запрос возвращает до 1000 записей остатков. Если в запросе указано больше `id товаров`, ответ будет ограничен первыми 1000.

          В ответе возвращается массив `products`, который содержит остатки найденных товаров
          Также возвращается массив `not_found_id`, который содержит в себе `id товаров`, которые не были найдены 
          у Дистрибьютора, либо эти товары не активны и отсутствуют в продаже. 
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/productIdOrDistributorIdRequestSchema'
            examples:
              product-id-request:
                value:
                  product_id:
                    - 4803
                    - 21
                    - 22
                    - 19
                    - 20
              distributor-id-request:
                value:
                  distributor_id:
                    - 338a196c
                    - 238a196f
                    - 34ea279a
                  limit: 3
                  offset: 0
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  products:
                    type: array
                    description: Массив товаров с ценами
                    items:
                      type: object
                      properties:
                        product_id:
                          type: number
                          description: Уникальный идентификатор товара
                        quantity:
                          type: number
                          description: Доступное количество остатков
                  not_found_id:
                    type: array
                    items:
                      type: number
                      description: Массив ненайденных ID товаров
                  total:
                    type: number
                    description: Общее количество товаров
                  count:
                    type: number
                    description: Количество товаров в запросе
                  offset:
                    type: number
                    description: Параметр текущего смещения.
                  next_offset:
                    type: number
                    description: >-
                      Параметр смещения для получения следующего списка товаров.
                      Служит для определения, нужен ли еще один запрос.
              example:
                status: true
                products:
                  - product_id: 20
                    quantity: 1
                  - product_id: 21
                    quantity: 148
                  - product_id: 22
                    quantity: 830
                not_found_id:
                  - 18
                  - 19
                total: 1409
                count: 1000
                limit: 3
                offset: 0
                next_offset: 1000
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simpleResponsesSchema'
              example:
                status: false
                message: У вас нет доступа к указанным Дистрибьюторам
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/distrib.product.inventory:
    post:
      operationId: distrib-product-inventory
      tags:
        - Товары Дистрибьюторов
      summary: Получение общих данных цен и остатков
      description: >
        > Метод возвращает совмещенные данные по ценам товаров и по остаткам. 
          По сути это объединенные методы: `/dealer/v2/distrib.product.prices` и `/dealer/v1/distrib.product.quantities`.

        Один запрос возвращает до 1000 записей товаров. Чтобы получить следующие
        1000 товаров добавьте в тело запроса параметр смещения offset: 1000.


        Если в параметре product_id указано больше 1000 id товаров, ответ будет
        ограничен первыми 1000.


        Для определения, нужен ли еще один запрос, чтобы получить следующие 1000
        товаров, в ответе возвращается параметр next_offset. Если он есть,

        можно подставлять значение из этого параметра в offset следующего
        запроса. Если next_offset отсутствует, значит вы получили весь список
        товаров.
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                distributor_id:
                  type: array
                  description: Массив ID дистрибьюторов
                  items:
                    type: string
                    description: Уникальный идентификатор Дистрибьютора.
                product_id:
                  type: array
                  description: Массив ID товаров
                  items:
                    type: number
                    description: Уникальный идентификатор товара
                limit:
                  type: number
                  description: Oграничение по количеству элементов в ответе
                offset:
                  type: number
                  description: Параметр смещения для получения следующего списка товаров.
            example:
              distributor_id:
                - 265b0478
                - b4d0d204
                - b9e458c1
              product_id:
                - 7820
                - 5652
                - 7821
                - 1
              limit: 2
              offset: 0
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  products:
                    type: array
                    description: Массив товаров с ценами
                    items:
                      type: object
                      properties:
                        product_id:
                          type: number
                          description: Уникальный идентификатор товара
                        purchase:
                          type: object
                          description: Дилерская цена (цена покупки)
                          properties:
                            price:
                              type: number
                              format: float
                              description: Стоимость товара
                            currency:
                              type: string
                              description: Код валюты
                        rrp:
                          type: object
                          description: Рекомендованная розничная стоимость
                          properties:
                            price:
                              type: number
                              format: float
                              description: Стоимость товара
                            currency:
                              type: string
                              description: Код валюты
                        quantity:
                          type: number
                          description: Доступное количество остатков
                        order:
                          type: boolean
                          description: >-
                            Признак товара "На заказ". Если равен `true`, тогда
                            товар активен (при наличии у товара цены)
                  not_found_id:
                    type: array
                    description: Массив ненайденных ID товаров
                    items:
                      type: number
                  total:
                    type: number
                    description: Общее количество товаров
                  count:
                    type: number
                    description: Количество товаров в запросе
                  limit:
                    type: number
                    description: Ограничение по количеству элементов в ответе
                  offset:
                    type: number
                    description: Параметр текущего смещения.
                  next_offset:
                    type: number
                    description: >-
                      Параметр смещения для получения следующего списка товаров.
                      Служит для определения, нужен ли еще один запрос.
              example:
                status: true
                products:
                  - product_id: 5652
                    purchase:
                      price: 1010
                      currency: KZT
                    rrp:
                      price: 3500
                      currency: KZT
                    quantity: 0
                    order: true
                  - product_id: 7820
                    purchase:
                      price: 485
                      currency: KZT
                    quantity: 54
                not_found_id:
                  - 1
                total: 3
                count: 3
                limit: 2
                offset: 0
                next_offset: 2
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simpleResponsesSchema'
              example:
                status: false
                message: У вас нет доступа к указанным Дистрибьюторам
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/distrib.product.params:
    post:
      operationId: distrib-product-params
      tags:
        - Товары Дистрибьюторов
      summary: Получение параметров товаров
      description: >
        > Метод возвращает параметры всех товаров по всем доступным
        Дистрибьюторам.

        Запрос может содержать указание `id дистрибьютора` или `id товаров` для
        получения фильтрованных данных по конкретным товарам.

         Один запрос возвращает до 1000 записей товаров. Если в запросе указано больше `id товаров`, ответ будет ограничен первыми 1000.

         "В ответе возвращается массив `products`, который содержит параметры найденных товаров: вес, габариты (ширина, высота, длина), единица веса (g, kg), единица габаритов (mm, m)"
        Также возвращается массив `not_found_id`, который содержит в себе `id
        товаров`, которые не были найдены у Дистрибьютора, либо эти товары не
        активны и отсутствуют в продаже. 
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/productIdOrDistributorIdRequestSchema'
            examples:
              product-id-request:
                value:
                  product_id:
                    - 4803
                    - 21
                    - 22
                    - 19
                    - 20
              distributor-id-request:
                value:
                  distributor_id:
                    - 338a196c
                    - 238a196f
                    - 34ea279a
                  limit: 2
                  offset: 0
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  products:
                    type: array
                    description: Массив товаров с ценами
                    items:
                      type: object
                      properties:
                        product_id:
                          type: number
                          description: Уникальный идентификатор товара
                        weight:
                          type: number
                          description: Вес товара
                        width:
                          type: number
                          description: Ширина товара
                        height:
                          type: number
                          description: Высота товара
                        length:
                          type: number
                          description: Длинна товара
                        weight_unit:
                          type: string
                          description: Единица измерения веса товара
                        dimensions_unit:
                          type: string
                          description: Единица измерения размера товара
                  not_found_id:
                    type: array
                    items:
                      type: number
                      description: Массив ненайденных ID товаров
                  total:
                    type: number
                    description: Общее количество товаров
                  count:
                    type: number
                    description: Количество товаров в запросе
                  offset:
                    type: number
                    description: Параметр текущего смещения.
                  next_offset:
                    type: number
                    description: >-
                      Параметр смещения для получения следующего списка товаров.
                      Служит для определения, нужен ли еще один запрос.
              example:
                status: true
                products:
                  - product_id: 20
                    weight: 0
                    width: 0
                    height: 0
                    length: 0
                    weight_unit: g
                    dimensions_unit: mm
                  - product_id: 21
                    weight: 400
                    width: 0
                    height: 0
                    length: 0
                    weight_unit: g
                    dimensions_unit: mm
                not_found_id:
                  - 18
                  - 19
                  - 22
                total: 1409
                count: 1000
                limit: 2
                offset: 0
                next_offset: 1000
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/simpleResponsesSchema'
              examples:
                distributor-id:
                  value:
                    status: false
                    message: У вас нет доступа к указанным Дистрибьюторам
                product-id:
                  value:
                    status: false
                    message: product_id должен быть массивом
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/distrib.product.images:
    post:
      operationId: distrib-product-images
      tags:
        - Товары Дистрибьюторов
      summary: Получение изображений товаров
      description: >
        > Метод возвращает массив изображений всех товаров по всем доступным
        Дистрибьюторам.


        Запрос может содержать указание `id дистрибьютора` или `id товаров` для
        получения фильтрованных данных по конкретным товарам.


        Один запрос возвращает до 1000 записей товаров. Если в запросе указано
        больше `id товаров`, ответ будет ограничен первыми 1000.


        В ответе возвращается массив “products”, который содержит изображения
        найденных товаров. Также возвращается массив “not_found_id”, который
        содержит в себе id товаров, которые не были найдены у Дистрибьютора,
        либо эти товары не активны и отсутствуют в продаже.  


        Можно в запросе указать параметр `webp` со значением true, чтобы
        получить оптимизированные картинки в формате `.webp`
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    product_id:
                      type: array
                      description: >-
                        Массив id товаров, полученных из метода получения списка
                        товаров
                      items:
                        type: number
                - type: object
                  properties:
                    distributor_id:
                      type: array
                      description: >-
                        Уникальный идентификатор Дистрибьютора или массив
                        идентификаторов
                      items:
                        type: string
                    limit:
                      type: number
                      description: Oграничение по количеству элементов в ответе
                    offset:
                      type: number
                      description: >-
                        параметр смещения для получения следующего списка
                        товаров
                    webp:
                      type: boolean
            examples:
              product-id-request:
                value:
                  product_id:
                    - 4803
                    - 21
                    - 22
                    - 19
                    - 20
              distributor-id-request:
                value:
                  distributor_id:
                    - 338a196c
                    - 238a196f
                    - 34ea279a
                  limit: 2
                  offset: 0
                  webp: true
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  products:
                    type: array
                    description: Массив товаров с ценами
                    items:
                      type: object
                      properties:
                        product_id:
                          type: number
                          description: Уникальный идентификатор товара
                        images:
                          type: array
                          items:
                            type: string
                  not_found_id:
                    type: array
                    items:
                      type: number
                      description: Массив ненайденных ID товаров
                  total:
                    type: number
                    description: Общее количество товаров
                  count:
                    type: number
                    description: Количество товаров в запросе
                  limit:
                    type: number
                    description: Oграничение по количеству элементов в ответе
                  offset:
                    type: number
                    description: Параметр текущего смещения.
                  next_offset:
                    type: number
                    description: >-
                      Параметр смещения для получения следующего списка товаров.
                      Служит для определения, нужен ли еще один запрос.
              example:
                status: true
                products:
                  - product_id: 20
                    images:
                      - >-
                        https://api.apicore.kz/upload/apicore_product/bf625afa/20_b7f6eb1d881f1282d3f70915f44ecb190ce47f8a.jpg
                  - product_id: 21
                    images:
                      - >-
                        https://api.apicore.kz/upload/apicore_product/bf625afa/21_8a86fb27ef3d3d3fc69d4e31ac417dbad341d8d4.webp
                not_found_id:
                  - 18
                  - 19
                  - 22
                total: 1409
                count: 1000
                limit: 2
                offset: 0
                next_offset: 1000
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/simpleResponsesSchema'
              examples:
                distributor-id:
                  value:
                    status: false
                    message: У вас нет доступа к указанным Дистрибьюторам
                product-id:
                  value:
                    status: false
                    message: product_id должен быть массивом
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/distrib.product.descriptions:
    post:
      operationId: distrib-product-descriptions
      tags:
        - Товары Дистрибьюторов
      summary: Получение описаний товаров
      description: >
        > Метод возвращает массив детальных описаний всех товаров по всем
        доступным Дистрибьюторам


        Запрос может содержать указание `id дистрибьютора` или `id товаров` для
        получения фильтрованных данных по конкретным товарам.


        Один запрос возвращает до 100 записей товаров. Если в запросе указано
        больше `id товаров`, ответ будет ограничен первыми 100.


        В ответе возвращается массив “products”, который содержит текст описания
        найденных товаров.


        Также возвращается массив “not_found_id”, который содержит в себе id
        товаров, которые не были найдены у Дистрибьютора, либо эти товары не
        активны и отсутствуют в продаже.
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/productIdOrDistributorIdRequestSchema'
            examples:
              product-id-request:
                value:
                  product_id:
                    - 4803
                    - 21
                    - 22
                    - 19
                    - 20
              distributor-id-request:
                value:
                  distributor_id:
                    - 338a196c
                    - 238a196f
                    - 34ea279a
                  limit: 2
                  offset: 0
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  products:
                    type: array
                    description: Массив товаров с ценами
                    items:
                      type: object
                      properties:
                        product_id:
                          type: number
                          description: Уникальный идентификатор товара
                        description:
                          type: string
                          description: Описание товара
                  not_found_id:
                    type: array
                    items:
                      type: number
                      description: Массив ненайденных ID товаров
                  total:
                    type: number
                    description: Общее количество товаров
                  count:
                    type: number
                    description: Количество товаров в запросе
                  limit:
                    type: number
                    description: Oграничение по количеству элементов в ответе
                  offset:
                    type: number
                    description: Параметр текущего смещения.
                  next_offset:
                    type: number
                    description: >-
                      Параметр смещения для получения следующего списка товаров.
                      Служит для определения, нужен ли еще один запрос.
              example:
                status: true
                products:
                  - product_id: 20
                    description: >-
                      Универсальный жесткий диск для настольного компьютера или
                      моноблока. Данный HDD также подходит для домашнего сервера
                      или системы хранения данных DAS начального уровня.
                  - product_id: 21
                    description: >-
                      Жесткий диск Toshiba P300 1TB 7200rpm 64MB HDWD110UZSVA
                      3.5 SATA III. Toshiba P300 — это устройство ориентировано
                      на применение в составе обычных домашних компьютеров и
                      офисных ПК. Интерфейс SATA III делает обмен файлами
                      максимально быстрым и удобным, что можно заметить даже без
                      длительного ежедневного использования HDD. Для
                      дополнительного улучшения быстродействия жесткий диск
                      Toshiba P300 имеет 64 МБ буферной памяти. А его небольшие
                      размеры при форм-факторе в 3.5 дюйма позволят использовать
                      винчестер в большинстве современных корпусов, совершенно
                      не заморачиваясь с дополнительными деталями установки или
                      настройки.
                not_found_id:
                  - 18
                  - 19
                  - 22
                total: 1409
                count: 1000
                limit: 2
                offset: 0
                next_offset: 1000
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/simpleResponsesSchema'
              examples:
                distributor-id:
                  value:
                    status: false
                    message: У вас нет доступа к указанным Дистрибьюторам
                product-id:
                  value:
                    status: false
                    message: product_id должен быть массивом
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/distrib.product.props:
    post:
      operationId: distrib-product-props
      tags:
        - Товары Дистрибьюторов
      summary: Получение свойств товаров
      description: >
        > Метод возвращает массив свойств всех товаров по всем доступным
        Дистрибьюторам.



        Запрос может содержать указание `id дистрибьютора` или `id товаров` для
        получения фильтрованных данных по конкретным товарам.


        Один запрос возвращает до 1000 записей товаров. Если в запросе указано
        больше `id товаров`, ответ будет ограничен первыми 1000.


        В ответе возвращается массив `products`, который содержит свойства
        найденных товаров. 


        Также возвращается массив `not_found_id`, который содержит в себе `id
        товаров`, которые не были найдены у Дистрибьютора, либо эти товары не
        активны и отсутствуют в продаже. 
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/productIdOrDistributorIdRequestSchema'
            examples:
              product-id-request:
                value:
                  product_id:
                    - 4803
                    - 21
                    - 22
                    - 19
                    - 20
              distributor-id-request:
                value:
                  distributor_id:
                    - 338a196c
                    - 238a196f
                    - 34ea279a
                  limit: 2
                  offset: 0
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  products:
                    type: array
                    description: Массив товаров с ценами
                    items:
                      type: object
                      properties:
                        product_id:
                          type: number
                          description: Уникальный идентификатор товара
                        props:
                          type: array
                          description: Массив с перечислением свойств товара
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                              value:
                                type: string
                  not_found_id:
                    type: array
                    items:
                      type: number
                      description: Массив ненайденных ID товаров
                  total:
                    type: number
                    description: Общее количество товаров
                  count:
                    type: number
                    description: Количество товаров в запросе
                  limit:
                    type: number
                    description: Oграничение по количеству элементов в ответе
                  offset:
                    type: number
                    description: Параметр текущего смещения.
                  next_offset:
                    type: number
                    description: >-
                      Параметр смещения для получения следующего списка товаров.
                      Служит для определения, нужен ли еще один запрос.
              example:
                status: true
                products:
                  - product_id: 20
                    props:
                      - name: Емкость накопителя
                        value: 1ТБ
                      - name: Интерфейс
                        value: SATA
                      - name: Кэш/Буфер
                        value: 64Мб
                  - product_id: 21
                    props:
                      - name: Емкость накопителя
                        value: 6ТБ
                      - name: Кэш/Буфер
                        value: 256МБ
                      - name: Производитель
                        value: Seagate
                      - name: Серия
                        value: SkyHawk
                not_found_id:
                  - 18
                  - 19
                  - 22
                total: 1409
                count: 1000
                limit: 2
                offset: 0
                next_offset: 1000
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/simpleResponsesSchema'
              examples:
                distributor-id:
                  value:
                    status: false
                    message: У вас нет доступа к указанным Дистрибьюторам
                product-id:
                  value:
                    status: false
                    message: product_id должен быть массивом
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/catalog.list:
    post:
      operationId: catalog-list
      tags:
        - Работа с каталогами Дилера
      summary: Получение списка собственных каталогов
      description: |
        > Метод возвращает полный список собственных каталогов дилера.
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  catalogs:
                    type: array
                    description: Массив со  списком каталогов
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Код каталога
                        name:
                          type: string
                          description: Название каталога
                  count:
                    type: number
                    description: Количество каталогов в запросе
              example:
                status: true
                catalogs:
                  - code: main
                    name: Основной каталог
                  - code: site
                    name: Каталог для сайта
                count: 2
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/catalog.category.import:
    post:
      operationId: catalog-category-import
      tags:
        - Категории каталогов
      summary: Импорт категорий каталога
      description: >
        > Метод полностью обновляет структуру категорий требуемого каталога
        дилера.

          Если в запросе отсутствует категория, которая существует в каталоге, то эта категория каталога деактивируется.
          Количество категорий не ограничено.
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                catalog_code:
                  type: string
                  description: Уникальный идентификатор каталога. Ограничен 40 символами.
                categories:
                  type: array
                  description: Массив категорий
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        description: >-
                          Уникальный идентификатор категории. Ограничен 40
                          символами.
                      name:
                        type: string
                        description: Название категории
                      parent_id:
                        type: string
                        description: >-
                          Идентификатор родительской категории. Ограничен 40
                          символами.
                    required:
                      - id
                      - name
              required:
                - catalog_code
            example:
              catalog_code: main
              categories:
                - id: category-1
                  name: Категория 1
                - id: category-2
                  name: Категория 2
                  parent_id: category-1
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  message:
                    type: string
                  stack_id:
                    type: number
              example:
                status: true
                message: Создана очередь на обновление категорий
                stack_id: 1
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/simpleResponsesSchema'
              examples:
                categories-are-not-found:
                  value:
                    status: false
                    message: Не найден массив categories
                catalog_code-not-found:
                  value:
                    status: false
                    message: Не указан код каталога catalog_code
                main-catalog-not-found:
                  value:
                    status: false
                    message: Не найден каталог с кодом
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/catalog.category.list:
    post:
      operationId: catalog-category-list
      tags:
        - Категории каталогов
      summary: Получение списка категорий каталога
      description: |
        > Метод возвращает список категорий каталога дилера.
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                catalog_code:
                  type: string
                  description: Уникальный идентификатор каталога. Ограничен 40 символами.
              required:
                - catalog_code
            example:
              catalog_code: main
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status: true
                  categories:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                          description: Уникальный идентификатор Apicore
                        ext_id:
                          type: string
                          description: >-
                            Уникальный идентификатор категории. При импорте
                            передается в поле id, при ручном добавлении
                            категории отсутствует.
                        name:
                          type: string
                          description: Название категории
                        active:
                          type: boolean
                          description: >-
                            Параметр активности товара. Рассчитывается
                            автоматически в зависимости от наличия остатков и
                            цен. Активные товары доступны к показу подключенным
                            дилерам, неактивные товары из показа исчезают.
                        parent_id:
                          type: number
                          description: >-
                            Уникальный идентификатор родительской категории
                            Apicore
                        depth_level:
                          type: number
                          description: Уровень вложенности категории
                        date_create:
                          type: string
                          format: date-time
                          description: Дата создания категории
                        date_update:
                          type: string
                          format: date-time
                          description: Дата последнего обновления категории
                  count:
                    type: number
                    description: Количество категорий в запросе.
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/simpleResponsesSchema'
              examples:
                catalog_code-not-found:
                  value:
                    status: false
                    message: Не указан код каталога catalog_code
                main-catalog-not-found:
                  value:
                    status: false
                    message: Не найден каталог с кодом
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/catalog.product.full:
    post:
      operationId: catalog-product-full
      summary: Получение полного набора данных о товаре
      tags:
        - Товары каталогов
      description: >
        > Метод возвращает полный набор данных по товарам каталога дилера с
        учетом матчинга.


        Один запрос возвращает до 200 товаров. Чтобы получить следующие 200
        товаров добавьте в тело запроса параметр смещения offset:200


        Для определения, нужен ли еще один запрос, чтобы получить следующие 200
        товаров, в ответе возвращается параметр next_offset.

        Если он есть, можно подставлять значение из этого параметра в offset
        следующего запроса.

        Если next_offset отсутствует, значит вы получили весь список товаров.


        {% admonition type="warning" %}
          На сбор товаров есть ограничение – не более 2х раз в день.
        {% /admonition %}
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/catalogRequest'
            example:
              catalog_code: main
              limit: 2
              offset: 0
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  products:
                    type: array
                    description: Массив с товарами
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                          description: Уникальный идентификатор товара
                        name:
                          type: string
                          description: Название товара
                        long_name:
                          type: string
                          description: >-
                            Полное название товара с перечислением некоторых
                            особенностей
                        barcode:
                          type: string
                          description: Штрихкод
                        vendor:
                          type: string
                          description: Бренд
                        vendor_code:
                          type: string
                          description: Артикул
                        inner_code:
                          type: string
                          description: >-
                            Любой уникальный код товара во внутренней системе
                            дистрибьютора
                        quality:
                          type: string
                          description: Качество товара
                        category_id:
                          type: number
                          description: Уникальный идентификатор категории
                        category_name:
                          type: string
                          description: Название категории
                        distributor_id:
                          type: string
                          description: Уникальный идентификатор Дистрибьютора
                        quantity:
                          type: number
                          description: Количество товара
                        order:
                          type: boolean
                          description: >-
                            Признак товара "На заказ". Если равен `true`, тогда
                            товар активен (при наличии у товара цены)
                        prices:
                          type: object
                          description: Список цен
                          properties:
                            - type: object
                              properties:
                                purchase:
                                  type: object
                                  description: Дилерская цена (цена покупки)
                                  properties:
                                    price:
                                      type: number
                                      format: float
                                      description: Цена товара
                                    currency:
                                      type: string
                                      description: Код валюты
                            - type: object
                              properties:
                                retail:
                                  type: object
                                  description: Цена продажи
                                  properties:
                                    price:
                                      type: number
                                      format: float
                                      description: Цена товара
                                    currency:
                                      type: string
                                      description: Код валюты
                        images:
                          type: array
                          description: Массив с изображениями товара
                          items:
                            type: string
                            description: URL изображения
                        description:
                          type: string
                          description: Описание товара
                        props:
                          type: array
                          description: Свойства товара
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                description: Название свойства товара
                              value:
                                type: string
                                description: Значение свойства товара
                        params:
                          type: object
                          description: Параметры товара
                          properties:
                            weight:
                              type: number
                              description: Вес товара
                            width:
                              type: number
                              description: Ширина товара
                            height:
                              type: number
                              description: Высота товара
                            length:
                              type: number
                              description: Длинна товара
                            weight_unit:
                              type: string
                              description: Единица измерения веса товара
                            dimensions_unit:
                              type: string
                              description: Единица измерения размера товара
                  total:
                    type: number
                    description: Общее количество товаров
                  count:
                    type: number
                    description: Количество товаров в запросе
                  limit:
                    type: number
                    description: Oграничение по количеству элементов в ответе
                  offset:
                    type: number
                    description: Параметр текущего смещения.
                  next_offset:
                    type: number
                    description: >-
                      Параметр смещения для получения следующего списка товаров.
                      Служит для определения, нужен ли еще один запрос.
              example:
                status: true
                products:
                  - id: 29
                    name: >-
                      Жесткий диск HDD 2Tb Seagate Barracuda SATA6Gb/s 7200rpm
                      256Mb 3,5\" ST2000DM008
                    long_name: >-
                      Жесткий диск HDD 2Tb Seagate Barracuda SATA6Gb/s 7200rpm
                      256Mb 3,5\" ST2000DM008
                    barcode: ''
                    vendor: Seagate
                    vendor_code: ST2000DM008
                    inner_code: '20886'
                    quality: new
                    category_id: 108
                    category_name: Категория 3
                    distributor_id: 265b0478
                    quantity: 0
                    order: true
                    prices:
                      purchase:
                        price: 29835
                        currency: KZT
                      retail:
                        price: 38786
                        currency: KZT
                    images:
                      - https://api.apicore.kz/upload/apicore_...8.jpg&quot;
                    description: >-
                      Универсальный жесткий диск для настольного компьютера или
                      моноблока. Данный HDD также подходит для домашнего сервера
                      или системы хранения данных DAS начального уровня.
                    props:
                      - name: Серия
                        value: Barracuda
                      - name: Емкость накопителя
                        value: 2Тб
                      - name: Интерфейс
                        value: SATA
                      - name: Производитель
                        value: Seagate
                    params:
                      weight: 380
                      width: 100
                      height: 140
                      length: 20
                      weight_unit: g
                      dimensions_unit: mm
                  - id: 50
                    name: >-
                      Оптический привод ASUS DRW-24D5MT/BLK/B/AS DVR-ReWriter
                      24X DVD writing speed SATA Black
                    long_name: >-
                      Оптический привод ASUS DRW-24D5MT/BLK/B/AS DVR-ReWriter
                      24X DVD writing speed SATA Black
                    barcode: ''
                    vendor: ASUS
                    vendor_code: DRW-24D5MT/BLK/B/AS
                    inner_code: '17229'
                    quality: new
                    category_id: 109
                    category_name: Категория 4
                    distributor_id: 265b0478
                    quantity: 100
                    prices:
                      purchase:
                        price: 7548
                        currency: KZT
                      retail:
                        price: 9812
                        currency: KZT
                    images:
                      - https://api.apicore.kz/upload/apicore_...8.jpg&quot;
                    description: >-
                      ASUS DRW-24D5MT – внутренний пишущий (на скорости до 24x)
                      привод DVD с поддержкой носителей M-DISC.
                      Энергоэффективное устройство - при отсутствии обращений к
                      оптическому приводу он автоматически переходит в спящий
                      режим с уменьшенным энергопотреблением. Поддержка
                      носителей M-Disc - диски формата M-Disc могут хранить
                      информацию до 1000 лет и более! Бесплатная утилита Nero
                      BackItUp for Android - с помощью этого мобильного
                      приложения можно сохранить резервные копии данных с
                      Android-устройства в облачное хранилище, на SD-карту или
                      на компьютер. Шифрование диска - двойная защита данных на
                      записываемых оптических дисках с помощью пароля и скрытия
                      имен файлов.
                    props:
                      - name: Производитель
                        value: Asus
                      - name: Серия
                        value: DRW-24D5MT
                      - name: Интерфейс
                        value: SATA
                      - name: Тип оборудования
                        value: DVD±R/RW, DVD-ROM, CDRW, CD-ROM
                      - name: Цвет
                        value: Черный
                    params:
                      weight: 500
                      width: 150
                      height: 50
                      length: 50
                      weight_unit: g
                      dimensions_unit: mm
                total: 455
                count: 2
                offset: 0
                next_offset: 2
                limit: 2
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/simpleResponsesSchema'
              examples:
                main-catalog-not-found:
                  value:
                    status: false
                    message: Не найден каталог с кодом
                catalog_code-not-found:
                  value:
                    status: false
                    message: Не указан код каталога catalog_code
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/catalog.product.list:
    post:
      operationId: catalog-product-list
      summary: Получение списка товаров каталога
      tags:
        - Товары каталогов
      description: >
        > Метод возвращает список карточек товаров каталога дилера с учетом
        матчинга.
          Возвращаются только активные товары, доступные к продаже.

        Один запрос возвращает до 1000 товаров. Чтобы получить следующие 1000
        товаров добавьте в тело запроса параметр смещения `offset`:1000


        В ответе возвращается параметр `total`, содержащий общее количество
        товаров. Если `offset` будет больше, чем `total`, то будет возвращаться
        значение из `offset` с пустым массивом товаров.

        В ответе возвращается параметр `count`, содержащий количество товаров в
        ответе.


        Для определения, нужен ли еще один запрос, чтобы получить следующие 1000
        товаров, в ответе возвращается параметр 

        `next_offset`. Если он есть, можно подставлять значение из этого
        параметра в `offset` следующего запроса. 

        Если `next_offset` отсутствует, значит вы получили весь список товаров.
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/catalogRequest'
            example:
              catalog_code: main
              limit: 2
              offset: 0
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  products:
                    type: array
                    description: Массив с товарами
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                          description: Уникальный идентификатор товара
                        name:
                          type: string
                          description: Название товара
                        long_name:
                          type: string
                          description: >-
                            Полное название товара с перечислением некоторых
                            особенностей
                        category_id:
                          type: number
                          description: Уникальный идентификатор категории
                        barcode:
                          type: string
                          description: Штрихкод
                        vendor:
                          type: string
                          description: Бренд
                        vendor_code:
                          type: string
                          description: Артикул
                        inner_code:
                          type: string
                          description: >-
                            Любой уникальный код товара во внутренней системе
                            дистрибьютора
                        quality:
                          type: string
                          description: Качество товара
                  total:
                    type: number
                    description: Общее количество доступных товаров
                  count:
                    type: number
                    description: Количество товаров в запросе
                  limit:
                    type: number
                    description: Oграничение по количеству элементов в ответе
                  offset:
                    type: number
                    description: Параметр текущего смещения.
                  next_offset:
                    type: number
                    description: >-
                      Параметр смещения для получения следующего списка товаров.
                      Служит для определения, нужен ли еще один запрос.
              example:
                status: true
                products:
                  - id: 20
                    name: Батарейка DURACELL Basic АА 4шт LR6
                    long_name: >-
                      Батарейки Duracell пальчиковые AA LR6/MN1500, 1.5 V, 4 шт.
                      в упаковке.
                    category_id: 68
                    barcode: ''
                    vendor: DURACELL
                    vendor_code: '81545403'
                    inner_code: '19817'
                    quality: new
                  - id: 21
                    name: Жесткий диск HDD  1Tb Seagate BarraCuda SATA6Gb/s
                    long_name: >-
                      Жесткий диск HDD 1Tb Seagate BarraCuda SATA6Gb/s 7200rpm,
                      64Mb, 3.5,  ST1000DM010.
                    category_id: 27
                    barcode: ''
                    vendor: Seagate,
                    vendor_code: ST1000DM010
                    inner_code: '17746'
                    quality: new
                total: 1409
                count: 1000
                limit: 2
                offset: 0
                next_offset: 1000
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/simpleResponsesSchema'
              examples:
                main-catalog-not-found:
                  value:
                    status: false
                    message: Не найден каталог с кодом
                catalog_code-not-found:
                  value:
                    status: false
                    message: Не указан код каталога catalog_code
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/catalog.product.prices:
    post:
      operationId: catalog-product-prices
      tags:
        - Товары каталогов
      summary: Получение цен товаров каталога
      description: >
        > Метод возвращает цены товаров каталога дилера. Один запрос возвращает
        до 1000 записей цен.


        В ответе возвращается массив `products`, который содержит указание цены
        покупки, rrp и цены продажи по каждому найденному товару.
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/catalogRequest'
            example:
              catalog_code: main
              limit: 2
              offset: 0
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  products:
                    type: array
                    description: Массив товаров
                    items:
                      type: object
                      properties:
                        product_id:
                          type: number
                          description: Уникальный идентификатор товара
                        purchase:
                          type: object
                          properties:
                            price:
                              type: number
                              format: float
                              description: Цена покупки
                            currency:
                              type: string
                              description: Валюта цены
                        rrp:
                          type: object
                          properties:
                            price:
                              type: number
                              format: float
                              description: Рекомендованная розничная цена
                            currency:
                              type: string
                              description: Валюта цены
                        retail:
                          type: object
                          properties:
                            price:
                              type: number
                              format: float
                              description: Цена продажи
                            currency:
                              type: string
                              description: Валюта цены
                  total:
                    type: number
                    description: Общее количество доступных товаров
                  count:
                    type: number
                    description: Количество товаров в запросе
                  limit:
                    type: number
                    description: Oграничение по количеству элементов в ответе
                  offset:
                    type: number
                    description: Параметр текущего смещения.
                  next_offset:
                    type: number
                    description: >-
                      Параметр смещения для получения следующего списка товаров.
                      Служит для определения, нужен ли еще один запрос.
              example:
                status: true
                products:
                  - product_id: 43
                    purchase:
                      price: 52884
                      currency: KZT
                    rrp:
                      price: 59990
                      currency: KZT
                    retail:
                      price: 62000
                      currency: KZT
                  - product_id: 65
                    purchase:
                      price: 73640
                      currency: KZT
                    retail:
                      price: 80000
                      currency: KZT
                total: 1409
                count: 1000
                limit: 2
                offset: 0
                next_offset: 1000
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/simpleResponsesSchema'
              examples:
                main-catalog-not-found:
                  value:
                    status: false
                    message: Не найден каталог с кодом
                catalog_code-not-found:
                  value:
                    status: false
                    message: Не указан код каталога catalog_code
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/catalog.product.quantities:
    post:
      operationId: catalog-product-quantities
      tags:
        - Товары каталогов
      summary: Получение остатков товаров каталога
      description: >
        > Метод возвращает остатки товаров каталога дилера. Один запрос
        возвращает до 1000 записей остатков.


        В ответе возвращается массив `products`, который содержит указание
        остатка по каждому найденному товару.
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/catalogRequest'
            example:
              catalog_code: main
              limit: 2
              offset: 0
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  products:
                    type: array
                    description: Массив товаров
                    items:
                      type: object
                      properties:
                        product_id:
                          type: number
                          description: Уникальный идентификатор товара
                        quantity:
                          type: number
                          description: Количество остатков товара
                  total:
                    type: number
                    description: Общее количество доступных товаров
                  count:
                    type: number
                    description: Количество товаров в запросе
                  limit:
                    type: number
                    description: Oграничение по количеству элементов в ответе
                  offset:
                    type: number
                    description: Параметр смещения
                  next_offset:
                    type: number
                    description: Параметр определения, нужен ли еще один запрос.
              example:
                status: true
                products:
                  - product_id: 43
                    quantity: 20
                  - product_id: 65
                    quantity: 9
                total: 1483
                count: 1000
                limit: 2
                offset: 0
                next_offset: 1000
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/simpleResponsesSchema'
              examples:
                main-catalog-not-found:
                  value:
                    status: false
                    message: Не найден каталог с кодом
                catalog_code-not-found:
                  value:
                    status: false
                    message: Не указан код каталога catalog_code
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/catalog.product.images:
    post:
      operationId: catalog-product-images
      tags:
        - Товары каталогов
      summary: Получение изображений товаров каталога
      description: |
        > Метод возвращает изображения товаров каталога дилера.
          Один запрос возвращает до 1000 записей.

          В ответе возвращается массив `products`, который содержит массив ссылок на изображения по каждому найденному товару.

          Можно в запросе указать параметр `webp` со значением true, чтобы получить оптимизированные картинки в формате  `.webp`.
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                catalog_code:
                  type: string
                  description: Уникальный идентификатор каталога. Ограничен 40 символами
                limit:
                  type: number
                  description: Oграничение по количеству элементов в ответе
                offset:
                  type: number
                  description: Параметр смещения для получения следующего списка
                webp:
                  type: boolean
                  description: Параметр для получения изображений в формате webp.
              required:
                - catalog_code
            example:
              catalog_code: main
              limit: 2
              offset: 0
              webp: true
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  products:
                    type: array
                    description: Массив товаров
                    items:
                      type: object
                      properties:
                        product_id:
                          type: number
                          description: Уникальный идентификатор товара
                        images:
                          type: array
                          items:
                            type: string
                  total:
                    type: number
                    description: Общее количество доступных товаров
                  count:
                    type: number
                    description: Количество товаров в запросе
                  limit:
                    type: number
                    description: Oграничение по количеству элементов в ответе
                  offset:
                    type: number
                    description: Параметр смещения
                  next_offset:
                    type: number
                    description: Параметр определения, нужен ли еще один запрос.
              example:
                status: true
                products:
                  - product_id: 43
                    images:
                      - >-
                        http://api.apicore.kz/upload/apicore_product/bf625afa/23_4ddc595389415d220484dcd50dd98993da4fbefd.jpg
                      - >-
                        http://api.apicore.kz/upload/apicore_product/bf625afa/23_d8286f106c160644.webp
                  - product_id: 65
                    images:
                      - >-
                        http://api.apicore.kz/upload/apicore_product/bf625afa/24_b5458e6c7ff929dee3ab872fa2baafdff02e2bb0.jpg
                total: 1483
                count: 1000
                limitL: 2
                offset: 0
                next_offset: 1000
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/simpleResponsesSchema'
              examples:
                main-catalog-not-found:
                  value:
                    status: false
                    message: Не найден каталог с кодом
                catalog_code-not-found:
                  value:
                    status: false
                    message: Не указан код каталога catalog_code
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/catalog.product.descriptions:
    post:
      operationId: catalog-product-descriptions
      tags:
        - Товары каталогов
      summary: Получение описаний товаров каталога
      description: >
        > Метод возвращает описания товаров каталога дилера. Один запрос
        возвращает до 1000 записей.


        В ответе возвращается массив `products`, который содержит текст описания
        по каждому найденному товару.
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/catalogRequest'
            example:
              catalog_code: main
              limit: 2
              offset: 0
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  products:
                    type: array
                    items:
                      type: object
                      properties:
                        product_id:
                          type: number
                          description: Уникальный идентификатор товара
                        description:
                          type: string
                          description: Описание товара
                  total:
                    type: number
                    description: Общее количество доступных товаров
                  count:
                    type: number
                    description: Количество товаров в запросе
                  limit:
                    type: number
                    description: Oграничение по количеству элементов в ответе
                  offset:
                    type: number
                    description: Параметр смещения
                  next_offset:
                    type: number
                    description: Параметр определения, нужен ли еще один запрос.
              example:
                status: true
                products:
                  - product_id: 43
                    description: >-
                      Жесткий диск Toshiba P300 1TB 7200rpm 64MB HDWD110UZSVA
                      3.5 SATA III. Toshiba P300 — это устройство ориентировано
                      на применение в составе обычных домашних компьютеров и
                      офисных ПК. Интерфейс SATA III делает обмен файлами
                      максимально быстрым и удобным, что можно заметить даже без
                      длительного ежедневного использования HDD. Для
                      дополнительного улучшения быстродействия жесткий диск
                      Toshiba P300 имеет 64 МБ буферной памяти. А его небольшие
                      размеры при форм-факторе в 3.5 дюйма позволяет
                      использовать винчестер в большинстве современных корпусов,
                      совершенно не заморачиваясь с дополнительными деталями
                      установки или настройки.
                  - product_id: 65
                    description: >-
                      1 ТБ Western Digital WD10EZRZ Это вместительный жесткий
                      диск в сочетании с твердотельным накопителем повысит
                      быстродействие и емкость вашего компьютера. Твердотельный
                      накопитель ускоряет получение доступа к данным, а диск WD
                      Blue позволяет хранить фильмы, игры, файлы, приложения и
                      т. д. Записывающая головка ни при каких обстоятельствах не
                      соприкасается с поверхностью диска, что способствует
                      значительному уменьшению износа головок и дисков, а также
                      более надежной защите накопителей в процессе их перевозки.
                total: 1483
                count: 1000
                limit: 2
                offset: 0
                next_offset: 1000
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/simpleResponsesSchema'
              examples:
                main-catalog-not-found:
                  value:
                    status: false
                    message: Не найден каталог с кодом
                catalog_code-not-found:
                  value:
                    status: false
                    message: Не указан код каталога catalog_code
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/catalog.product.params:
    post:
      operationId: catalog-product-params
      tags:
        - Товары каталогов
      summary: Получение параметров товаров каталога
      description: >
        > Метод возвращает параметры товаров каталога дилера. Один запрос
        возвращает до 1000 записей.

          В ответе возвращается массив `products`, который содержит параметры по каждому найденному товару.
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/catalogRequest'
            example:
              catalog_code: main
              limit: 2
              offset: 0
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  products:
                    type: array
                    description: Массив товаров с ценами
                    items:
                      type: object
                      properties:
                        product_id:
                          type: number
                          description: Уникальный идентификатор товара
                        weight:
                          type: number
                          description: Вес товара
                        width:
                          type: number
                          description: Ширина товара
                        height:
                          type: number
                          description: Высота товара
                        length:
                          type: number
                          description: Длинна товара
                        weight_unit:
                          type: string
                          description: Единица измерения веса товара
                        dimensions_unit:
                          type: string
                          description: Единица измерения размера товара
                  total:
                    type: number
                    description: Общее количество товаров
                  count:
                    type: number
                    description: Количество товаров в запросе
                  limit:
                    type: number
                    description: Oграничение по количеству элементов в ответе
                  offset:
                    type: number
                    description: Параметр смещения для получения следующего списка товаров.
                  next_offset:
                    type: number
                    description: Параметр определения, нужен ли еще один запрос.
              example:
                status: true
                products:
                  - product_id: 22
                    weight: 450
                    width: 100
                    height: 140
                    length: 20
                    weight_unit: g
                    dimensions_unit: mm
                  - product_id: 23
                    weight: 455
                    width: 100
                    height: 150
                    length: 20
                    weight_unit: g
                    dimensions_unit: mm
                total: 1483
                count: 1000
                limit: 2
                offset: 0
                next_offset: 1000
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/simpleResponsesSchema'
              examples:
                main-catalog-not-found:
                  value:
                    status: false
                    message: Не найден каталог с кодом
                catalog_code-not-found:
                  value:
                    status: false
                    message: Не указан код каталога catalog_code
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/catalog.product.props:
    post:
      operationId: catalog-product-props
      tags:
        - Товары каталогов
      summary: Получение свойств товаров каталога
      description: >
        > Метод возвращает свойства товаров каталога дилера. Один запрос
        возвращает до 1000 записей.

          В ответе возвращается массив `products`, который содержит свойства по каждому найденному товару.
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/catalogRequest'
            example:
              catalog_code: main
              limit: 2
              offset: 0
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  products:
                    type: array
                    description: Массив товаров с ценами
                    items:
                      type: object
                      properties:
                        product_id:
                          type: number
                          description: Уникальный идентификатор товара
                        props:
                          type: array
                          description: Массив свойств товара
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                description: Название свойства
                              value:
                                type: string
                                description: Значение свойства
                  total:
                    type: number
                    description: Общее количество товаров
                  count:
                    type: number
                    description: Количество товаров в запросе
                  limit:
                    type: number
                    description: Oграничение по количеству элементов в ответе
                  offset:
                    type: number
                    description: Параметр смещения для получения следующего списка товаров.
                  next_offset:
                    type: number
                    description: Параметр определения, нужен ли еще один запрос.
              example:
                status: true
                products:
                  - product_id: 22
                    props:
                      - name: Ёмкость накопителя
                        value: 1ТБ
                      - name: Интерфейс
                        value: SATA
                      - name: Кэш/Буфер
                        value: 64Мб
                  - product_id: 23
                    props:
                      - name: Ёмкость накопителя
                        value: 6ТБ
                      - name: Производитель
                        value: Seagate
                      - name: Серия
                        value: SkyHawk
                total: 1483
                count: 1000
                limit: 2
                offset: 0
                next_offset: 1000
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/simpleResponsesSchema'
              examples:
                main-catalog-not-found:
                  value:
                    status: false
                    message: Не найден каталог с кодом
                catalog_code-not-found:
                  value:
                    status: false
                    message: Не указан код каталога catalog_code
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/source.list:
    post:
      operationId: source-list
      tags:
        - Работа с источниками дилера
      summary: Получение списка своих источников
      description: |
        > Метод возвращает полный список собственных источников дилера.
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  sources:
                    type: array
                    description: Список источников
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Код источника
                        name:
                          type: string
                          description: Название источника
                  count:
                    type: number
                    description: Количество источников в текущем запросе
              example:
                status: true
                sources:
                  - code: 1c
                    name: Каталог 1С
                count: 1
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
              example:
                status: false
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/source.add:
    post:
      operationId: source-add
      tags:
        - Работа с источниками дилера
      summary: Создание источника
      description: >
        > Метод добавляет новый источник дилера. Возвращает результат
        добавления.
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                source_code:
                  type: string
                  description: >-
                    Код источника, уникальный для дилера. Ограничен 40
                    символами. Разрешены только маленькие латинские буквы, тире
                    и цифры.
                name:
                  type: string
                  description: Название источника.
              required:
                - source_code
                - name
            example:
              source_code: 1c
              name: Каталог 1С
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simpleResponsesSchema'
              example:
                status: true
                message: Источник успешно создан
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/simpleResponsesSchema'
              examples:
                not-source-name-specified:
                  value:
                    status: false
                    message: Не указано название внешнего источника
                not-source-code-specified:
                  value:
                    status: false
                    message: Не указан код внешнего источника
                source-code-failed:
                  value:
                    status: false
                    message: Код внешнего источника не может быть длиннее 40 символов
                source-code-failed-sec:
                  value:
                    status: false
                    message: >-
                      Код внешнего источника может содержать только маленькие
                      латинские буквы, цифры и тире.
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/source.category.import:
    post:
      operationId: source-category-import
      tags:
        - Категории источников
      summary: Импорт категорий источника
      description: >
        > Метод полностью обновляет структуру категорий источника дилера.


        Если в запросе отсутствует категория, которая существует в каталоге, то
        эта категория деактивируется.


        Возвращает статус добавления данных в очередь на обработку, результат
        обработки которого можно проверить методом `import.status`.
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                source_code:
                  type: string
                  description: Уникальный код источника. Ограничен 40 символами.
                categories:
                  type: array
                  description: Массив категорий.
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        description: >-
                          Уникальный идентификатор категории. Ограничен 40
                          символами.
                      name:
                        type: string
                        description: Название категории
                      parent_id:
                        type: string
                        description: >-
                          Идентификатор родительской категории. Ограничен 40
                          символами.
                    required:
                      - id
                      - name
              required:
                - source_code
            example:
              source_code: 1c
              categories:
                - id: category-1
                  name: Категория 1
                - id: category-2
                  name: Категория 2
                  parent_id: category-1
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  message:
                    type: string
                  stack_id:
                    type: number
              example:
                status: true
                message: Создана очередь на обновление категорий
                stack_id: 1
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/simpleResponsesSchema'
              examples:
                categories-not-found:
                  value:
                    status: false
                    message: Не найден массив categories
                source_code-not-specified:
                  value:
                    status: false
                    message: Не указан код источника source_code
                source-not-found:
                  value:
                    status: false
                    message: Не найден источник с кодом 1с
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/product.import:
    post:
      operationId: product-import
      tags:
        - Товары источников
      summary: Импорт карточки товара
      description: >
        > Метод полностью обновляет товары источника дилера. Данные по товарам
        ставятся в общую очередь на обновление товаров.


        **Для каждого аккаунта в сутки есть ограничение** на количество товаров,
        которые можно добавить в очередь на обработку. 

        Поэтому рекомендуем использовать данный метод только для добавления
        новых товаров или ежедневного разового обновления всех товаров. 

        Для обновления актуальности цен, остатков и дополнительных сущностей
        товара **рекомендуем использовать отдельные методы, они имеют 

        приоритет по скорости обработки.**


        Запрос ограничен 100 товарами, если больше, то возвращается ошибка.


        Возвращает статус добавления данных в очередь на обработку, результат
        обработки которого можно проверить методом `import.status`. 
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                source_code:
                  type: string
                  description: Код источника дилера.
                products:
                  type: array
                  description: Массив товаров
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        description: >-
                          Уникальный идентификатор товара. Ограничен 40
                          символами.
                      name:
                        type: string
                        description: Название товара
                      long_name:
                        type: string
                        description: >-
                          Длинное название товара с перечислением некоторых
                          особенностей товара.
                      category_id:
                        type: string
                        description: Идентификатор категории, в которой находится товар.
                      purchase:
                        type: number
                        format: float
                        description: >-
                          Закупочная цена товара. Разделитель дробной части —
                          точка, до двух знаков после точки.
                      retail:
                        type: number
                        format: float
                        description: >-
                          Розничная цена товара. Разделитель дробной части —
                          точка, до двух знаков после точки.
                      currency:
                        type: string
                        description: Валюта цены
                      quantity:
                        type: number
                        description: Общий остаток товара.
                      order:
                        type: boolean
                        description: >-
                          Признак товара "На заказ". Если равен `true`, тогда
                          товар активен (при наличии у товара цены)
                      barcode:
                        type: string
                        description: Штрихкод товара.
                      vendor:
                        type: string
                        description: Бренд товара.
                      vendor_code:
                        type: string
                        description: Описание товара.
                      inner_code:
                        type: string
                        description: >-
                          Любой уникальный код товара во внутренней системе
                          дилера.
                      quality:
                        type: string
                        description: >-
                          Код качества товаров. Варианты значений можно получить
                          методом
                          [product.quality.list](/api/dealer/tovary-istochnikov/product-quality-list).
                          Если не указан, по умолчанию будет установлен `new` -
                          Новый.
                      description:
                        type: string
                        description: Описание товара
                      images:
                        type: array
                        description: >-
                          Массив ссылок на изображения товара. Ссылки должны
                          быть в открытом доступе и доступны на скачивание по
                          методу GET.
                        items:
                          type: string
                      images_base64:
                        type: array
                        description: Массив изображений закодированных в mime base64.
                        items:
                          type: string
                      props:
                        type: array
                        description: Массив свойств товара.
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                              description: Название свойства
                            value:
                              type: string
                              description: Значение свойства
                          required:
                            - name
                            - value
                      params:
                        type: object
                        description: Объект параметров товара, - размер и вес
                        properties:
                          weight:
                            type: number
                            description: Вес товара
                          width:
                            type: number
                            description: Ширина товара
                          height:
                            type: number
                            description: Высота товара
                          length:
                            type: number
                            description: Длинна товара
                          weight_unit:
                            type: string
                            description: Единица измерения веса товара
                          dimensions_unit:
                            type: string
                            description: Единица измерения размера товара
                    required:
                      - id
              required:
                - source_code
            example:
              source_code: 1c
              products:
                - id: product-1
                  name: Название товара
                  long_name: >-
                    Длинное название Товара с перечислением некоторых
                    особенностей
                  category_id: category-2
                  purchase: 150990
                  retail: 161500
                  currency: KZT
                  quantity: 0
                  order: true
                  barcode: '1234567890123'
                  vendor: Бренд
                  vendor_code: Артикул
                  inner_code: '123456'
                  quality: new
                  description: Описание товара
                  images:
                    - https://domain/img/21ontk0ezjqz6yephhymwd16j2mobu5r.png
                    - https://domain/img/33ox4msgbwepcs2r3y3dpur77dhpi76o.jpg
                  images_base64:
                    - >-
                      iVBORw0KGgoAAAANSUhEUgAABeMAAANUCAIAAAC/nKEJAAAACXBIWXMAA...
                    - >-
                      iNQAAAAAAAJ6CSA0AAAAAAICnIFIDAAAAAADgKYjUAAAAAAAAeAoiNQAA...
                  props:
                    - name: Название свойства товара 1
                      value: Значение свойства товара 1
                    - name: Название свойства товара 2
                      value: Значение свойства товара 2
                  params:
                    width: 170
                    height: 230
                    length: 10
                    dimensions_unit: mm
                    weight: 150
                    weight_unit: g
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  message:
                    type: string
                  stack_id:
                    type: number
              example:
                status: true
                message: Создана очередь на обновление товаров
                stack_id: 1
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/simpleResponsesSchema'
              examples:
                source_code-not-specified:
                  value:
                    status: false
                    message: Не указан код источника
                products-must-be-an-array:
                  value:
                    status: false
                    message: products должен быть массивом
                requests-exceeded:
                  value:
                    status: false
                    message: >-
                      Превышено количество товаров в запросе. Допустимое
                      количество - 100
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/product.price.import:
    post:
      operationId: product-price-import
      tags:
        - Товары источников
      summary: Обновление цен товаров
      description: >
        > Метод обновляет цены  товаров.


        Запрос ограничен 1000 товарами, если больше, то возвращается ошибка.


        Возвращает статус добавления данных в очередь на обработку, результат
        обработки которого можно проверить методом `import.status`.
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                source_code:
                  type: string
                  description: Код источника дилера.
                products:
                  type: array
                  description: Массив остатков товаров
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        description: >-
                          Уникальный идентификатор товара. Ограничен 40
                          символами.
                      purchase:
                        type: number
                        format: float
                        description: >-
                          Закупочная цена товара. Разделитель дробной части —
                          точка, до двух знаков после точки.
                      retail:
                        type: number
                        format: float
                        description: >-
                          Розничная цена. Разделитель дробной части — точка, до
                          двух знаков после точки.
                      currency:
                        type: string
                        description: Валюта цен
                    required:
                      - id
              required:
                - source_code
            example:
              source_code: 1c
              products:
                - id: product-1
                  purchase: 151990
                  retail: 170500
                  currency: KZT
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  message:
                    type: string
                  stack_id:
                    type: number
              example:
                status: true
                message: Создана очередь на обновление товаров
                stack_id: 1
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/simpleResponsesSchema'
              examples:
                source_code-not-specified:
                  value:
                    status: false
                    message: Не указан код источника
                products-must-be-an-array:
                  value:
                    status: false
                    message: products должен быть массивом
                requests-exceeded:
                  value:
                    status: false
                    message: >-
                      Превышено количество товаров в запросе. Допустимое
                      количество - 100
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/product.quantity.import:
    post:
      operationId: product-quantity-import
      tags:
        - Товары источников
      summary: Обновление остатков товаров
      description: >
        > Метод обновляет остатки товаров.


        Запрос ограничен 1000 товарами, если больше, то возвращается ошибка.


        Возвращает статус добавления данных в очередь на обработку, результат
        обработки которого можно проверить методом `import.status`.
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                source_code:
                  type: string
                  description: Код источника дилера.
                products:
                  type: array
                  description: Массив остатков товаров
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        description: >-
                          Уникальный идентификатор товара. Ограничен 40
                          символами.
                      quantity:
                        type: number
                        description: Общий остаток товара.
                    required:
                      - id
                      - quantity
              required:
                - source_code
            example:
              source_code: 1c
              products:
                - id: product-1
                  quantity: 3
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  message:
                    type: string
                  stack_id:
                    type: number
              example:
                status: true
                message: Создана очередь на обновление товаров
                stack_id: 1
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/simpleResponsesSchema'
              examples:
                source_code-not-specified:
                  value:
                    status: false
                    message: Не указан код источника
                products-must-be-an-array:
                  value:
                    status: false
                    message: products должен быть массивом
                requests-exceeded:
                  value:
                    status: false
                    message: >-
                      Превышено количество товаров в запросе. Допустимое
                      количество - 100
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/product.quality.list:
    post:
      operationId: product-quality-list
      tags:
        - Товары источников
      summary: Получение списка кодов "Качества товара"
      description: |
        > Метод возвращает список значений и кодов "Качества товара".
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  quality:
                    type: array
                    description: Массив кодов и значений "Качества товара"
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Код качества
                        name:
                          type: string
                          description: Название качества
                  count:
                    type: number
                    description: Количество элементов "Качества"
              example:
                status: true
                quality:
                  - code: new
                    name: Новый
                  - code: dis
                    name: Уцененный
                  - code: rep
                    name: После ремонта
                  - code: pac
                    name: Поврежденная упаковка
                count: 4
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
  /dealer/v1/import.status:
    post:
      operationId: import-status
      tags:
        - Работа со стеком импорта
      summary: Получение результата обработки данных
      description: >
        > Метод возвращает результат обработки данных, поставленных в Стек
        очереди.
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/Api-Key'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                stack_id:
                  type: number
                  description: id очереди, который вернул метод при импорте данных.
              required:
                - stack_id
            example:
              stack_id: 1234
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  stack:
                    type: object
                    description: Объект стека
                    properties:
                      id:
                        type: string
                        description: id стека очереди
                      status:
                        type: string
                        description: Статус состояния стека очереди
                      time_complete:
                        type: string
                        format: date-time
                        description: Время выполнения запроса
                      result:
                        type: object
                        description: Объект с результатами выполненного запроса
                        properties:
                          all:
                            type: number
                            description: Все результаты данных запроса
                          add:
                            type: number
                            description: Добавленные данные
                          upd:
                            type: number
                            description: Обновленные дынные
                          errors:
                            type: number
                            description: Количество ошибок в запросе.
              example:
                status: true
                stack:
                  id: '1234'
                  status: success
                  time_complete: 15.08.2023 16:59:12
                  result:
                    all: 2
                    add: 0
                    upd: 2
                    errors: 0
        '406':
          description: Неприемлемые данные
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simpleResponsesSchema'
              example:
                status: false
                message: stack_id должен быть числом
        '429':
          description: Превышен лимит запросов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requestsLimitExceededSchema'
              example:
                status: false
                message: 'Превышен лимит запросов: не более 2-х в секунду'
components:
  schemas:
    simpleResponsesSchema:
      type: object
      properties:
        status:
          type: boolean
        message:
          type: string
    catalogRequest:
      type: object
      properties:
        catalog_code:
          type: string
          description: Уникальный идентификатор каталога. Ограничен 40 символами
        limit:
          type: number
          description: Oграничение по количеству элементов в ответе
        offset:
          type: number
          description: Параметр смещения для получения следующего списка
      required:
        - catalog_code
    productIdOrDistributorIdRequestSchema:
      oneOf:
        - type: object
          properties:
            product_id:
              type: array
              description: Массив id товаров, полученных из метода получения списка товаров
              items:
                type: number
        - type: object
          properties:
            distributor_id:
              type: array
              description: >-
                Уникальный идентификатор Дистрибьютора или массив
                идентификаторов
              items:
                type: string
            limit:
              type: number
              description: Oграничение по количеству элементов в ответе
            offset:
              type: number
              description: параметр смещения для получения следующего списка товаров
    requestsLimitExceededSchema:
      type: object
      properties:
        status:
          type: boolean
          description: Статус запроса
        message:
          type: string
          description: Сообщение об ошибке
  securitySchemes:
    api_key_auth:
      type: apiKey
      in: header
      name: Api-Key
  parameters:
    Content-Type:
      name: Content-Type
      in: header
      required: true
      schema:
        type: string
        example: application/json
    Accept:
      name: Accept
      in: header
      required: true
      schema:
        type: string
        example: application/json
    Api-Key:
      name: Api-Key
      in: header
      required: true
      schema:
        type: string
