Інтеграція БАС
Групи товарів
Групи товарів поділяються на основні групи та підгрупи. Щоб створити підгрупу, потрібно в id_owner_group вказати id_group батьківської групи.
GET: /api/{locale}/groupGoods
| Поле | Тип | За замовченням | Коментар |
| id_group | id_group | id_group | |
| name_group | string(128) | Назва групи | |
| id_owner_group | integer | null | Ідентифікатор власника групи | |
| id_image | integer | null | Ідентифікатор зображення | |
| active | boolean | Активний статус групи | |
| guid | string | Глобальний унікальний ідентифікатор | |
| time_create | string(timestampz) | Час створення | |
| time_change | string(timestampz) | Час останньої зміни | |
| hasChildren | boolean | Наявність дочірніх елементів |
POST: /api/{locale}/groupGoods
| Поле | Тип | За замовченням | Коментар |
| name_group* | string(128) | Назва групи | |
| id_owner_group | integer | null | Ідентифікатор власника групи | |
| id_image | integer | null | Ідентифікатор зображення | |
| active* | boolean | true | Активний статус групи |
PUT: /api/{locale}/groupGoods/{guid_group}
| Поле | Тип | За замовченням | Коментар |
| name_group* | string(128) | Назва групи | |
| id_owner_group | integer | null | Ідентифікатор власника групи | |
| id_image | integer | null | Ідентифікатор зображення | |
| active* | boolean | true | Активний статус групи |
Рівні цін
У кожного проекту є сталий рівень ціни Закупівельний (id_price_level = -1). Усі наступні створенні йдуть за автоінкрементом 1 і відповідають за Роздрібний рівень цін.
GET: /api/{locale}/price-level
| Поле | Тип | За замовченням | Коментар |
| id_price_level | bigIncrement | Унікальний ідентифікатор рівня цін | |
| name_price_level | string(128) | Назва рівня цін | |
| active | boolean | true | Активний статус рівня цін |
| guid | string | uuid | Глобальний унікальний ідентифікатор |
| time_create | string(timestampz) | Час створення | |
| time_change | string(timestampz) | Час останньої зміни |
POST: /api/{locale}/price-level
| Поле | Тип | За замовченням | Коментар |
| name_price_level | string(128) | Назва рівня цін | |
| active | boolean | true | Активний статус рівня цін |
PUT: /api/{locale}/price-level/{guid_price_level}
| Поле | Тип | За замовченням | Коментар |
| name_price_level* | string(128) | Назва рівня цін | |
| active* | boolean | true | Активний статус рівня цін |
Одиниці виміру
Одиниця виміру співвідноситься до товару по id_goods на рівні бази, та guid goods на рівні запиту API. У кожного товару обов’язково повинна бути одна од. виміру за-замовчуванням (is_default = true) з коефіцієнтом (rate = 1.0).
Додаткові од. виміру обов’язково повинні мати сумісний Тип од. виміру до базової одиниці:
Якщо базова Цілий тип(1): тільки ціле(1).
Якщо базова Кратне 25%(2): кратне 0.25(2).
Якщо базова Дробова(3): будь-яке ціле або дробове значення.
GET: /api/{locale}/goods/{guid_good}/units
| Поле | Тип | За замовченням | Коментар |
| id_unit | integer | Унікальний ідентифікатор одиниці
виміру |
|
| id_goods | integer | Унікальний ідентифікатор товару | |
| name_unit | string(10) | Назва одиниці | |
| full_name | string | Повна назва одиниці | |
| short_name | string | Скорочена назва | |
| code | string | Код одиниці | |
| type_unit | integer | Тип одиниці:
1 – ціле число 2 – кратне 25% 3 – дробове |
|
| rate | numeric(15,3) | Коефіцієнт | |
| is_default | boolean | Ознака одиниці за замовчуванням | |
| for_ordering | boolean | Доступність для замовлення | |
| is_storage_residues | boolean | Ознака одиниці зберігання залишків | |
| max_count | numeric(10,3) | Максимальна кількість для продажу однією строкою | |
| percent_deviation | numeric | Відсоток відхилення | |
| good | object | Інформація про товар | |
| unit_sample | object | Зразок одиниці з додатковими атрибутами | |
| brutto_weight | integer | Вага брутто | |
| height | integer | Висота | |
| width | integer | Ширина | |
| depth | integer | Глибина | |
| active | boolean | Активний статус од. виміру | |
| guid | string | Глобальний унікальний ідентифікатор | |
| time_create | string(timestampz) | Час створення | |
| time_change | string(timestampz) | Час останньої зміни |
POST: /api/{locale}/goods/{guid_goods}/units
| Поле | Тип | За замовченням | Коментар |
| id_unit* | integer | Унікальний ідентифікатор одиниці
виміру |
|
| type_unit* | integer | Тип одиниці:
1 – ціле число 2 – кратне 25% 3 – дробове |
|
| rate* | numeric(15,3) | Коефіцієнт | |
| max_count | numeric(10,3) | Максимальна кількість для продажу однією строкою | |
| brutto_weight | integer | 0 | Вага брутто |
| percent_deviation | numeric | 0.0 | Відсоток відхилення |
| for_ordering | boolean | false | Доступність для замовлення |
| is_default* | boolean | false | Ознака одиниці за замовчуванням |
| is_storage_residues* | boolean | false | Ознака одиниці зберігання залишків |
| height | integer | Висота | |
| width | integer | Ширина | |
| depth | integer | Глибина | |
| active* | boolean | Активний статус од. виміру |
PUT: /api/{locale}/goods/{guid_goods}/units/{guid_unit}
| Поле | Тип | За замовченням | Коментар |
| type_unit* | integer | Тип одиниці:
1 – ціле число 2 – кратне 25% 3 – дробове |
|
| rate* | numeric(15,3) | Коефіцієнт | |
| max_count | numeric(10,3) | Максимальна кількість для продажу однією строкою | |
| brutto_weight | integer | 0 | Вага брутто |
| percent_deviation | numeric | 0.0 | Відсоток відхилення |
| for_ordering | boolean | false | Доступність для замовлення |
| is_default* | boolean | false | Ознака одиниці за замовчуванням |
| is_storage_residues* | boolean | false | Ознака одиниці зберігання залишків |
| height | integer | Висота | |
| width | integer | Ширина | |
| depth | integer | Глибина | |
| active* | boolean | Активний статус од. виміру |
Ціни
Ціна створюється для комбінації товару(id_goods) + базової од. виміру(id_unit) + серії (id_series) + рівень цін(id_price_level).
Створити ціну можна лише раз при створенні товару. При створенні потрібно врахувати, що мінімальна ціна повинна бути не менше 10 копійок (0.10). Максимальна ціна не більше Ціни(частіше рівняється Ціні).
Оновлення ціни відбувається документом Переоцінка.
GET: /api/{locale}/goods/{guid_good}/goodsPrice/prices
| Поле | Тип | За замовченням | Коментар |
| id_goods | integer | Ідентифікатор товару | |
| name_goods | string | Назва товару | |
| id_unit | integer | Ідентифікатор одиниці виміру | |
| name_unit | string | Назва одиниці виміру | |
| id_series | string | Ідентифікатор серії товару | |
| name_series | string | Назва серії товару | |
| id_price_level | integer | Ідентифікатор рівня ціни | |
| name_price_level | string | Назва рівня цін | |
| min_price | numeric(15,4) | Мінімальна ціна | |
| max_price | numeric(15,4) | Максимальна ціна | |
| active | boolean | Активний статус ціни |
POST: /api/{locale}/goods/{guid_good}/goodsPrice
| Поле | Тип | За замовченням | Коментар |
| id_goods | integer | Ідентифікатор товару | |
| id_unit | integer | Ідентифікатор одиниці виміру | |
| id_series | string | – | Ідентифікатор серії товару |
| id_price_level | integer | Ідентифікатор рівня ціни | |
| price | numeric(15,4) | Ціна | |
| min_price | numeric(15,4) | Мінімальна ціна | |
| max_price | numeric(15,4) | Максимальна ціна | |
| active | boolean | Активний статус ціни |
Штрих-код
GET: /api/{locale}/goods/{guid_good}/barcodes
| Поле | Тип | За замовченням | Коментар |
| bar_code | numeric-string(21) | Унікальний штрих-код | |
| id_goods | integer | Ідентифікатор товару | |
| id_unit | integer | Ідентифікатор одиниці виміру | |
| id_series | string | Ідентифікатор серії товару | |
| ext_bar_code | string(5) | null | – | Розширений штрих-код 13+2, 15+5 |
| name_series | string | Назва серії | |
| name_unit | string | Назва одиниці виміру | |
| active | boolean | Активний статус штрих-коду | |
| guid | string | Глобальний унікальний ідентифікатор | |
| time_create | string(timestampz) | Час створення | |
| time_change | string(timestampz) | Час останньої зміни |
POST: /api/{locale}/goods/{guid_good}/barcodes
| Поле | Тип | За замовченням | Коментар |
| bar_code* | numeric-string(21) | Унікальний штрих-код | |
| id_unit* | integer | Ідентифікатор одиниці виміру | |
| id_series* | string | Ідентифікатор серії товару | |
| ext_bar_code | string(5) | null | – | Розширений штрих-код 13+2, 15+5 |
| active* | boolean | Активний статус ціни |
PUT: /api/{locale}/goods/{guid_good}/barcodes/{guid_barcode}
| Поле | Тип | За замовченням | Коментар |
| bar_code* | numeric-string(21) | Унікальний штрих-код | |
| id_unit* | integer | Ідентифікатор одиниці виміру | |
| id_series* | string | Ідентифікатор серії товару | |
| ext_bar_code | string(5) | null | – | Розширений штрих-код 13+2, 15+5 |
| active* | boolean | Активний статус ціни |
Flow створення товару
- Зарезервувати id для товару. Виконати запит:
POST: /api/{locale}/goods/id/last
У відповідь прийте id_goods та guid.
- Створити як мінімум базову одиницю виміру зі значенням
is_default = true. Виконати запит:
POST: /api/{locale}/goods/{guid_goods}/units
- Створити як мінімум одну базову серію зі значенням
id_series = ‘-’,name_series = ‘-’. Виконати запит:
POST: /api/{locale}/goods/{guid_goods}/series
- Заповнити товар атрибутами. В запиті обов’язково вказати
id_goodsтаguidотримані в першому кроці. Виконати запит:
POST: /api/{locale}/goods
- Опційно. Створити ціну(закупівельно, роздрібну тощо). Виконати запит:
POST: /api/{locale}/goods/{guid_good}/goodsPrice
- Опційно. Створити штрих–код. Виконати запит:
POST: /api/{locale}/goods/{guid_good}/barcodes