Відповідь на замовлення (OrderResponse GS1 XML)

Тип повідомлення в сервісі: ORDRSP

Матеріали:

Приклади:

Призначення

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

Відповідь на замовлення дозволяє повідомити покупця про наступні сценарії:

  • Повне погодження надісланого замовлення без жодних корегувань.

  • Прийняття замовлення зі змінами: зміна кількостей, товару тощо.

  • Відхилення замовлення.

Структура повідомлення

Відповідь на замовлення складається з заголовка SBDH та безпосередньо документа відповіді на замовлення.

Базова структура відповіді на замовлення
<?xml version="1.0" encoding="UTF-8"?>
<order_response:orderResponseMessage
    xmlns:order_response="urn:gs1:ecom:order_response:xsd:3"
    xmlns:sh="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader">

    <sh:StandardBusinessDocumentHeader>
        <!-- Елементи заголовка  -->
    </sh:StandardBusinessDocumentHeader>

    <orderResponse>
        <!-- Елементи замовлення  -->
    </orderResponse>

</order_response:orderResponseMessage>

Повний перелік обов’язкових до заповнення елементів можна передивитися в 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

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

orderResponseIdentification

1..1

EntityIdentification

Ідентифікація документа відповіді на замовлення

responseStatusCode

1..1

xsd:string (80)

Статус документа відповіді.
ACCEPTED - замовлення підтверджено
MODIFIED - замовлення підтверджено, але є внесені модифікації
REJECTED - замовлення відхилено

totalMonetaryAmountIncludingTaxes

0..1

AmountType

Загальна сума документа враховуючи податки.

buyer

1..1

TransactionalParty

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

seller

1..1

TransactionalParty

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

originalOrder

1..1

DocumentReference

Посилання на документ замовлення, на основі якого створено документ відповіді.

orderResponseLineItem

0..*

OrderResponseLineItem

Містить дані про модифікації, зміни та ціни товарів, що були в оригінальному замовленні. Це не обов’язковий елемент, оскільки постачальник може прийняти замовлення повністю без модифікації окремих товарних позицій.

Типи елементів

OrderResponseLineItem

GS1 XML тип: order_response:OrderResponseLineItemType

Описує відповідь на кожну позицію товара, які покупець надіслав у своєму замовленні. В таблиці подано тільки основні елементи - повну специфікацію можна побачити у відповідній XSD схемі.

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

lineItemNumber

1..1

xs:positiveInteger

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

confirmedQuantity

1..1

QuantityType

Підтвердження замовленої кількості

netAmount

0..1

AmountType

Загальна сума товарної позиції

netPrice

0..1

AmountType

Загальна ціна товарної позиції

monetaryAmountIncludingTaxes

0..1

AmountType

Загальна сума товарної позиції. Взаємозамінне з netAmount - можна обирати за домовленістю сторін.

deviatingQuantity

1..1

QuantityType

Кількість відхилення від основного замовлення. Пусте значення заборонено. Якщо відхилення відсутнє, то потрібно використати значення 0.

transactionalTradeItem

1..1

TradeItem

Ідентифікація товара

Мінімальний XML для додавання позиції товару у відповіді на замовлення
<orderResponseLineItem>
    <lineItemNumber>1</lineItemNumber>
    <confirmedQuantity>48</confirmedQuantity>
    <deviatingQuantity>0</deviatingQuantity>
    <transactionalTradeItem>
        <gtin>40987650000223</gtin>
    </transactionalTradeItem>
</orderResponseLineItem>

Якщо товар не має валідного GTIN штрихкоду, то слід використати додаткові можливості ідентифікації товару. Детально можна прочитати в документації для типу TradeItem

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

Мінімальна відповідь підтвердження замовлення

Зазвичай мінімальну відповідь використовують у випадку, коли покупець попередньо надсилав замовлення постачальнику, на підставі якого сформована дана відповідь: саме тому у цій відповіді відсутня інформація про товари.

Нижче наведено приклад мінімально необхідного XML для створення відповіді на замовлення.

  • У системі відправника/покупця замовлення має номер PO3352.

  • Код відповіді ACCEPTED вказує на те, що постачальник підтвердив замовлення.

  • У відповіді на замовлення постачальник збігається з відправником, а покупець з отримувачем.

  • Документ повністю підтверджує раніше надіслане покупцем замовлення.

  • У відповіді немає жодної логістичної інформації.

  • У відповіді немає інформації про товари, оскільки це відповідь для повного підтвердження замовлення, без внесення змін.

<?xml version="1.0" encoding="UTF-8"?>
<order_response:orderResponseMessage
    xmlns:order_response="urn:gs1:ecom:order_response:xsd:3"
    xmlns:sh="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader">

    <sh:StandardBusinessDocumentHeader>
        <!-- Елементи заголовка  -->
    </sh:StandardBusinessDocumentHeader>

    <orderResponse>
        <creationDateTime>2023-06-12T10:00:00+03:00</creationDateTime>
        <documentStatusCode>ORIGINAL</documentStatusCode>
        <orderResponseIdentification>
            <entityIdentification>OR002760</entityIdentification>
        </orderResponseIdentification>
        <responseStatusCode>ACCEPTED</responseStatusCode>
        <buyer/>
        <seller/>
        <originalOrder>
            <entityIdentification>PO3352</entityIdentification>
        </originalOrder>
    </orderResponse>

</order_response:orderResponseMessage>

Відповідь з додатковою інформацією

У наступному прикладі постачальник додатково передає позиції товарів, які будуть відвантажені та їхні ціни.

  • У системі відправника/покупця замовлення має номер PO3360.

  • У відповіді на замовлення постачальник збігається з відправником, а покупець з отримувачем.

  • Товар ідентифікується за допомогою кодів постачальникам.

  • Додатково для ідентифікації товара додано штрихкод.

  • Додатково для ідентифікації товара додано артикул.

  • Для товара вказана назва.

Детальніше про різні варіанти взаємодії можна почитати на сторінці рекомендацій щодо обміну.

<?xml version="1.0" encoding="UTF-8"?>
<order_response:orderResponseMessage
    xmlns:order_response="urn:gs1:ecom:order_response:xsd:3"
    xmlns:sh="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader">

    <sh:StandardBusinessDocumentHeader>
        <!-- Елементи заголовка  -->
    </sh:StandardBusinessDocumentHeader>

    <orderResponse>
        <creationDateTime>2023-06-12T10:00:00+03:00</creationDateTime>
        <documentStatusCode>ORIGINAL</documentStatusCode>
        <orderResponseIdentification>
            <entityIdentification>OR002760</entityIdentification>
        </orderResponseIdentification>
        <responseStatusCode>ACCEPTED</responseStatusCode>
        <totalMonetaryAmountIncludingTaxes currencyCode="UAH">
            150
        </totalMonetaryAmountIncludingTaxes>
        <buyer/>
        <seller/>
        <originalOrder>
            <entityIdentification>PO3360</entityIdentification>
        </originalOrder>

        <orderResponseLineItem>
            <lineItemNumber>1</lineItemNumber>
            <confirmedQuantity>3</confirmedQuantity>
            <netAmount currencyCode="UAH">150</netAmount>
            <netPrice currencyCode="UAH">50</netPrice>
            <!--  Не може бути пустим - обов'язково вказати 0, якщо відхилення немає  -->
            <deviatingQuantity>0</deviatingQuantity>

            <transactionalTradeItem>
                <additionalTradeItemIdentification
                    additionalTradeItemIdentificationTypeCode="SUPPLIER_ASSIGNED">
                    0009483
                </additionalTradeItemIdentification>
                <additionalTradeItemIdentification
                    additionalTradeItemIdentificationTypeCode="FOR_INTERNAL_USE_1">
                    АФК-2345
                </additionalTradeItemIdentification>
                <additionalTradeItemIdentification
                    additionalTradeItemIdentificationTypeCode="GTIN_13">
                    978020137962
                </additionalTradeItemIdentification>

                <tradeItemDescription>Запчастина до станка (АФК-2345)</tradeItemDescription>
            </transactionalTradeItem>
        </orderResponseLineItem>

    </orderResponse>

</order_response:orderResponseMessage>