Skip to content

Товары API v1 ​

Формат товара ​

Legacy-товар использует UMI object ID и хранит большинство полей в форме { name, value, field_id, uid }. Ниже приведен сокращенный production-пример:

json
{
  "id": 57114409,
  "name": "E500RM9",
  "fullName": "E500RM9",
  "url": "https://nnz-ipc.ru/catalogue/rugged_mobile_computers/rugged_handheld/e500rm9/",
  "stockNumber": {
    "name": "Артикул",
    "value": "6156782",
    "field_id": 102678,
    "uid": "artikul"
  },
  "price": {
    "name": "Розничная цена",
    "value": "1137.04",
    "field_id": 203252,
    "uid": "roznica_price"
  },
  "inStock": {
    "name": "В наличии",
    "value": 0,
    "field_id": 283,
    "uid": "common_quantity"
  },
  "shipping": {
    "name": "В пути",
    "value": null
  },
  "photos": {
    "name": "Фотографии",
    "value": [
      "https://nnz-ipc.ru//images/cms/data/import_files/bd/bd0c65ba71ac11eeb91d00155d50c111_8a1c4858724611eeb91d00155d50c111.png"
    ],
    "field_id": 3202,
    "uid": "photos"
  }
}

Точный набор характеристик зависит от типа товара. Ключи внутри features сформированы legacy-транслитерацией и не совпадают с uid API v2. Фотографии возвращаются в стабильном порядке, одинаковом для разных маршрутов; порядок из неупорядоченных SQL-выборок v1 не воспроизводится.

Персональная цена ​

Для пользователя с уровнем цены, отличным от Розн, после поля price может появиться:

json
{
  "personalPrice": {
    "name": "Персональная цена",
    "value": "1039.56",
    "field_id": 169652,
    "uid": "personalPrice"
  }
}

Цена сохраняет исходный legacy-тип и обычно возвращается строкой.

Один товар ​

http
GET /api/v1/get/item/:id

id — UMI object ID товара.

Если товар не найден или недоступен, маршрут возвращает status=true, data=[] и сообщение в message.

Товары по UMI ID ​

http
GET /api/v1/get/items?id_list=57114409,5366035

Возвращает массив найденных товаров в порядке UMI ID. Неизвестные ID пропускаются. Повторяющиеся ID не добавляют повторные карточки.

Остатки warehouseList не зависят от количества ID в запросе: один и тот же товар возвращает одинаковое количество в одиночной и пакетной выдаче. Ошибочное умножение складских количеств из production v1 исправлено.

Сокращенный batch-ответ, одинаковый по форме для трех списочных маршрутов:

json
{
  "status": true,
  "data": [
    {
      "id": 5366035,
      "name": "E500RM8-4EH",
      "stockNumber": {
        "name": "Артикул",
        "value": "6129678",
        "field_id": 102678,
        "uid": "artikul"
      },
      "price": {
        "name": "Розничная цена",
        "value": "0",
        "field_id": 203252,
        "uid": "roznica_price"
      }
    },
    {
      "id": 57114409,
      "name": "E500RM9",
      "stockNumber": {
        "name": "Артикул",
        "value": "6156782",
        "field_id": 102678,
        "uid": "artikul"
      },
      "price": {
        "name": "Розничная цена",
        "value": "1137.04",
        "field_id": 203252,
        "uid": "roznica_price"
      }
    }
  ],
  "error": {},
  "message": ""
}

Товары по артикулам ​

http
GET /api/v1/get/items/by-stock?stock_list=6156782,ABC-123

Возвращает массив товаров. Результат дедуплицируется по строковому значению stockNumber.value. Для числовых артикулов сохраняется совместимый numeric fallback старой MySQL-схемы.

Товары разделов ​

http
GET /api/v1/get/items/from?id_list=128491

id_list содержит UMI object ID разделов. Выбираются только товары, напрямую связанные с указанными разделами; дочерние разделы автоматически не обходятся.

Необязательный фильтр производителей:

http
GET /api/v1/get/items/from?id_list=128491&vendors=Winmate,GETAC

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

Inline-документация ​

Любой товарный маршрут принимает:

text
include_documentation=true
include_documentation=1

В каждый товар добавляется массив:

json
{
  "documentation": [
    {
      "title": "Руководство пользователя",
      "url": "https://example.com/manual.pdf",
      "fileType": "pdf",
      "size": "1.2 MB",
      "sizeBytes": 1258291
    }
  ]
}

Отдельные маршруты документации входят в контракт production v1, но пока ожидают реализации в compatibility-слое v2.

Поля конфигуратора в товаре ​

Поля hasConfigurator и исходные configurator characteristics видны только администратору или пользователю с configurator=true. Сам конфигуратор описан отдельно.

Уточнения совместимости ​

В выдаче из разделов shipping.value — строка либо null. В одиночной карточке и списках по ID/артикулу — число либо null. Эти маршрутные JSON-типы сохраняются. Inline documentation использует тот же индекс UMI-документов, что и отдельные маршруты документации: известные размеры сохраняются, неизвестные остаются null. Документы другого UMI-объекта того же артикула не подставляются.

Информационный список названий object_configurator_options, доступный при разрешенном конфигураторе, сортируется по названиям. Он не задает бизнес-порядок категорий: порядок категорий и их опций из JSON конфигуратора сохраняется.

Выберите версию API в верхнем меню.