Перейти до вмісту

Інтеграція з WMS

Матеріал з K2 ERP Wiki

type: boolean

"shipped_quantity": 2
 version: "1.0.0"

Комірник сканує:
 type: string
 "movement_id": "MV-000301",

→ WMS виконує фактичне приймання
K2 ERP → задача для складу → WMS → фактичне виконання → K2 ERP
 "items": [

Розбіжності мають потрапляти в окремий журнал або звіт.; request_payload: dict | None = None

 "barcode": "4820000000012",

* залишки в ERP не збігаються з фактичними залишками на складі;
* менеджери продають товар, який фізично не знайдено;
* складський облік не бачить актуальних замовлень;
* відвантаження підтверджуються вручну;
* документи дублюються;
* інвентаризація затягується;
* зростає кількість помилок;
* складські операції не потрапляють в управлінський обліковий облік;
* неможливо оперативно контролювати статус замовлення;
* користувачі працюють у Excel, месенджерах і телефоном.; __TOC__
Типові помилки:
→ створюються документи оприбуткування або списання
 "receipt_id": "RC-000125",

K2 ERP імпортує результат

title: "Номенклатура"

Використання [[1С]]/[[BAS]] пов’язане з санкційним полем України: відповідні обмеження вводилися рішеннями РНБО через укази Президента України №133/2017 та №601/2024, а офіційно затверджений перелік забороненого до використання ПЗ ведеться Держспецзв’язку.; Статус у K2 ERP

Комірка A-01-01-01 → Комірка B-03-02-04
 "cell": "A-01-01-01"
 "items": [
Приклад довідника штрихкодів:
 "batch": "B-2026-05",
Приклад задача на відвантаження:
Для компаній, які переходять з [[1С]]/[[BAS]], інтеграційні функціональні можливості з WMS — це можливість не без ускладнень перенести старий обмін у нову систему, а побудувати сучасну API-first архітектуру без російської технологічної залежності, з нормальним журналом, моніторингом, статусами, повторними спробами й прозорою логікою.; Статус

!; title: "Ідентифікатор документа"

Іноді інтеграцію хочуть зробити через прямий доступ до бази даних.; Інвентаризація — це перевірка фактичних залишків.; Перевага !; Приклад: → відповідальні приймають рішення для бізнесу

default: false

істотно:

"shipment_id": "SH-000501",

Фактичне відвантаження

Помилки потрібно не ховати, а показувати відповідальним користувачам.; → K2 ERP створює або оновлює документ надходження !;== ORM для інтеграції ==

Висновок

"sku": "PHONE-001",

Зазвичай з K2 ERP у WMS передаються: як ілюстрація, якщо WMS двічі надіслала підтвердження відвантаження, K2 ERP не повинна двічі списати товар.; Коментар

type: boolean
}
type: json
{| class="wikitable" style="width:100%;"
<syntaxhighlight lang="json">
Черги корисні для:
 fields:
 "expected_quantity": 50,
 title: "Журнал обміну з WMS"

На основі [[YML]] можуть створюватися [[ORM|ORM-моделі]].; Це небезпечний підхід.;<ref>https://zakon.rada.gov.ua/laws/show/133/2017</ref> <ref>https://zakon.rada.gov.ua/laws/show/601/2024</ref> <ref>https://cip.gov.ua/ua/statics/perelik-zaboronenogo-do-vikoristannya-programnogo-zabezpechennya-ta-komunikaciinogo-merezhevogo-obladnannya</ref>
!; "package_id": "PK-10001",
|-
| За що відповідає K2 ERP?; Товар
Проблеми:
POST /api/wms/inventory
== Звірка залишків ==
Черги повідомлень корисні, коли потрібно забезпечити надійність.; Це складський оберіг.; Ризик
[[Категорія:BAS]]
 "warehouse": "MAIN",

звірку та синхронізацію реалізується засобами '''K2 ERP веде управлінський і фінансовий обліковий облік, WMS веде фізичні залишки по комірках, а інтеграційні функціональні можливості.'''

 ]
складський облік сервісу
Після цього [[K2 ERP]] має змогу:

 "expected_quantity": 20,

синхронізації документів забезпечується через | Це обмін даними між [[K2 ERP]] і системою керування складом; додатково реалізовано довідників, залишків, статусів і фактичних складських операцій.; !;== Синхронізація залишків ==
== Зовнішні посилання ==
Резерв має змогу бути:
<syntaxhighlight lang="json">
|-
| Створено
| Не отримано
| Замовлення ще не передано в WMS
|-
| Передано на складський облік
| New
| WMS отримала задача
|-
| Відбирається
| Picking
| Комірник виконує відбір
|-
| Упаковано
| Packed
| Товар підготовлено
|-
| Відвантажено
| Shipped
| Товар покинув складський облік
|-
| Помилка
| Error
| Потрібна ручна перевірка
|}

 "expected_date": "2026-06-01",

переважні аспекти API:

ключовий складський облік  складський облік сервісу

WMS функціонує з адресним зберіганням:

* товар не знайдено в WMS;
* штрихкод не збігається;
* комірка не існує;
* недостатньо залишку;
* документ уже виконано;
* статус не надає можливість зміну;
* невідома партія;
* неправильна одиниця виміру;
* дубль зовнішнього ідентифікатора;
* проблема з API;
* таймаут;
* помилка авторизації.; }
Український бізнес-середовище має поступово відмовлятися від російської технологічної екосистеми, особливо там, де йдеться про критичні інформаційні дані, складську логістику, товарні залишки, обороти, клієнтів і документи.; |-
| Який найкращий спосіб інтеграції?; |-
| За що відповідає WMS?; ]

|- | NB-001 | 12 | 12 | 0 | Добре |- | MN-001 | 25 | 24 | -1 | Потрібна перевірка |- | KB-001 | 80 | 80 | 0 | Добре |}

Статуси документів

"comment": "2 одиниці пошкоджено"

бізнес-процес має змогу виглядати так:

}

</syntaxhighlight>

"quantity": 100

</syntaxhighlight> З такого опису можна автономно створити частину структури інтеграційного модуля.; | Єдині довідники, статуси, журнал обміну, ідемпотентність, звірка залишків і чітке розділення відповідальності між ERP та WMS.; "SN000001",

{ → WMS повертає фактичні залишки

{

|- | Контрагенти | K2 ERP | WMS має змогу отримувати тільки потрібні інформаційні дані |- | Номенклатура | K2 ERP | WMS отримує складські властивості |- | Комірки | WMS | ERP має змогу отримувати агреговану інформацію |- | Замовлення покупців | K2 ERP | WMS отримує задача на відбір |- | Фактичний відбір | WMS | ERP отримує підтвердження |- | Фінансові документи | K2 ERP | WMS не повинна вести фінансовий блок |- | Фізичні залишки по комірках | WMS | ERP отримує підсумки й розбіжності |- | Управлінські залишки | K2 ERP | Формуються на основі документів і підтверджень |}

type: datetime

Складська інтеграційні функціональні можливості впливає на товарні залишки, з цієї причини її не можна робити “аби працювало”.;

Див.; додатково

Партії, серії та терміни придатності

}

Штрихкоди і ТЗД

Інтеграційний компонент

title: "Статус"

Webhooks

Статуси дозволяють менеджерам бачити реальну картину.; K2 ERP

}

Для цього застосовують, коли потрібно ідемпотентність.; "barcode": "4820000000011", }

title: "Вага"
"shipped_at": "2026-06-01T16:20:00",
class WmsExchangeLog(BaseModel):
'''істотно про 1С/BAS.''' [[]] і [[BAS]] пов’язані з російською технологічною екосистемою та перебувають у санкційному полі України.; У WMS цього мало.; Спосіб
Це надає можливість працювати з журналом інтеграції як із нормальним об’єктом системи.;

завдяки наявності WMS користувачі можуть управляти фізичним складом.; Підхід

Це зменшує кількість ручних помилок.; Така інтеграційні функціональні можливості надає можливість поєднати фінансовий, управлінський і товарний обліковий облік в K2 ERP з операційною складською логікою: прийманням товарів, розміщенням по комірках, відбором, пакуванням, відвантаженням, переміщенням, інвентаризацією, контролем партій, серій, термінів придатності і роботою зі штрихкодами.; Коли використовувати

→ комірники сканують товари

→ комірник сканує товари

!; |- | Чи можна інтегрувати через файли?;== інтеграційні функціональні можливості номенклатури == Відвантаження — ще один ключовий сценарій.; У K2 ERP товар має змогу мати управлінські, облікові й комерційні властивості.; характеристика

  • можна зламати цілісність даних;
  • складно контролювати права;
  • складно версіонувати;
  • зміна структури таблиць ламає інтеграцію;
  • немає нормального журналу бізнес-операцій;
  • важко підтримувати;
  • складно масштабувати.; інтеграційні функціональні можливості потрібна, щоб K2 ERP і WMS не жили окремими життями.; "order_id": "SO-00215",

Приклад статусів замовлення:

!; |- | Чому це істотно при переході з 1С/BAS?; Значення !; } !; Дія

"cell_type": "picking",

{

"success": false,

інтеграційні функціональні можливості з WMS зазвичай охоплює кілька ключових сценаріїв:

document_type: str

|- | 1 | K2 ERP | Створюється замовлення покупця |- | 2 | K2 ERP | Перевіряється доступність товару |- | 3 | K2 ERP | Формується задача на відвантаження |- | 4 | Інтеграційний компонент | Передає задача в WMS |- | 5 | WMS | Створює задача на відбір |- | 6 | WMS | Комірник сканує товар і комірку |- | 7 | WMS | Підтверджує фактичний відбір |- | 8 | WMS | Пакує і відвантажує товар |- | 9 | Інтеграційний компонент | Передає результат у K2 ERP |- | 10 | K2 ERP | Оновлює статус замовлення і створює документи |}

як ілюстрація, WMS має змогу надіслати в K2 ERP подію про відвантаження:

status:
values:

Синхронізація довідників

У K2 ERP має змогу створюватися документ інвентаризації.; Вона функціонує з комірками, зонами, маршрутами відбору, терміналами збору даних, штрихкодами, партіями, серіями, палетами, коробками, інвентаризацією та складськими завданнями.; "inventory_id": "INV-000045",

title: "Артикул"
}
title: "Відповідь" У K2 ERP інтеграційний компонент має змогу бути описаний через YML.; Статус у WMS "quantity": 2 WMS має змогу повернути фактичний результат приймання.; |-
Чи варто робити прямий обмін через базу даних?;</syntaxhighlight>
При переході на [[K2 ERP]] варто не копіювати старий механізм, а створити сучасну інтеграційну архітектуру через [[API]], [[JSON]], журнали обміну, черги та нормальні модулі.; },

 "operation_id": "WMS-EVENT-000000123",

Інтеграційний компонент потрібен, щоб:

 "serial_numbers": [

* приймання товарів;
* розміщення товарів по комірках;
* адресне зберігання;
* переміщення всередині складу;
* відбір товарів;
* пакування;
* відвантаження;
* інвентаризацію;
* роботу з терміналами збору даних;
* штрихкодування;
* контроль партій і серій;
* контроль термінів придатності;
* керування складськими завданнями;
* оптимізацію маршрутів комірників;
* контроль фактичних залишків.;[[Категорія:Українське програмне забезпечення]]

 "timestamp": "2026-06-01T16:25:00",

 type: string

}

{ }

response_payload: dict | None = None
"document_id": "SH-000501",
{{DISPLAYTITLE:Інтеграція з WMS}}
'''інтеграційні функціональні можливості K2 ERP з WMS  це міст між управлінським обліком і реальним складом, де кожне замовлення, кожна коробка і кожен штрихкод мають своє місце в єдиній цифровій системі.'''
 weight:
  • перетворювати формати;
  • контролювати помилки;
  • вести журнал;
  • робити повторні спроби;
  • перевіряти інформаційні дані;
  • відділяти бізнес-логіку від транспортного обміну.; | Зазвичай ні.;== переважні аспекти інтеграції K2 ERP з WMS ==

</syntaxhighlight>

↓ статуси, залишки, результати
За фізичне виконання складських операцій: приймання, розміщення, відбір, пакування, відвантаження, комірки, штрихкоди, партії й серії.; Головна платформа

Окремо варто відзначити тобто системою керування складом.; Але на реальному складі його ще потрібно знайти, взяти з правильної комірки, перевірити партію, відсканувати штрихкод, не переплутати коробки, не відвантажити не з цієї причини клієнту й не покласти палету туди, де її потім шукатимуть три дні.; "status": "success",

; характеристика
  • кількість успішних обмінів;
  • кількість помилок;
  • середній час відповіді;
  • кількість повторних спроб;
  • кількість необроблених повідомлень;
  • час останнього успішного обміну;
  • критичні помилки;
  • розбіжності залишків.; У K2 ERP міжскладське переміщення має змогу бути документом управлінського обліку.; },

K2 ERP формує файл shipments_20260601.json }

Приймання товару

WMS часто функціонує з терміналами збору даних.; { K2 ERP Приклад запису:

інтеграційні функціональні можливості створює єдиний контур:
 "expiry_date": "2027-05-31",
 "error": {
<syntaxhighlight lang="text">
== API-інтеграція ==
{| class="wikitable" style="width:100%;"
K2 ERP створює замовлення покупця
 "expected_quantity": 20
Приклад партійного обліку:
}
 "items": [

K2 ERP створює замовлення постачальнику

* створити документ надходження;
* зафіксувати розбіжності;
* створити акт розбіжностей;
* повідомити відповідального менеджера;
* оновити залишки;
* сформувати задачу щодо пошкодженого товару.; !;[[WMS]] знає, як саме це виконати на складі: з якої комірки взяти, куди покласти, яким маршрутом відібрати, що просканувати і як підтвердити операцію.; type: string
== Тестування інтеграції ==
 "sku": "NB-001",
Типові помилки:
API інтеграції має версіонуватися.; type: decimal
 "field": "items [0].sku"
{
У [[K2 ERP]] інтеграційні функціональні можливості з WMS має розглядатися не як “обмін файликом раз на добу”, а як частина сучасної цифрової архітектури підприємства, де [[ERP]] відповідає за бізнес-документи, фінансовий блок, закупівельна діяльність, продажі та реалізація, договори, ціни, контрагентів і управлінську аналітику, а [[WMS]]  за точне фізичне виконання складських операцій.; Залишок K2 ERP
== Черги повідомлень ==
}
{

 WMS формує маршрут відбору

Існує кілька способів інтеграції з WMS.; "shipment_id": "SH-000501"
/api/v2/wms/shipments
 "customer_id": 125,
<syntaxhighlight lang="json">
У [[ERP]] товар має змогу красиво лежати в таблиці.; "message": "Товар з артикулом NB-001 не знайдено в WMS",
 title: "інтеграційні функціональні можливості з WMS"
WMS зазвичай відповідає за:
 "completed_at": "2026-06-02T18:10:00",
 type: string
[[Категорія:Альтернатива 1С]]
 unit:
Приклад серійного обліку:
 default: false
}
entity: product
}
 {
 "system_quantity": 12,
 "sku": "KB-001",
У WMS внутрішньоскладське переміщення має змогу бути операційним завданням.;

K2 ERP створює документ інвентаризації

Приклад умовної Python-моделі:

Міграційне правило. Якщо стара інтеграційні функціональні можливості з WMS у 1С працювала тільки з цієї причини, що всі боялися її вимкнути, це не інтеграційні функціональні можливості.; !;== Переміщення товарів ==

"sku": "MN-001",
;== Приклад процесу інтеграції від замовлення до відвантаження ==

Помилки інтеграції

Потрібні показники:

; "type": "internal", </syntaxhighlight> "reservation_id": "RS-00077",
 WMS повертає фактичні кількості в K2 ERP
  довідники, документи, задача
<syntaxhighlight lang="json">

Він має фіксувати:
 "requested_quantity": 2,
!; '''інтеграційні функціональні можливості з WMS'''  це обмін даними між [[ERP]]-системою та [[WMS|Warehouse Management System]].; component:

* обліковим;
* фізичним;
* по складу;
* по комірці;
* по партії;
* по серії;
* з терміном дії.;<syntaxhighlight lang="text">

}

{| class="wikitable" style="width:100%;"

Webhook надає можливість одній системі повідомити іншу про подію.; Держспецзвязку додатково оприлюднила перелік забороненого до використання програмного забезпечення та комунікаційного обладнання, де серед іншого згадуються продукти 1С, BAS та UA-Бюджет.; |-
| Що таке інтеграційні функціональні можливості з WMS?; Після цього [[K2 ERP]] має змогу оновити статус замовлення, створити реалізацію, передати номер ТТН клієнту або запустити інтеграцію зі службою доставки.; "sku": "MN-001",
 "items": [
 "accepted_at": "2026-06-01T11:40:00",

 "supplier_id": 45,

</div>

 "items": [

* фармацевтики;
* харчових продуктів;
* електроніки;
* обладнання;
* запчастин;
* косметики;
* медичних товарів;
* товарів з гарантією.; type: boolean

<syntaxhighlight lang="json">

* не передавати зайві інформаційні дані;
* використовувати пакетну обробку;
* застосовувати черги;
* робити пагінацію;
* кешувати довідники;
* оптимізувати запити;
* використовувати індекси;
* не блокувати користувацькі операції довгими обмінами.; * немає єдиного ідентифікатора товару;
* штрихкоди ведуться хаотично;
* ERP і WMS по-різному трактують одиниці виміру;
* відсутня звірка залишків;
* документи дублюються;
* помилки інтеграції не видно користувачам;
* немає журналу обміну;
* статуси не синхронізуються;
* WMS і ERP мають різні довідники складів;
* не визначено, яка платформа головна для певних даних;
* не враховано партії та серії;
* API не версіонується;
* інтеграційні функціональні можливості зроблена прямим доступом у базу;
* відсутні повторні спроби.; "warehouse": "MAIN",
 }
 "timestamp": "2026-06-01T16:20:00"
== Типові помилки інтеграції з WMS ==
Тестові сценарії:
Файловий обмін  старіший, але іноді практичний спосіб.; інтеграційні функціональні можливості з WMS має бути захищеною.; Дія
Приклад звірки:

Це актуально для:

 "cell": "A-01-02-01",
Правильна інтеграційні функціональні можливості надає можливість зменшити ручну роботу, прискорити відвантаження, покращити точність залишків, контролювати партії, серії, комірки, штрихкоди, інвентаризації та статуси замовлень.;<syntaxhighlight lang="text">

 ]

Перед тим як обмінюватися документами, потрібно синхронізувати довідники.; | За бізнес-документи, обліковий облік, продажі та реалізація, закупівельна діяльність, фінансовий блок, аналітику, довідники, інтеграції та управлінські процеси.; {

Це надає можливість оновлювати інтеграцію без аварійного ламання старих клієнтів.; У менеджера замовлення готове до відвантаження, а комірник дивиться на порожню полицю й філософськи мовчить.; Це ризиковано для цілісності, безпеки й підтримки.; |-
| Що найважливіше в інтеграції?; "barcodes": [

Між складами:

!; type: json

 "receipt_id": "RC-000125",

<syntaxhighlight lang="text">
 "quantity": 10,
<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;">
{
POST /api/wms/receipts
 id: int
== Приклад процесу приймання ==
type: string
 товар прибуває на складський облік

 "sku": "NB-001",

* масового обміну;
* високого навантаження;
* асинхронної обробки;
* повторних спроб;
* складних інтеграцій;
* розподіленої архітектури.; {

== Санкційний аспект при заміні 1С/BAS ==

== Чому прямий доступ до бази небажаний ==
"shipment_id": "SH-000501",

YML-опис інтеграційного компонента

"aisle": "03",
; response_payload:
]

Перед запуском потрібно провести тестування.; Залишок WMS K2 ERP → WMS підтверджує відвантаження K2 ERP має отримувати від WMS фактичні партії та серії, які були прийняті або відвантажені.; Цей спосіб простіший, але має недоліки: затримки, складність контролю помилок, ризик дублів і слабша онлайн-видимість.; type: register

"quantity": 10

→ K2 ERP передає очікуване приймання в WMS

 }
Приклад довідника товару у форматі [[JSON]]:
 "status": "shipped",

Саме для цього існують WMS-системи.; "expected_quantity": 50

name:

ключовий складський облік

"unit": "шт",

</syntaxhighlight>

інтеграційні функціональні можливості має передавати не тільки інформаційні дані, а й статуси.; "system_quantity": 25,

"sku": "NB-001",
{
Розбіжності залишків Регулярна звірка, чітка карта відповідальності
Дублі документів Ідемпотентність і унікальні ідентифікатори
Помилки довідників Єдині коди товарів, контроль штрихкодів
Відмова однієї системи Черги, повторні спроби, журнал обміну
Неправильні статуси Узгоджена статусна модель
Складність підтримки Документація, API, моніторинг
Небезпечна інтеграційні функціональні можливості напряму в БД Використовувати API або інтеграційний компонент

</syntaxhighlight>

ERP і WMS мають різні ролі, але повинні працювати разом.;

Приклад YML-опису складських властивостей товару:

  • довідники синхронізуються;
  • товари мають унікальні артикули;
  • штрихкоди коректні;
  • одиниці виміру узгоджені;
  • склади й комірки налаштовані;
  • API функціонує;
  • авторизація налаштована;
  • журнал обміну ведеться;
  • помилки видно користувачам;
  • повторні спроби працюють;
  • статуси синхронізуються;
  • залишки звіряються;
  • тестові сценарії пройдені;
  • відповідальні користувачі навчені;
  • є собою план дій при аварії.; → замовлення резервується

У старих системах обмін часто міг працювати через:

title: "Серійний обліковий облік"
  • тисячі сканувань;
  • сотні відвантажень;
  • багато переміщень;
  • регулярні інвентаризації;
  • масова синхронізація залишків;
  • інтеграції зі службами доставки.; У K2 ERP краще зробити нормально.;
"SN000003"
title: "Одиниця виміру"
- error
"rack": "05",
;[1] [2] [3]

Формати:

  • дату й час запиту;
  • напрям обміну;
  • тип документа;
  • ідентифікатор документа;
  • статус;
  • помилки;
  • тіло запиту;
  • тіло відповіді;
  • користувача або сервіс;
  • повторні спроби;
  • час виконання.; "product_id": 1001,
POST /api/wms/products
 created_at:
 "sku": "KB-001",
 },

 {
"direction": "WMS_TO_K2",
{

fields:

[[Категорія:Адресне зберігання]]
|-
| API
| Онлайн-обмін через HTTP/REST або інший API
| Сучасний ключовий сценарій
|-
| Webhooks
| WMS або K2 ERP повідомляє іншу систему про подію
| Для статусів і подій
|-
| Черги повідомлень
| Обмін через брокер повідомлень
| Для надійного асинхронного обміну
|-
| Файловий обмін
| CSV, XML, JSON-файли
| Для старих або простих систем
|-
| Прямий доступ до БД
| Читання/запис у таблиці
| Небажано, тільки у виняткових випадках
|-
| Гібридний підхід
| Комбінація API, файлів і черг
| Для складних проєктів
|}

Якщо вони не інтегровані, бізнес-середовище отримує дві реальності: в одній системі товар є собою, в іншій його не можуть знайти.; |-
| 1
| K2 ERP
| Створюється замовлення постачальнику
|-
| 2
| K2 ERP
| Передається очікуване приймання в WMS
|-
| 3
| WMS
| Комірник приймає товар
|-
| 4
| WMS
| Скануються штрихкоди, партії, серії
|-
| 5
| WMS
| Товар розміщується в комірки
|-
| 6
| WMS
| Повертає фактичний результат
|-
| 7
| K2 ERP
| Створює документ надходження
|-
| 8
| K2 ERP
| Фіксує розбіжності, якщо вони є собою
|}

 request_payload:

 }

 }

* створення товару;
* актуалізація штрихкоду;
* передача замовлення на відвантаження;
* часткове відвантаження;
* повне відвантаження;
* відвантаження з помилкою;
* приймання з розбіжністю;
* приймання партійного товару;
* приймання серійного товару;
* інвентаризація;
* переміщення;
* повернення;
* повторна відправка події;
* недоступність WMS;
* недоступність K2 ERP;
* дубль документа.; serial_tracking:

 "items": [
Найчастіше правильний підхід такий:
 "active": true
складський облік браку
title: "Запит"

складський облік — це місце, де абстрактний обліковий облік зустрічається з реальністю.; !;

Приклад структури комірки:

Номенклатура — найважливіший довідник для WMS.; WMS </syntaxhighlight>

}
values:

</syntaxhighlight> </syntaxhighlight>

 "document_type": "shipment",
== Способи інтеграції ==
[[Категорія:K2]]
 - wms_to_k2
== інтеграційні функціональні можливості складів і комірок ==
 "active": true
== Чек-лист готовності інтеграції ==
інтеграційні функціональні можливості з [[WMS]] — це один із ключових елементів сучасної складської автоматизації.; "packages": [

[[Категорія:Альтернатива BAS]]
 "warehouse": "MAIN",
Журнал інтеграції — це чорна скринька літака.; Область

 barcode:

Переміщення має змогу відбуватися між складами або всередині складу.;[[Категорія:Складський облік]]

== Фактичне приймання ==
 "quantity": 5
WMS виконує фактичний підрахунок через сканування.; |-
| продажі та реалізація
| Замовлення клієнтів, рахунки, ціни, резерви
| Відбір і відвантаження товару
|-
| закупівельна діяльність
| Замовлення постачальникам, документи надходження
| Фактичне приймання і розміщення
|-
| Складський обліковий облік
| Управлінські залишки, вартість, документи
| Фізичні залишки по комірках
|-
| Комірки
| має змогу зберігати загальну інформацію
| Повне керування адресним зберіганням
|-
| Партії та серії
| Облікова відомості
| Фактичний контроль під час операцій
|-
| Інвентаризація
| Документ інвентаризації, фінальний результат
| Фактичне сканування й підрахунок
|-
| аналітичні інструменти
| Звіти, управлінські показники
| Операційна ефективність складу
|}

WMS забирає файл

 "delivery_service": "Нова пошта",

* синхронізація довідників;
* передача замовлень на відвантаження;
* передача документів на приймання;
* підтвердження фактичного приймання;
* підтвердження фактичного відвантаження;
* переміщення між складами;
* переміщення між комірками;
* інвентаризація;
* списання;
* повернення від клієнтів;
* повернення постачальникам;
* контроль статусів;
* синхронізація залишків;
* обмін помилками й повідомленнями.; Крок
 type: string
[[Категорія:]]
[[K2 ERP]] і [[WMS]] повинні працювати як дві частини єдиної системи: [[K2 ERP]] відповідає за бізнес-логіку, документи, обліковий облік, аналітику, контрагентів, продажі та реалізація й закупівельна діяльність, а [[WMS]] — за точне фізичне виконання складських операцій.; '''Головне.''' [[ERP]] знає, що бізнес-середовище хоче зробити: купити, продати, перемістити, списати або інвентаризувати товар.; У звіті він має змогу мати правильну кількість, собівартість і резерв.; платформа

[[Категорія:Автоматизація бізнесу]]

Якщо довідники не синхронізовані, WMS не знатиме, що саме приймати, відбирати або сканувати.; {

 required: true
 {
Приклад помилки:
Звірка залишків потрібна регулярно.; Як зменшити

Якщо така операційна дія вже оброблена, платформа не виконує її повторно.;<syntaxhighlight lang="json">

Кожна операційна дія має унікальний ідентифікатор:

== Що таке WMS ==

 document_id:
{
є собою кілька підходів:
Приймання — один із базових сценаріїв інтеграції.; {

бізнес-процес:

WMS

required: true

складський облік → Зона → Ряд → Стелаж → Полиця → Комірка Перед запуском потрібно перевірити:

type: decimal
"event": "shipment.shipped",

</syntaxhighlight>

"sku": "MN-001",
type: enum
},
batch_tracking:
!; |}

Приклад:

== Ризики інтеграції ==

!; "items": [

 ]

{

!; Указ Президента України 133/2017 ввів у дію рішення для бізнесу РНБО від 28 квітня 2017 року щодо санкцій, а Указ 601/2024  рішення для бізнесу РНБО від 2 вересня 2024 року щодо сфера застосування, скасування та внесення змін до санкцій.; У [[K2 ERP]] менеджер має змогу створити замовлення клієнта й зарезервувати товар.;== Ролі K2 ERP і WMS ==

'''Для K2 ERP.''' інтеграційні функціональні можливості з WMS має змогу реалізовуватися через [[API]], [[JSON]], події, черги повідомлень, webhooks, імпорт/експорт, окремі інтеграційні модулі, [[YML]]-описи структур, [[ORM]]-моделі та механізми синхронізації довідників, документів і залишків.; ]

== Вступ ==

 default: false
'''WMS''' або '''Warehouse Management System'''  це платформа керування складом, яка автоматизує фізичні складські операції.; "warehouse": "MAIN",
Якщо WMS була інтегрована з [[1С]] або [[BAS]], перехід на [[K2 ERP]] має враховувати не тільки технічний, а й санкційний аспект.; "name": "Ноутбук Lenovo ThinkPad",

 "from_cell": "A-01-01-01",
Якщо [[K2 ERP]] відповідає на питання “що потрібно продати, купити або перемістити”, то WMS відповідає на питання “де саме це лежить і як це взяти”.; {

бізнес-процес:
 {
 direction:
з цієї причини заміна інтеграції з 1С/BAS на інтеграцію з [[K2 ERP]]  це не без ускладнень технічний апгрейд, а частина цифрової незалежності компанії.; | Для сучасної архітектури  [[API]], [[JSON]], webhooks, черги повідомлень і інтеграційний компонент.;
"warehouse": "MAIN",
↓ фактичне виконання
volume:
"level": "02",
created_at: datetime

→ комірник відбирає товар Типова технічна архітектура: На великому складі має змогу бути багато подій.; Крок

"shipment_id": "SH-000501",

WMS повертає файл shipment_result_20260601.json

; ;

Краще використовувати API або інтеграційний компонент.;== Безпека інтеграції ==

],

Приклад резерву: {{SEO

title: "ключовий штрихкод"
"4820000000011",

Версіонування API

 "warehouse": "MAIN",

 },

* товар;
* комірку;
* партію;
* серію;
* палету;
* коробку;
* задача;
* документ;
* пакування.;  K2 ERP передає задача на відбір у WMS

<syntaxhighlight lang="text">

 "weight": 1.8,

* номенклатура;
* штрихкоди;
* одиниці виміру;
* упаковки;
* характеристики;
* партії;
* серії;
* склади;
* комірки або зони складу;
* контрагенти;
* типи операцій;
* користувачі або відповідальні;
* правила відбору;
* статуси.; У [[K2 ERP]] можуть зберігатися штрихкоди товарів, а WMS використовує їх для операційного виконання.; Коли щось пішло не так, без нього всі починають казати: “А в мене працювало”.; {| class="wikitable" style="width:100%;"
== інтеграційні функціональні можливості з WMS при переході з 1С/BAS ==
Приклад результату інвентаризації:
 title: "Дата створення"
== Основні сценарії інтеграції ==
 "zone": "A",
 "difference": -1
POST /api/wms/shipments
title: "Об'єм"

→ товар пакується

Резервування товару

↓ API / черга / webhook

Потрібно врахувати:

sku:
як ілюстрація:
* габарити;
* вага;
* тип упаковки;
* кратність упаковки;
* штрихкоди;
* умови зберігання;
* температурний режим;
* ознака серійного обліку;
* ознака партійного обліку;
* термін придатності;
* правила розміщення;
* правила відбору.; | Бо старі інтеграції часто побудовані на застарілих механізмах, а 1С/BAS мають санкційні та технологічні ризики для українського бізнесу.; entities:
 {
== Продуктивність інтеграції ==
!; Питання
GET /api/wms/shipments/{id}/status
{| class="wikitable" style="width:100%;"

Для якісної інтеграції потрібен журнал обміну.; "4820000000012"

 "to_cell": "B-02-01-03"

 "unit": "коробка",

 - k2_to_wms

 {

Для багатьох складів істотно контролювати партії, серії та терміни придатності.;== Моніторинг інтеграції ==

Резервування — важливий момент між ERP і WMS.; як ілюстрація:
WMS має змогу повернути фактично відвантажені товари:
 ],

 "actual_quantity": 12

<syntaxhighlight lang="json">
 "sku": "NB-001",

В інтеграції істотно уникати дублювання.; платформа
 title: "Напрям"
Інтеграційний компонент
 expiry_tracking:
 }
!; інформаційні дані або бізнес-процес
→ WMS отримує задача на перерахунок
!; {
  • швидкий обмін;
  • структуровані інформаційні дані;
  • контроль помилок;
  • авторизація;
  • журналювання;
  • версіонування;
  • можливість online-статусів;
  • зручність для інтеграторів.; /api/v1/wms/shipments
- ERP головна по залишках K2 ERP вважає облікові залишки головними Можливі розбіжності з фізичним складом
WMS головна по фізичних залишках WMS відповідає за фактичні залишки по комірках Потрібна якісна синхронізація з ERP
Гібридний підхід ERP веде обліковий облік, WMS веде фізику Потрібні правила звірки

Без інтеграції виникають проблеми:

wms_exchange_log:
; → K2 ERP створює видатковий документ

інтеграційні функціональні можливості має контролюватися.; "quantity": 2 як ілюстрація:

"accepted_quantity": 20,

У K2 ERP має змогу зберігатися загальна відомості про склади, а деталізація комірок має змогу бути основною відповідальністю WMS.; Ризик Але WMS має знати, що цей товар не можна віддати іншому замовленню.; | Так, але це менш гнучкий і менш оперативний спосіб, доречний для простих або старих систем.; POST /api/wms/events

"unit": "шт"

{

{

{

"actual_quantity": 24,
status: str

type: directory Всередині складу:

document_id: str

} }

Ідемпотентність операцій

type: enum
; Різниця

Саме з цієї причини інтеграцію з WMS потрібно будувати не як тимчасовий обмін, а як повноцінний компонент K2 ERP: з API, JSON, YML, ORM, журналом обміну, моніторингом, безпекою, звіркою залишків і готовністю до масштабування.

},
"accepted_quantity": 48,

Приклад правильної карти відповідальності

Залишки — найчутливіша частина інтеграції.;</syntaxhighlight>

"weight": 4.2,
"cell": "A-03-05-02",
"duration_ms": 245
}
"sku": "NB-001",
{
"volume": 0.012,
]

Файловий обмін

document_type:

</syntaxhighlight>

"tracking_number": "20400012345678"

Для чого потрібна інтеграційні функціональні можливості ERP і WMS

"barcodes": [
  • авторизацію;
  • токени доступу;
  • HTTPS;
  • обмеження IP;
  • журнал доступу;
  • права сервісного користувача;
  • обмеження методів API;
  • захист від повторних запитів;
  • контроль розміру запитів;
  • маскування чутливих даних у логах.; "sku": "NB-001",

API — найкращий варіант для сучасної інтеграції.; Пояснення Приклад очікуваного приймання: У WMS товар має ще й складські властивості: Приклад endpoint-ів:

"SN000002",
title: "Тип документа"
"code": "PRODUCT_NOT_FOUND",
- success
WMS функціонує ближче до фізичного складу, ніж ERP.;
== Відвантаження товару ==
У простому складському обліку достатньо знати складський облік.; WMS обробляє відвантаження

* зовнішні обробки;
* файловий обмін;
* COM;
* проміжні таблиці;
* ручний імпорт;
* специфічні механізми конфігурації;
* обмін, який “краще не чіпати”.; '''Практична ідея.''' Хороша інтеграційні функціональні можливості з WMS — це коли менеджер у K2 ERP бачить замовлення, складський облік реально відбирає товар у WMS, комірник сканує штрихкод, а залишки, статуси й документи автономно синхронізуються без дзвінків “а ви вже відвантажили?”.;<div style="border:3px solid #ef6c00; background:#fff3e0; padding:14px; margin:16px 0;">
<syntaxhighlight lang="json">
|-
| Точніші залишки
| Фактичні складські операції швидше потрапляють в ERP
|-
| Менше ручної роботи
| Документи й статуси синхронізуються автономно
|-
| Швидше відвантаження
| WMS оптимізує відбір і пакування
|-
| Кращий контроль складу
| Видно комірки, партії, серії, розбіжності
|-
| Менше помилок
| Сканування зменшує ручне введення
|-
| Краща аналітичні інструменти
| K2 ERP отримує фактичні інформаційні дані для звітів
|-
| Масштабованість
| складський облік має змогу рости без хаосу в обліку
|-
| Цифрова незалежність
| Перехід від 1С/BAS до K2 ERP зменшує залежність від російської екосистеми
|}

Після цього [[K2 ERP]] має змогу автономно змінити статус замовлення.; ]
 "status": "completed",

 title: "Назва"
== Журнал інтеграції ==

як ілюстрація: → K2 ERP формує розбіжності

direction: str
]
title: "Партійний обліковий облік"
"shipped_quantity": 5

У будь-якій інтеграції можливі помилки.; }

{

технічна архітектура інтеграції K2 ERP і WMS

Коротко

Якщо інтеграційні функціональні можливості впала, відповідальні мають дізнатися про це раніше, ніж замовник почне питати, де його замовлення.; з цієї причини інтеграційні функціональні можливості має бути продуктивною.; {| class="wikitable" style="width:100%;" як ілюстрація, якщо WMS тимчасово недоступна, повідомлення не губиться, а чекає повторної обробки.; Відповідь

"sku": "NB-001",
{

Інвентаризація

"requested_quantity": 5,

{

"sku": "NB-001",
name: wms_integration
"sku": "NB-001",
"sku": "MED-001",

Під час переходу з /BAS на K2 ERP інтеграцію з WMS потрібно переглянути.; title: "Контроль терміну придатності" </syntaxhighlight> <syntaxhighlight lang="text">

"event": "shipment.shipped",

Приклад: