This documentation should be read in conjunction with the following:
For notes on the use of common cXML elements such as addresses see Common cXML Elements
For technical documentation and examples relating to the full list of Unimarket webservice interfaces see Integration > General.
cXML OrderRequest - Order Header Notes
In order to integrate with Unimarket the content of the cXML Order header is based on values set on the Supplier and within Community Supplier Setup.
- The Domain and Identity attributes are based on the values set on the Community Supplier Setup.
- The Shared Secret is set on the Supplier Store
Refer to: Setting up Electronic Purchase Orders with Suppliers
See below for cXML examples you can click to download:
- Order Header
- Differentiating Between Orders from Demo and Production
- Identifying the type of Order
- Regular/standard order
- Regular/standard order created from a requisition
- Retrofit regular/standard order
- Blanket order
- Standard Release order
- Retrofit standard release order
- New, Changed and Cancelled Orders
By default the cXML OrderRequest for any order created in Unimarket is of type
new. Unimarket supports two approaches for changing orders:
- Order versioning - any change to an Order in Unimarket will result in a cXML Order of type
updateto be sent
- Each cXML Order of this type will also send the following two attributes:
orderVersion- incrementing number indicating the version of the order
isInternalVersion- this is set to
yesif the change is only related to the Community and should not be sent to the Supplier
- Cancel and Create - any change to an Order in Unimarket will result in a cXML Order of type
deletefor the existing Order followed by another cXML Order of type
newfor the changed order to be sent.
- Identifying Buyers
- Identifying Order Line Supplier/Vendor
The Supplier/Vendor for each line item will be put in the 'OrderRequest/ItemOut/SupplierList/Supplier/SupplierID' element.
The content of the 'SupplierID' element will be obtained using the following rules:
- If Vendor has an 'External Vendor Id' defined in Unimarket then the 'SupplierID' domain attribute will be 'external' and the value will be the 'External Vendor Id'
- Otherwise the 'SupplierID' domain attribute will be 'unimarket' and the value will be an internal Unimarket id.
- Order line where Supplier has no 'External Vendor Id' defined in Unimarket
- Order line where Supplier has an 'External Vendor Id' defined in Unimarket
- Identifying Order Line Product Category
The category for each line item will be put in the 'OrderRequest/ItemOut/ItemDetail/Classification' element.
An appropriate category will be obtained using the following rules:
- if the product associated with the line item has at least one category assigned to it, pick the first one.
- if the product has no category and the associated supplier has at least one category assigned to it, pick the first one.
- the the supplier is not assigned to any category, the 'Classification' element will be blank.
If a category has been identified using the rules above, the content of the 'Classification' element will be obtained using the following rules:
- if the category has a non-blank 'code' attribute then this will be used.
- if the category has a blank code attribute then the 'name' attribute will be used.
The two currently possible values for the 'Classification domain' attribute are:
- Exchange Rates
If an Order is in a foreign currency (not the same currency as the community) then Unimarket will include exchange rate information in the cXML OrderRequest as follows:
- The 'OrderRequest/OrderRequestHeader' will contain an Extrinsic called 'exchange-rate' whose value will be the exchange rate. The attribute 'user-specified' will be true if the user manually entered an exchange rate before placing the order.
- All occurences of 'Money' will have two additional attributes ('alternateAmount' and 'alternateCurrency') which will contain the money value in the community currency.
- Split Account Codes
The example below shows an order line whose value has been assigned to two different account codes:
- $900.00 to 1107-3121-384 (which is 63.60424028% of the total)
- $515.00 to 1110-3120-238 (which is 36.39575972% of the total)