Extend Commerce Backend creates a purchase order and opposite system will receive that file and update their system with the information.
The receiving that are made in the opposite system will be sent to Extend Commerce Backend so Extend Commerce Backend can update the balance and status for the purchase order.
This document will describe the purchase order from Extend Commerce Backend
All order lines will be sent all the time as long as the order line has not been received. To handle backorders positions needs to be handled.
The specification is illustrated as the number 1,2,3 as GenericWarehousePurord and 4 as GenericWarehouseDELVRY below.
Purchase Order
Element | Code | Mand. | Explanation |
FromPartner | Y | From system | |
FromPartnerUser | Y | User from system / Client | |
ToPartner | Y | To system | |
ToPartnerUser | Y | User of from system / Client | |
DateTime | N | Document create date (YY-MM-DD hh:mm) | |
ReferensNumber | Y | Unique message reference number | |
InterchangeTest | N |
LXIRSubOrder\Header (1-999)
LXIRSubOrder\Header\HeaderInfo (1)
Element | Code | Mand. | Explanation |
DocumentNumber | Y | ||
DocumentName | Y | ||
CreationDate | N | ||
LXIRSubOrder\Header\SubOrderHeader (1)
LXIRSubOrder\Header\SubOrderHeader\SubOrderHeaderInfo (1)
Element | Code | Mand. | Explanation |
OrderNumber | Y | Purchase order number, Return order number. See note below. | |
ExternalOrderNumber | Y | External order number for the sub order /return order | |
OrderType | Y | Purchase order type | |
SupplierId | Y | Supplier Number. | |
SupplierName | N | Name of supplier | |
WarehouseId | Y | Warehouse name in /GenericWarehouse | |
ArrivalDate | Y | Expected delivery date (YY-MM-DD hh:mm) | |
SupplierOrderNumber | N | Order number of supplier | |
Reference | N | Reference | |
Notes | N | Public notes | |
InternalNotes | N | Internal notes | |
IsCancelled | N | true/false based on row status, true if all rows have been cancelled otherwise false |
Element | Code | Mand. | Explanation |
OperationCode |
2 3 0 | Y | Type 1=A purchase order / return order 2=Change purchase order / return order 3=Cancel the purchase order / return order 0=No handling for head. Used when the purchase order / return order row be changed |
LXIRSubOrder\Header\SubOrderHeader\SubOrderRow (1-99999)
LXIRSubOrder\Header\SubOrderHeader\SubOrderRow\SubOrderRowInfo (1)
Element | Code | Mand. | Explanation |
OrderPosition | Y | Purchase order row. Return order row | |
OrderSubPosition | Y | Sub position of purchase order / return order row | |
OwnerNumber | Y | Client affiliated filed like (VMI), fixed value you will get data from Extend Commerce Backend | |
ArticleId | Y | Product number | |
PackageId | PCS M | Y | Unit M = Meter Additional list can be ordered from Extend Commerce Backend |
OrderQuantity | Y | Ordered quantity, always in stocked keeped unit | |
SupplierArticleId | N | Supplier product number, not used for return order | |
ArrivalDate | Y | Expected delivery date (YY-MM-DD hh:mm) | |
ReceivingRowStatusId | N | Sub order / return order row status id | |
CustomerProductNumber | N | Customer product number information |
Attribute | Code | Man | Description |
OperationCode |
2 3 | Y | Type 1 = New, In cases of new purchase order 2 = Update, Changing the purchase order 3 = Cancel the purchase order |
First we are using the ExternalOrderNumber to identify the purchase order if not found then using the OrderNumber to identify the suborder for the receiving. External Order number range can be dedicated per warehouse.
We are identifying the rows by two ways
- By position and sub position
If the position and sub positions are given in the external message, then we are using them to identify the row, to handle backorders for order row level this is needed
- By product number
If position and sub positions are not available, then we are using the product number to identify the row.
Receiving at warehouse
Element | Code | Mand | Description |
FromPartner | Y | From system | |
FromPartnerUser | Y | User from system / Client | |
ToPartner | Y | To system | |
ToPartnerUser | Y | User of from system / Client | |
DateTime | N | Document create date (YY-MM-DD hh:mm) | |
ReferensNumber | Y | Message reference number |
Element | Code | Mand | Description |
CreationDate | Y | Create date | |
DocumentNumber | Y | Message reference number | |
DocumentName | GenericWarehouseDELVRY | Y | Suborder result message name: GenericWarehouseDELVRY |
LXIRSubOrderResult\Header\SubOrderHeader (1-999)
Element | Code | Mand | Description |
DeliveryNumber | N | Delivery Identity. | |
WareHouseId | Y | Warehouse name in GenericWarehouse | |
ArrivalDate | Y | Time for the start of the registration incoming deliveries | |
SupplierId | N | ||
OrderNumber | Y/N | Purchase order number | |
ExternalOrderNumber | N | External order number | |
SequenceNumber | Y | Sequence | |
OrderType | IN | Y | Purchase order type |
CancelRemaining | N | True/False if true will cancel all the rows which are not received |
LXIRSubOrderResult\Header\SubOrderHeader\SubOrderRow (1-99999)
Element | Code | Mand | Description |
ArticleId | Y | Product number | |
OwnerNumber | Y | Client name in GenericWarehouse, data provided from Extend Commerce Backend | |
PackageId | N | Unit, same as we sent in the Purchase Order | |
DeliveredQuantity | Y | Delivered quantity. Total, included with any blocked in the .. \ Delivery Blocked \ Blocked Quantity | |
OrderPosition | Y | Row position | |
OrderSubPosition | Y | Row sub position | |
OrderNumber | Y | Purchase order number | |
CancelRemainingRow | N | True/False if true remainig rows and subpositions shoult be set to cancelled |
Attribut | Kod | Mand | Description | Lxir |
BlockCode | XX | Y | Different codes shall be treated as a block whatever code | X |
PackageId | Y | Unit | X | |
BlockedQuantity | Blocked quantity | X |
The element is optional.
In order to check the response to a purchase order is made reference to the row with Order Number + Order Position + OrderSubPosition.
The response on one row may be divided. That is, a row that is sent with the expected incoming deliveries of example 300 pcs then come back with three rows of 100 pcs on each. The response to a row will always be grouped in a single message. In this case, the split has all row the same order position + OrderSubPosition, that these are not listed in the response.
Over Delivery is normally not permissible, Extend Commerce Backend must be updated and changed rows sent before the entry into warehouse done.
XSD files (Generic warehouse LxirSubOrder)
XSD files (Generic warehouse LxirSubOrderResult)
Purchase order, LXIR SubOrder EXEMPEL
Receiving, LXIR SubOrderResult
<?xml version=”1.0” encoding=”ISO-8859-1” ?>
- <LXIRSubOrderResult>
<Envelope FromPartner=”GenericWarehouse” FromPartnerUser=” SOLARSE” ToPartner=”XOE” ToPartnerUser=” SOLARSE” DateTime=”2008-03-12 15:32” ReferensNumber=”0010000080” InterchangeTest=”” />
- <Header>
<HeaderInfo CreationDate=”2008-03-12 15:32” DocumentName=”DELVRY” DocumentNumber=”0010000080” />
- <SubOrderHeader>
<SubOrderHeaderInfo DeliveryNumber=”29” WarehouseId=”CLJO” ArrivalDate=”2008-03-12 15:27:21” SupplierId=”0” OrderNumber=”RP-28” ExternalOrderNumber ="01" SequenceNumber=”” OrderType=”IN” WarehouseSection=”” DeliveryNote=”” ConsNote=”” Employee=”Plockare 1” />
- <SubOrderRow>
<SubOrderRowInfo ArticleId=”01046” OwnerNumber=”541” PackageId=”SÄCK” DeliveredQuantity=”126” OrderPosition=”10” OrderSubPosition=”1” OrderNumber=”RP-28” RevisionCode=”” CustomerNumber=”” SupplierArticleId=”01046” AddressIdentity=”” ItemId=”” Weight=”25000” />
</SubOrderRow>
</SubOrderHeader>
</Header>
</LXIRSubOrderResult>
Version | Date | Author/change | Commenct |
0.1 | 2016-09-19 | Muhammad Jawad | Integration document for GenericWarehousePURORD and DELVRY |
1.0 | 2016-09-30 | Martin Fransson | Adjustments |
1.1 | 2021-04-12 | Josefin Kvillert | Updated wording to Extend Commerce Backend |