Залишки по API

Swagger

API надає доступні залишки товарів на складах і у виробництві з деталізацією за містами та кольорами. 

1. Адреса та метод

GET

http://ea.f1s.org.ua:8080/EA/ru_RU/hs/API/GetInfo

2. Параметри запиту

У параметрі URL param передається JSON, закодований для передачі в URL. Тіло GET-запиту не використовується. Обидва поля обов’язкові.

ПолеТипОпис
tokenРядокІндивідуальний токен доступу
includeCharacteristicsBooleanfalse — за товаром; true — за товаром і характеристикою

Без характеристик

curl --get \
  'http://ea.f1s.org.ua:8080/EA/ru_RU/hs/API/GetInfo' \
  --data-urlencode 'param={"token":"<YOUR_TOKEN>","includeCharacteristics":false}'

З характеристиками

curl --get \
  'http://ea.f1s.org.ua:8080/EA/ru_RU/hs/API/GetInfo' \
  --data-urlencode 'param={"token":"<YOUR_TOKEN>","includeCharacteristics":true}'

3. Поля відповіді

ПолеТипОпис
productCodeРядокКод товару
articleРядокАртикул
productNameРядокНазва товару
unitРядокОдиниця вимірювання
stockQuantityЧислоДоступний залишок на складі
productionQuantityЧислоДоступна кількість у виробництві
detailsМасивДеталізація за містами
priceЧислоЦіна, лише якщо її вивантаження дозволено
vatStatusРядок або nullСтатус ПДВ, передається разом із price
characteristicCodeРядокКод характеристики; може бути порожнім
characteristicNameРядокНазва характеристики
colorРядокКолір, лише якщо заповнений

За includeCharacteristics: true додатково передаються characteristicCode та characteristicName. Поле color передається тільки за заповненого кольору. Якщо вивантаження цін вимкнено, price і vatStatus відсутні. Ціна 0 — числове значення, а не відсутність поля.

vatStatus: included — з ПДВ; excluded — без ПДВ; null — статус не визначено.

4. Деталізація за містами та кольорами

Кожний елемент details містить city (рядок або null), stockQuantity і productionQuantity (числа). Необов’язковий масив colors містить color, stockQuantity та productionQuantity. Якщо кольори не заповнені, colors відсутній. Кількості без кольору враховуються в підсумку міста, але не включаються до colors; сума за кольорами може бути меншою за підсумок міста. Суми за містами дорівнюють загальним кількостям позиції. Невизначене місто передається як city: null.

Порожній масив [] означає відсутність доступних залишків. Коди потрібно зберігати як рядки з початковими нулями.

5. Приклад без характеристик

Приклади містять умовні дані.

[
  {
    "productCode": "0000005870",
    "article": "ЕА-0005870",
    "productName": "Olflex Classic 110 18G1",
    "unit": "м",
    "stockQuantity": 200,
    "productionQuantity": 100,
    "details": [
      {
        "city": "Запоріжжя",
        "stockQuantity": 150,
        "productionQuantity": 100,
        "colors": [
          {
            "color": "Чорний",
            "stockQuantity": 150,
            "productionQuantity": 100
          }
        ]
      },
      {
        "city": "Кам'янець-Подільський",
        "stockQuantity": 50,
        "productionQuantity": 0
      }
    ]
  }
]

6. Приклад з характеристиками

Приклади містять умовні дані.

[
  {
    "productCode": "0000005870",
    "article": "ЕА-0005870-000004287",
    "productName": "Olflex Classic 110 18G1",
    "unit": "м",
    "stockQuantity": 40,
    "productionQuantity": 0,
    "price": 42.5,
    "vatStatus": "included",
    "characteristicCode": "000004287",
    "characteristicName": "Відрізок 40 м",
    "details": [
      {
        "city": "Запоріжжя",
        "stockQuantity": 40,
        "productionQuantity": 0
      }
    ]
  }
]

7. Статуси та помилки

HTTPОпис
200Успішне отримання даних
400Некоректний JSON або параметри
403Токен відсутній, недійсний або доступ заборонено
500Внутрішня помилка отримання або формування відповіді

Коди error передаються англійською, повідомлення message — українською незалежно від мови цієї інструкції. Приклади помилок:

{
  "error": "access_denied",
  "message": "Токен не вказано"
}
{
  "error": "internal_error",
  "message": "Не вдалося отримати залишки. Зверніться до постачальника"
}
Content-Type: application/json; charset=utf-8

Якщо ціна не передана, раніше збережену ціну змінювати не потрібно. У разі помилки запиту попередні дані слід зберегти. Токен доступу є конфіденційним.