Замовлення (orderMessage GS1 XML)
Тип повідомлення в сервісі: ORDERS
Матеріали:
Приклади:
-
Мінімальний документ замовлення Order_Minimal.xml (вер. 3.6.0)
Призначення
Документ Замовлення дає можливість покупцю вказати кількість товарів, які необхідно доставити в одному доставленні.
Також документ замовлення може бути використаний постачальником для скасування попередньо зробленого замовлення.
Структура повідомлення
Замовлення складається з заголовка SBDH та безпосередньо документа замовлення.
<?xml version="1.0" encoding="UTF-8"?>
<order:orderMessage xmlns:order="urn:gs1:ecom:order:xsd:3" xmlns:sh="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader">
<sh:StandardBusinessDocumentHeader>
<!-- Елементи заголовка -->
</sh:StandardBusinessDocumentHeader>
<order>
<!-- Елементи замовлення -->
</order>
</order:orderMessage>
Повний перелік обов’язкових до заповнення елементів можна передивитися в xsd схемі, вер. 3.6.0
Також можна скористатися зручним інтерактивним навігатором за схемою замовлення на сайті GS1.
Обов’язкові та рекомендовані елементи
В цьому розділі подаються обов’язкові елементи та приклади їхнього використання. Для отримання вичерпної та точної технічно інформації щодо структури варто скористатися відповідною XSD схемою, оскільки більшість елементів мають доволі глибоку ієрархію вкладень.
-
1..1
- обов’язкове використання елемента 1 раз -
1..*
- елемент повинен використовуватися 1 або більше разів -
0..1
- елемент може бути відсутнім або використовуватися 1 раз -
0..*
- елемент може бути відсутнім або використовуватися безліч разів
Послідовність використання наведених елементів має значення. Наприклад, якщо в схемі xsd вказано element1 і після нього element2, то повідомлення зі зміненою послідовністю на element2 і після нього element1 не пройде валідацію і сервіс поверне помилку. |
Елемент | Режим | Формат | Опис |
---|---|---|---|
|
1..1 |
xs:dateTime |
Дата та час, коли документ замовлення було створено в системі відправника. Бажано слідувати формату: ISO 8601 |
|
1..1 |
Позначає документ як копію або оригінал. Для більшості випадків: ORIGINAL Перелік значень: |
|
|
0..1 |
Код необхідної дії над документом для отримувача. ADD - створення нового документа |
|
|
0..1 |
Не стандартизована інформація, яку потрібно додатково передати у повідомлення. |
|
|
1..1 |
Унікальна ідентифікація для документа |
|
|
0..* |
Додаткові інструкції щодо замовлення. |
|
|
0..1 |
Коментар. |
|
|
1..1 |
Покупець. Можна залишити пустим, якщо покупець в документі збігається з відправником повідомлення. |
|
|
1..1 |
Постачальник. Можна залишити пустим, якщо постачальник в документі збігається з отримувачем повідомлення. |
|
|
1..1 |
Логістична інформація, адреса доставлення, бажана дата доставлення. |
|
|
0..* |
Умови оплати. |
|
|
0..1 |
Угода на постачання товарів, торгова угода. |
|
|
0..1 |
Контракт, договір. |
|
|
0..1 |
Умови та терміни постачання. |
|
|
0..1 |
Крайній час доставлення товара, після якого замовлення вважається скасованим. |
|
|
1..* |
Перелік товарних позицій, що замовляються |
buyer - покупець
Елемент <buyer>
- покупець - використовується для ідентифікації контрагента в переданому документі. Цей елемент зазвичай використовують у ситуаціях, коли відправник повідомлення відрізняється від контрагента, який вказаний в документі замовлення.
Більше деталей про заповнення покупця можна побачити в розділі TransactionalParty
Якщо відправник повідомлення та покупець документа - це одна й та ж компанія, то елемент покупця можна залишити пустим.
<buyer/>
Покупець документа (buyer) може відрізнятися від відправника повідомлення (Sender). Не має значення, чи покупець зареєстрований в сервісі Edibox - лише відправник (Sender) повинен бути зареєстрованим. |
Наприклад, мережа магазинів може мати одну головну юридичну особу і декілька пов’язаних юридичних осіб, ФОПів по різних містах. Зазвичай у такій ситуації для відправлення/приймання повідомлень використовується головна юридична особа, яка реєструється у сервісі Edibox (використовуючи GLN) і виступає відправником та отримувачем в SBDH.
Решта підпорядкованих юридичних осіб можуть використовуватися безпосередньо в документах замовлень, як покупці (buyer) в цих документах. Якщо такі контрагенти не мають GLN, то можна використати елемент additionalPartyIdentification
і вказати там будь-який заздалегідь узгоджений код: ЄДРПОУ, внутрішній код відправника/отримувача тощо - більш детально можна прочитати в розділі про тип елементів TransactionalParty.
seller - постачальник
Елемент <seller>
- постачальника - використовується для ідентифікації контрагента/компанії, яка повинна здійснити продаж товарів. Якщо отримувач повідомлення і постачальник це одна і та ж компанія, то елемент покупця можна лишити пустим.
<seller/>
Більше деталей про заповнення постачальника можна побачити в розділі TransactionalParty.
Постачальник документа (seller) може відрізнятися від отримувача (Receiver) повідомлення. Не має значення, чи постачальник зареєстрований в сервісі Edibox - лише отримувач (Receiver) повинен бути зареєстрованим. |
Найчастіше постачальника використовують у ситуаціях, коли отримувач має декілька юридичних осіб, і відправник хоче вказати, яка з організацій постачальника повинна виконати замовлення.
Ці додаткові організації постачальника можуть не мати GLN кода та не зобов’язані бути зареєстрованими у сервісі Edibox. Для ідентифікації цих організацій можна використовувати, наприклад, ЄДРПОУ - більш детально можна прочитати в розділі про тип елементів TransactionalParty.
Зазвичай відправник та постачальника обговорюють порядок та правила використання таких елементів на етапі впровадження обміну електронними документами.
Типи елементів
OrderLineItem
GS1 XML тип: order:OrderLineItemType
Описує позицію товара, який покупець замовляє. В таблиці подано тільки основні елементи для опису замовленого товара - повну специфікацію можна побачити у відповідній XSD схемі.
Елемент | Режим | Формат | Опис |
---|---|---|---|
|
1..1 |
xs:positiveInteger |
Порядковий номер запису в замовленні |
|
1..1 |
Кількість для замовлення |
|
|
0..1 |
Примітки щодо товара |
|
|
1..1 |
Відомості для ідентифікації товара |
<orderLineItem>
<lineItemNumber>1</lineItemNumber>
<requestedQuantity>2</requestedQuantity>
<transactionalTradeItem>
<gtin>40987650000223</gtin>
</transactionalTradeItem>
</orderLineItem>
Специфікація GS1 XML вимагає валідного GS1 штрихкоду GTIN з 14 символів - тому для будь-яких інших штрихкодів потрібно скористатися елементом додаткової ідентифікації для товару. |
Додаткова ідентифікація
Трапляється, що замовлення з використанням штрихкодів неможливе або штрихкод має менше як 14 символів. В такому разі можна використати інші можливості типу TradeItem, наприклад, замовлення за кодом постачальника.
В наступному прикладі товар замовляється з використанням коду, який було надано постачальником: 00123456
<orderLineItem>
<lineItemNumber>1</lineItemNumber>
<requestedQuantity>2</requestedQuantity>
<transactionalTradeItem>
<additionalTradeItemIdentification additionalTradeItemIdentificationTypeCode="SUPPLIER_ASSIGNED">
00123456
</additionalTradeItemIdentification>
</transactionalTradeItem>
</orderLineItem>
Приклад замовлення
Далі наведено приклад мінімально необхідного XML для створення замовлення 1 товара у кількості 2 шт, без додаткових вимог.
-
У системі відправника замовлення має номер ЖЄ-00043256 та дату 2013-06-11
-
В замовленні покупець збігається з відправником, а постачальник з отримувачем.
-
Товар ідентифікується за допомогою штрихкоду.
-
В замовленні немає жодної логістичної інформації.
<?xml version="1.0" encoding="UTF-8"?>
<order:orderMessage xmlns:order="urn:gs1:ecom:order:xsd:3" xmlns:sh="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader">
<sh:StandardBusinessDocumentHeader>
<!-- Елементи заголовка -->
</sh:StandardBusinessDocumentHeader>
<order>
<creationDateTime>2013-06-11T11:00:00+03:00</creationDateTime>
<documentStatusCode>ORIGINAL</documentStatusCode>
<orderIdentification>
<entityIdentification>ЖЄ-00043256</entityIdentification>
</orderIdentification>
<buyer/>
<seller/>
<orderLogisticalInformation/>
<orderLineItem>
<lineItemNumber>1</lineItemNumber>
<requestedQuantity>2</requestedQuantity>
<transactionalTradeItem>
<gtin>40987650000223</gtin>
</transactionalTradeItem>
</orderLineItem>
</order>
</order:orderMessage>
Сценарії використання
Всі сценарії використання залежать від домовленостей між покупцем та постачальником, оскільки кожна зі сторін повинна підтримувати погоджені бізнес-процеси.
Скасування попереднього замовлення
Покупець має змогу надіслати повідомлення про скасування раніше зробленого замовлення. При цьому покупець зобов’язаний вказати ідентифікатор замовлення, яке повинно бути скасоване.
<?xml version="1.0" encoding="UTF-8"?>
<order:orderMessage
xmlns:order="urn:gs1:ecom:order:xsd:3"
xmlns:sh="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader">
<sh:StandardBusinessDocumentHeader>
<!-- Елементи заголовка -->
</sh:StandardBusinessDocumentHeader>
<order>
<!-- Обов'язкові елементи пропущено задля читабельності-->
<creationDateTime>2023-06-11T11:00:00+03:00</creationDateTime>
<orderIdentification>
<entityIdentification>ЖЄ-00043256</entityIdentification>
</orderIdentification>
<!-- Обов'язкові елементи пропущено задля читабельності-->
</order>
</order:orderMessage>
Дещо пізніше покупець може надіслати ще одне повідомлення зі скасуванням цього замовлення. Для скасування використовується елемент <documentActionCode>DELETE</documentActionCode>
. При скасуванні замовлення обов’язкове зазначення ідентифікатора замовлення, яке скасовується.
<?xml version="1.0" encoding="UTF-8"?>
<order:orderMessage
xmlns:order="urn:gs1:ecom:order:xsd:3"
xmlns:sh="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader">
<sh:StandardBusinessDocumentHeader>
<!-- Елементи заголовка -->
</sh:StandardBusinessDocumentHeader>
<order>
<creationDateTime>2023-06-11T11:00:00+03:00</creationDateTime>
<documentStatusCode>ORIGINAL</documentStatusCode>
<!-- Вказує на скасування -->
<documentActionCode>DELETE</documentActionCode>
<orderIdentification>
<entityIdentification>ЖЄ-00043256</entityIdentification>
</orderIdentification>
<buyer/>
<seller/>
<orderLogisticalInformation/>
<orderLineItem>
<!-- Перелік товарів, які були в замовленні -->
</orderLineItem>
</order>
</order:orderMessage>