Замовлення (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. Елементи для заповнення в order
Елемент Режим Формат Опис

creationDateTime

1..1

xs:dateTime

Дата та час, коли документ замовлення було створено в системі відправника. Бажано слідувати формату: ISO 8601

documentStatusCode

1..1

Позначає документ як копію або оригінал. Для більшості випадків: ORIGINAL

Перелік значень:
ORIGINAL - оригінальне повідомлення.
COPY - копія оригінального документа надісланого відправником
ADDITIONAL_TRANSMISSION - повідомлення вже було надіслане іншим методом.

documentActionCode

0..1

Код необхідної дії над документом для отримувача.

ADD - створення нового документа
CHANGE_BY_REFRESH - заміна попереднього надісланого документа новим
DELETE - видалення попередньо надісланого документа

avpList

0..1

AttributeValuePairListType

Не стандартизована інформація, яку потрібно додатково передати у повідомлення.

orderIdentification

1..1

EntityIdentification

Унікальна ідентифікація для документа

additionalOrderInstruction

0..*

Description1000

Додаткові інструкції щодо замовлення.

note

0..1

Description500

Коментар.

buyer

1..1

TransactionalParty

Покупець. Можна залишити пустим, якщо покупець в документі збігається з відправником повідомлення.

seller

1..1

TransactionalParty

Постачальник. Можна залишити пустим, якщо постачальник в документі збігається з отримувачем повідомлення.

orderLogisticalInformation

1..1

Логістична інформація, адреса доставлення, бажана дата доставлення.

paymentTerms

0..*

Умови оплати.

tradeAgreement

0..1

Угода на постачання товарів, торгова угода.

contract

0..1

Контракт, договір.

deliveryTerms

0..1

Умови та терміни постачання.

latestDeliveryDate

0..1

DateOptionalTime

Крайній час доставлення товара, після якого замовлення вважається скасованим.

orderLineItem

1..*

OrderLineItem

Перелік товарних позицій, що замовляються

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 схемі.

Таб. 2. Основні елементи OrderLineItemType
Елемент Режим Формат Опис

lineItemNumber

1..1

xs:positiveInteger

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

requestedQuantity

1..1

QuantityType

Кількість для замовлення

note

0..1

Description500

Примітки щодо товара

transactionalTradeItem

1..1

TradeItem

Відомості для ідентифікації товара

Мінімальний XML замовлення товара за штрихкодом
<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>