Ваш регион: Колумбус
+7 351 730-47-47
Пн-Пт 8:30-17:30
Личный кабинет
Вернуться в «Мои остатки товаров»

Загрузка остатков товаров с помощью API

Общая информация

API позволяет автоматизировать загрузку и обновление остатков товаров. Для взаимодействия с API используется авторизация по APIKey, который вы можете получить в личном кабинете, в разделе «Мои остатки товаров» .

Получение API-ключа

  1. Перейдите в раздел «Мои остатки товаров» в личном кабинете.
  2. Активируйте способ загрузки «API». Способ загрузки «XML-фид» будет деактивирован автоматически.
  3. Нажмите кнопку «Сгенерировать API-ключ».
  4. Скопируйте «API-ключ» и используйте его при выполнении запросов.
Добавить фид в личном кабинете

Авторизация

Для авторизации запросов используется заголовок Authorization:

POST /api/v1/external/stocks HTTP/1.1
Host: https://лд.рф
Content-Type: application/json
Accept: application/json
Authorization: ApiKey <ВАШ_СГЕНЕРИРОВАННЫЙ_API_КЛЮЧ>

Эндпоинты API

POST Загрузка остатков

URL: /api/v1/external/stocks/import

Предназначен для загрузки нового набора данных по остаткам товаров. При выполнении запроса все предыдущие данные об остатках очищаются и заменяются новыми. В минуту можно отправить до 5 запросов.

{
  "stocks": [
    {
      "productSku": "LD 47.300.15",
      "pointId": "А001",
      "quantity": 300,
      "price": 298.90,
      "name": "Кран шаровой латунный LD Pride 47.15.В-В.Б Ду 15 Ру 40 бабочка"
    },
    {
      "productSku": "11110509402MULD000000000",
      "pointId": "А002",
      "quantity": 25,
      "price": 3000.14,
      "name": "Кран шаровый LD КШЦФ из стали 20 Ду50 Ру4,0МПа"
    }
  ]
}

PUT Обновление количества товаров

URL: /api/v1/external/stocks/update/quantity

Предназначен для обновления количества товаров на указанном складе. В минуту можно отправить до 5 запросов.

{
  "stocks": [
    {
      "productSku": "LD 47.300.15",
      "pointId": "А001",
      "quantity": 300
    },
    {
      "productSku": "11110509402MULD000000000",
      "pointId": "А002",
      "quantity": 25
    }
  ]
}

PUT Обновление цены товара

URL: /api/v1/external/stocks/update/price

Позволяет обновить цену конкретного товара на определённом складе. В минуту можно отправить до 5 запросов.

{
  "stocks": [
    {
      "productSku": "LD 47.300.15",
      "pointId": "А001",
      "price": 1298.90
    },
    {
      "productSku": "11110509402MULD000000000",
      "pointId": "А002",
      "price": 1398.90
    }
  ]
}

Пример ответа API

{
  "result": [
    {
      "productSku": "LD 47.300.15",
      "pointId": "А001",
      "updated": true,
      "errors": []
    },
    {
      "productSku": "11110509402MULD000000000",
      "pointId": "А002",
      "updated": false,
      "errors": [
        { "code": "SKU_NOT_FOUND", "message": "Товар с указанным productSku не найден." },
        { "code": "POINT_NOT_FOUND", "message": "Указанная Вами точка продаж не найдена." },
        { "code": "EMPTY_QUANTITY", "message": "Количество товара на складе не указано или равно нулю." },
        { "code": "EMPTY_PRICE", "message": "Цена товара не указана или равна нулю." }
      ]
    }
  ]
}

Пример ответа при ошибках аутентификации

HTTP/1.1 401 Unauthorized
Content-Type: application/json

{
  "code": "INVALID_APIKEY_FORMAT",
  "message": "Неверный формат API-ключа (ожидается GUID)"
}

Обязательные поля запроса

Каждый элемент в массиве "stocks" должен содержать следующие обязательные поля. Отсутствие любого из них приведёт к ошибке валидации и возврату статуса 400 Bad Request.

Поле Тип Описание
productSku string Артикул товара. Используется для идентификации товара в системе.
pointId string Идентификатор торговой точки, на которую выгружается товар.
quantity integer Остаток товара на указанной точке. Значение должно быть больше нуля.
price float Цена товара. Не может быть равна нулю или отсутствовать.

Возможные статусы ошибок

Код Описание Рекомендации
400
Bad Request
Неверный запрос или некорректные данные. Проверьте наличие и корректность обязательных полей (productSku, pointId, quantity, price).
Убедитесь, что данные отправлены в правильном JSON-формате и соответствуют ожидаемым типам данных.
401
Unauthorized
Отсутствует или некорректный API-ключ. Проверьте правильность API-ключа, указанного в заголовке Authorization.
403
Forbidden
Доступ к ресурсу запрещён. Убедитесь, что способ загрузки через API активирован в вашем личном кабинете и у вас есть необходимые права доступа.
404
Not Found
Указанный эндпоинт не существует. Проверьте URL-адрес запроса на корректность и отсутствие опечаток.
429
Too Many Requests
Превышено допустимое количество запросов. Снизьте частоту отправки запросов. Максимум – 5 запросов в минуту.
500
Internal Server Error
Внутренняя ошибка сервера. Повторите запрос через некоторое время. Если ошибка сохраняется, свяжитесь с вашим менеджером или отправьте обращение через форму обратной связи
504
Gateway Timeout
Время ожидания ответа от сервера истекло. Сервер не успел обработать запрос в установленный лимит (5 минут).
Повторите запрос через некоторое время. Если ошибка сохраняется, свяжитесь с вашим менеджером или отправьте обращение через форму обратной связи

Ограничения

  • Не более 5 запросов в минуту. В случае превышения, доступ может быть временно заблокирован.
  • Максимальное время ожидания ответа от API - 5 минут. Если за это время сервер не ответит, запрос будет завершён с ошибкой таймаута. Пожалуйста, учитывайте это в своих интеграциях.

Список возможных ошибок валидации

Код ошибки Описание ошибки Что делать?
EMPTY_SKU Не указан обязательный артикул товара (SKU) Укажите артикул товара (SKU) в соответствии с требованиями API
SKU_NOT_FOUND Товар с указанным артикулом не найден Проверьте правильность артикула и наличие товара в системе
EMPTY_POINT_ID Не указан идентификатор точки продаж (pointId) Укажите артикул товара (SKU) в соответствии с требованиями API
POINT_NOT_FOUND Указанная точка продаж не найдена Убедитесь, что выбранная точка продаж существует
INVALID_POINT_ID pointId имеет неверный формат (ожидается формат вида A001) Исправьте формат идентификатора, следуя примеру (например, A001)
INVALID_FIRST_LETTER Первая буква pointId должна быть латинской (A-Z) Исправьте формат идентификатора, следуя примеру (например, A001)
EMPTY_QUANTITY Количество товара в точке продаж не указано или равно нулю Заполните поле количества товара
INVALID_QUANTITY Количество должно быть строго больше 0 Укажите положительное количество, больше 0
INVALID_QUANTITY_FORMAT Количество указано неверно Введите корректное числовое значение для количества
INVALID_QUANTITY_TYPE Количество указано неверно (не является целым числом) Введите корректное числовое значение для количества
EMPTY_PRICE Цена товара не указана или равна нулю Заполните поле цены, убедившись, что значение больше нуля
INVALID_PRICE_FORMAT Цена указана неверно Введите корректное числовое значение для цены
PRICE_BELOW_MIN Указанная цена ниже РРЦ Проверьте, чтобы цена не была ниже минимально допустимой

Ошибки аутентификации

При ошибках в заголовке авторизации сервис вернёт HTTP 401 Unauthorized и один из следующих кодов.

Код ошибки Описание Рекомендации
HEADER_MISSING API-ключ не передан в заголовке Authorization Укажите в запросе заголовок
Authorization: ApiKey <ВАШ_КЛЮЧ>
INVALID_HEADER_FORMAT Заголовок Authorization имеет неверный формат Убедитесь, что заголовок начинается с префикса ApiKey
INVALID_APIKEY_FORMAT Неверный формат API-ключа (ожидается GUID) Проверьте, что ключ соответствует GUID
APIKEY_NOT_FOUND API-ключ не найден или неактивен Проверьте, что ключ сгенерирован и активирован в личном кабинете
USER_NOT_FOUND Пользователь не найден для переданного API-ключа Убедитесь, что ключ привязан к существующему пользователю

Получение списка товаров

Для авторизации запросов используется заголовок Authorization:

POST /api/v1/external/export/products HTTP/1.1
Host: https://лд.рф
Content-Type: application/json
Accept: application/json
Authorization: ApiKey <ВАШ_СГЕНЕРИРОВАННЫЙ_API_КЛЮЧ>

POST Получение списка товаров

URL: /api/v1/external/export/products

Данный эндпоинт позволяет получить данные о всех товарах на сайте лд.рф и их связанные атрибуты.

Можно запросить: идентификаторы товаров, цены РРЦ, артикулы, наименования, свойства, связанные файлы и изображения.
Для оптимизации объёма данных укажите только необходимые поля в массиве SELECT.

Если выполнить запрос без тела запроса, в ответе будет возвращён только один параметр - "productSku" для каждого товара.

Тело запроса (опционально):

{
  "SELECT": [
    "id",
    "price",
    "productSku",
    "name",
    "properties",
    "files",
    "pictures"
  ]
}
  • id - идентификатор товара
  • price - цена РРЦ
  • productSku - артикул товара
  • name - наименование товара
  • properties - свойства товара
  • files - файлы
  • pictures - изображения

В ответе будут только те поля, которые вы указали в "SELECT".

Пример ответа:

{
  "products": [
    {
      "id": 1,
      "price": 196378,
      "productSku": "11111509251RGLD000000000",
      "name": "Кран шаровый LD КШЦФР Gas 150/125.025.Н/П.01. из стали 12Х18Н10Т Ду150/125 Ру2,5МПа с редуктором",
      "properties": [
        {
          "name":"Тип продукта",
          "value":"Кран шаровой"
        },
        {
          "name":"Серия",
          "value":"LD"
        },
        {
          "name":"Рабочая среда",
          "value":"Газ"
        }
      ],
      "files": [
        "https://xn--d1an.xn--p1ai/api/v1/document/8d1f7e80-997b-11ee-89ce-005056a4b6de.pdf",
        "https://xn--d1an.xn--p1ai/api/v1/document/3182b3ac-c18b-11ed-b250-005056a4b6de.pdf",
      ],
      "pictures": [
        "https://xn--d1an.xn--p1ai/upload/products/images/bbe/bbe018b25a032512e1a03985cb2f0ec8.png"
      ]
    }
  ]
}

Возможные ошибки:

Код Описание Рекомендация
400 Некорректное значение в поле SELECT Проверьте список доступных полей
401 Ошибка авторизации Проверьте API-ключ
500 Внутренняя ошибка сервера Повторите попытку позже