22
ALSO XML WEB SERVICES XMLLINK TECHNICAL SPECIFICATION VERSION 0.4 ALSO Latvia 2015-04-15

XMLLINK - ALSO

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

ALSO XML WEB SERVICES

XMLLINK

TECHNICAL SPECIFICATION

VERSION 0.4

ALSO Latvia

2015-04-15

VERSION HISTORY

Version Date Status Note

0.1 2015-03-21 Draft Implementation, Catalog request

0.2 2015-03-25 Draft Product specification request, Contract pricelist request

0.3 2015-03-31 Draft Statement request, Backlog request

0.4 2015-04-15 Draft Purchase order request

TABLE OF CONTENTS

Version History ..................................................................................................................................................................... 2

Introduction .......................................................................................................................................................................... 5

Implementation .................................................................................................................................................................... 6

Customer Identification .................................................................................................................................................... 6

ALSO Web Service Address ............................................................................................................................................... 6

Forming and Sending A Request ....................................................................................................................................... 6

Parallel Request Limitation ............................................................................................................................................... 7

List of available product groups and manufacturers ........................................................................................................ 7

List of ALSO warehouses ................................................................................................................................................... 7

Transaction Descriptions ...................................................................................................................................................... 8

Catalog Request Transaction ............................................................................................................................................ 8

General description ...................................................................................................................................................... 8

Request ......................................................................................................................................................................... 8

Response ....................................................................................................................................................................... 9

Product Specification Request ........................................................................................................................................ 11

General Description .................................................................................................................................................... 11

Request ....................................................................................................................................................................... 11

Response ..................................................................................................................................................................... 11

Contract Pricelist Request ............................................................................................................................................... 12

General Description .................................................................................................................................................... 12

Request ....................................................................................................................................................................... 12

Response ..................................................................................................................................................................... 12

Purchase Order Transaction ........................................................................................................................................... 14

General Description .................................................................................................................................................... 14

Request ....................................................................................................................................................................... 14

Response ..................................................................................................................................................................... 16

Statement Request ......................................................................................................................................................... 17

General Description .................................................................................................................................................... 18

Request ....................................................................................................................................................................... 18

Response ..................................................................................................................................................................... 18

Backlog Request .............................................................................................................................................................. 20

General Description .................................................................................................................................................... 20

Request ....................................................................................................................................................................... 20

Response ..................................................................................................................................................................... 20

Errors .................................................................................................................................................................................. 22

INTRODUCTION

XMLLink service is a RESTful web service available over HTTP/S and returning data in XML format. Service

works in a synchronous way, meaning that every request is received by ALSO, handled and result data is returned as a

response to the customer request within the same session.

The service allows exchanging information between the supplier (ALSO) and customer in XML format,

providing ability for a customer to:

- Receive ALSO product catalog containing information about product prices and stock availability;

- Post an order to ALSO specifying products, delivery type, delivery date etc.;

- Receive products specification data;

- Receive invoice information from ALSO, containing information down to the level of product serials

numbers;

- Receive open (not delivered) orders information.

IMPLEMENTATION

CUSTOMER IDENTIFICATION

Upon subscribing to XMLLink service customer receives from ALSO following information that will have to be

specified in XML requests in order to authenticate customer and authorize him to use specific transactions:

- CLIENT_ID

- USERNAME

- PASSWORD

Additional option of customer-level security is possibility to specify IP addresses from which customer is allowed to

send requests to XMLLink service. This level of security is either enforced by ALSO or can be requested by the customer.

ALSO WEB SERVICE ADDRESS

At the moment 3 ALSO companies have an instance of XMLLink service. Upon subscribing to XMLLink service

customer will receive an URL to web service where XMLLink service will be available to him:

Web Service URL ALSO_ROUTE_CODE

ALSO Eesti http://b2b.also.ee/DirectXML.svc 0

ALSO Latvia https://b2b.alsolatvia.lv/DirectXML.svc 2

ALSO Lietuva http://directxml.also.lt/DirectXML.svc 3

ALSO_ROUTE_CODE parameter is important to remember, as it will be used in all the request transactions. Every ALSO

organization has its own route code.

FORMING AND SENDING A REQUEST

XMLLink service is implemented as a RESTful web service available over HTTP/S and returning data in XML

format. Service works in a synchronous way, meaning that every request is received by ALSO, handled and result data is

returned as XML response to the customer request.

Request to the web service is done with either GET or POST method and must contain parameters: USERNAME,

PASSWORD, XML. Request has to be sent to following web service end-point:

{WEB_SERVICE_URL}/scripts/XML_Interface.dll

Example:

https://b2b.alsolatvia.lv/DirectXML.svc/scripts/XML_Interface.dll

XML parameter contains the request in XML format. All available XML requests are described in section Transaction

Descriptions or this manual. Besides transaction specific content XML request always contains Route XML section,

which contains CLIENT_ID – parameter used for customer identification together with USERNAME and PASSWORD.

Simple PHP example with request using GET method:

$xml_request =

"<?xml version=\"1.0\" encoding=\"UTF-8\"?>

<CatalogRequest>

<Date/>

<CatNumber>1.0</CatNumber>

<Route>

<From><ClientID>{CLIENT_ID}</ClientID></From>

<To><ClientID>{ALSO_ROUTE_CODE}</ClientID></To>

</Route>

<Filters>

<Filter FilterID=\"StockLevel\" Value=\"OnStock\" />

<Filter FilterID=\"Price\" Value=\"WOVAT\"/>

</Filters>

</CatalogRequest>";

$request_url =

"https://b2b.alsolatvia.lv/DirectXML.svc/scripts/XML_Interface.dll?USERNAME={USERNAME}&PASSWORD={PASS

WORD}&XML="+url_encode($xml);

$xml_response = file_get_contents($request_url);

* Please substitute {CLIENT_ID}, {ALSO_ROUTE_CODE}, {USERNAME} and {PASSWORD} with related values.

PARALLEL REQUEST LIMITATION

Customer is allowed to process only 1 (one) request at a time. This way ALSO ensures availability of the service

to all the customers subscribed. If a customer would send 2nd request in parallel he would receive an error message

stating this reason of rejection.

LIST OF AVAILABLE PRODUCT GROUPS AND MANUFACTURERS

Full list of manufacturers (VendorID) and product groups (ClassID) can be requested by customer from the URL

that is formed as following:

{WEB_SERVICE_URL}/GetGrouping/{ALSO_ROUTE_CODE}/{LANGUAGE}/{CLIENT_ID}

For example:

https://b2b.alsolatvia.lv/DirectXML.svc/GetGrouping/2/LV/127

LANGUAGE parameter can be: EN, LV, LT, EE.

LIST OF ALSO WAREHOUSES

Here is the list of available warehouses with corresponding IDs:

Warehouse ID Order Warehouse ID

Tallinn, Estonia EE 0058

Riga, Latvia LV 0060

Kaunas, Lithuania LT 0062

Tampere, Finland FI 0056

TRANSACTION DESCRIPTIONS

CATALOG REQUEST TRANSACTION

GENERAL DESCRIPTION

The goal of this transaction is to get information about product stock availability, prices and basic product

description. It is possible to narrow the result list by specifying additional filters in the request: manufacturer, product

group, etc.

Due to the fact that ALSO refreshes catalog data every 2 hours, it is advisable that customer requests catalog

information not more than every 2 hours. Most recommended replication scenario is to replicate full catalog 2 times a

day and in addition make specific product check in case a customer is going to make an order and is willing to pre-check

the stock availability and price from ALSO.

REQUEST

Request example:

<?xml version="1.0" encoding="UTF-8"?>

<CatalogRequest>

<Route>

<From>

<ClientID>{CLIENT_ID}</ClientID>

</From>

<To>

<ClientID>{ALSO_ROUTE_CODE}</ClientID>

</To>

</Route>

<Filters>

<Filter FilterID="StockLevel" Value="OnStock" />

<Filter FilterID="Price" Value="WOVAT" />

</Filters>

</CatalogRequest>

There are following filters available:

Filter Values Instances Purpose

StockLevel OnStock, Transit, All 1 Filter result product list by stock availability: OnStock – only products that are available on stock; Transit – only products that are either available on stock or are coming to stock from manufacturer; All – full list of products that is possible to order.

Price WOVAT, VAT 0..1 Return prices with or without VAT, default value WOVAT.

VendorID 0..n Filter products by manufacturer, multiple manufacturers can be specified.

ClassID 0..n Filter products by product group, multiple product groups can be specified.

PartNumber * 0..n Get only specific products specified by part number (manufacturer product code).

EANCode 0..n Get only specific products specified by EAN code.

DeletedTimeStamp 0..1 Get list of products that have been removed from catalog available to customer since specified date/time value. This filter makes irrelevant all other filters (if specified any).

* Request by PartNumber triggers real-time price and stock check from ALSO system. Real-time check is a slower

transaction and is only advisable before the Purchase Order transaction. Real-time check is only available to the

customers that are using Purchase Orders via XMLLink. In all other cases XMLLink will return the information from the

cached data that is updated every 2 hours on ALSO side.

RESPONSE

Response example:

<?xml version="1.0" encoding="utf-8"?>

<PriceCatalog>

<PriceCatHdr>

<Date>2015-03-25T10:50:32</Date>

<Currency>EUR</Currency>

<Description>XML Product Catalog</Description>

<CatNumber>2.0</CatNumber>

<Filters>

<Filter FilterID="StockLevel" Value="All"/>

<Filter FilterID="Price" Value="WOVAT"/>

<Filter FilterID="VendorID" Value="80000573"/>

<Filter FilterID="ClassID" Value="L03002001"/>

</Filters>

<Route>

<From>

<ClientID>{ALSO_ROUTE_CODE}</ClientID>

</From>

<To>

<ClientID>{CLIENT_ID}</ClientID>

</To>

</Route>

</PriceCatHdr>

<ListofCatalogDetails>

<CatalogItem>

<Product>

<ProductID>1992387</ProductID>

<PartNumber>90MB0GI0-M0EAY0</PartNumber>

<EANCode>4716659550242</EANCode>

<Description>ASUS H81M-PLUS Socket1150 mATX</Description>

<LongDesc>ASUS H81M-PLUS 1150 mATX - 2xDDR3 HDMI + DVI - microATX motherboard

Intel</LongDesc>

<PeriodofWarranty>36 Months Bring-In Warranty</PeriodofWarranty>

<Grouping>

<GroupBy GroupID="VendorID" Value="80000573"/>

<GroupBy GroupID="ClassID" Value="L03002001"/>

</Grouping>

</Product>

<Qty WarehouseID="1">

<QtyAvailable>14</QtyAvailable>

</Qty>

<Qty WarehouseID="2">

<QtyAvailable>31</QtyAvailable>

</Qty>

<Qty WarehouseID="FI" OrderWarehouseID="0056" DeliveryType="Indirect">

<QtyAvailable>23</QtyAvailable>

<UnitPrice>63.97</UnitPrice>

<DateArriveToLocalWH>2015-04-03</DateArriveToLocalWH>

</Qty>

<Qty WarehouseID="LT" OrderWarehouseID="0062" DeliveryType="Indirect">

<QtyAvailable>8</QtyAvailable>

<UnitPrice>62.82</UnitPrice>

<DateArriveToLocalWH>2015-04-03</DateArriveToLocalWH>

</Qty>

<Price>

<UnitPrice Type="C0">62.50</UnitPrice>

<PromoFlag>0</PromoFlag>

</Price>

</CatalogItem>

<CatalogItem>

<Product>

<ProductID>1992388</ProductID>

<PartNumber>90MB0GJ0-M0EAY0</PartNumber>

<EANCode>4716659557920</EANCode>

<Description>ASUS H81-PLUS Socket1150 ATX</Description>

<LongDesc>ASUS H81-PLUS 1150 ATX - 2xDDR3 ATX motherboard Intel</LongDesc>

<PeriodofWarranty>36 Months Bring-In Warranty</PeriodofWarranty>

<Grouping>

<GroupBy GroupID="VendorID" Value="80000573"/>

<GroupBy GroupID="ClassID" Value="L03002001"/>

</Grouping>

</Product>

<Qty WarehouseID="1">

<QtyAvailable>5</QtyAvailable>

</Qty>

<Qty WarehouseID="2">

<QtyAvailable>14</QtyAvailable>

</Qty>

<Qty WarehouseID="FI" OrderWarehouseID="0056" DeliveryType="Indirect">

<QtyAvailable>4</QtyAvailable>

<UnitPrice>69.11</UnitPrice>

<DateArriveToLocalWH>2015-04-03</DateArriveToLocalWH>

</Qty>

<Qty WarehouseID="LT" OrderWarehouseID="0062" DeliveryType="Indirect">

<QtyAvailable>10</QtyAvailable>

<UnitPrice>67.85</UnitPrice>

<DateArriveToLocalWH>2015-04-03</DateArriveToLocalWH>

</Qty>

<Price>

<UnitPrice Type="C0">67.50</UnitPrice>

<PromoFlag>0</PromoFlag>

</Price>

</CatalogItem>

</ListofCatalogDetails>

</PriceCatalog>

Field description:

Node/Attribute Occurs Description

PriceCatalog 1 root node

/PriceCatHdr 1 basic info about response: date/time of response, currency, specified filters

/CatalogItem 1 information about the specific product

/Product 1 basic description of a product

/ProductID 1 ALSO product code

/PartNumber 1 manufacturer product code

/EANCode 1 product EAN code

/Description 1 product title specified by ALSO, short version

/LongDesc 1 extended product title

/PeriodofWarranty 1 invoice amount incl. VAT

/Grouping 1 list of manufacturers and product groups

/Qty 1 stock availability section

/@WarehouseID 1 values: 1 – local, 2 – sum of remote warehouses, LV/EE/LT/FI – remote warehouses by country

/@OrderWarehouseID 1 this warehouse ID value should be used in Purchase Order request in case there is intention to order not from the primary warehouse, but from a specific remote one

/@DeliveryType 1 values: Direct/Indirect; indicates whether the product is orderable from a remote warehouse with direct delivery to customer, or through the primary warehouse

/QtyAvailable 1 quantity on stock

/UnitPrice 1 price for specified warehouse, delivery type (relevant for remote warehouses only)

/DateArriveToLocalWH 1 a date when product would be delivered to primary (local) warehouse from the specified remote warehouse. Customer should take this into consideration when estimating product delivery date

/Price 1 price which is relevant when ordered from a local warehouse

/UnitPrice/@Type 1 values: C0 for “without VAT”, C for “incl. VAT”

PRODUCT SPECIFICATION REQUEST

GENERAL DESCRIPTION

This request returns more detailed information about a product than Catalog request, e.g. dimensions and weight. The

response does not contain product properties (like diagonal size for a monitor, or CPU model for a laptop), but there is

an option for a customer to subscribe at ALSO to a paid service of CNET specifications. In this case the response of this

request will contain an URL to a CNET specification in HTML format, which can be used in the customer’s web shop or

internal tools.

REQUEST

To request product specification besides standard Route section customer should provide following information in the

request:

- PartNumber (manufacturer product code);

- Language: ENG, LAT, LIT, EST; if not specified then default language of the ALSO country is considered.

Request example:

<?xml version="1.0" encoding="UTF-8"?>

<ProductSpecRequest>

<Date>2015-03-25T14:46:00</Date>

<Route>

<From>

<ClientID>{CLIENT_ID}</ClientID>

</From>

<To>

<ClientID>{ALSO_ROUTE_CODE}</ClientID>

</To>

</Route>

<Language>ENG</Language>

<PartNumber>9487B026</PartNumber>

</ProductSpecRequest>

RESPONSE

Response example:

<?xml version="1.0" encoding="utf-8"?>

<ProductSpec>

<Language>ENG</Language>

<ProductDetails>

<ProductID>2203374</ProductID>

<PartNumber>9487B026</PartNumber>

<ManufacturerPartNumber>9487B026</ManufacturerPartNumber>

<Description>CANON Pixma MG5650 WHITE</Description>

<LongDesc>CANON Pixma MG5650 WHITE A4 color USB print copy scan WIFI Auto Dublex</LongDesc>

<Manufacturer>CANON</Manufacturer>

<EANCode>4549292009057</EANCode>

<PeriodofWarranty>12 Months Bring-In Warranty</PeriodofWarranty>

<Qty WarehouseID="1">

<QtyAvailable>62</QtyAvailable>

</Qty>

<Qty WarehouseID="2">

<QtyAvailable>0</QtyAvailable>

</Qty>

<UnitPrice Type="C0">62.1500</UnitPrice>

<VatRate>21</VatRate>

<Weight>7.680000000</Weight>

<Height>215.000000000</Height>

<Width>480.000000000</Width>

<Length>515.000000000</Length>

</ProductDetails>

<ProductLinks>

<Link>

<Value>http://cby.alsoactebis.com/cop/product/2203374/<SCI>/datasheet.do</Value>

<Name>CNET data</Name>

</Link>

</ProductLinks>

</ProductSpec>

ProductsSpec/ProductLinks – contains extra links for a product. One example is the link to CNET specification HTML

format. This is an extra paid service that has to be requested from ALSO, and when a customer is subscribed to this

service then instead of “<SCI>” URL will contain customer specific ID – SCI (example, “”). This way ALSO identifies a

customer that is requesting a specification and is controlling an access to the service. When subscribing to the service

customer signs a separate service contract where customer specifies web shop URL where the specification is allowed

to be used. These rules are an agreement with company CNET, the partner of ALSO that provides product specification

service.

CONTRACT PRICELIST REQUEST

GENERAL DESCRIPTION

This transaction provides information about special prices provided by the manufacturer based on a contract that is

limited in time and in quantity. Customer may specify a contract during ordering to get a special price. Prices are valid

only if the product is shipped out to customer within the contract validity date.

REQUEST

Request should contain:

- standard Route section in order to identify the customer;

- IncludesVAT field that identifies has Boolean values [0; 1] – whether to include VAT in result prices or not.

Request example:

<?xml version="1.0" encoding="utf-8"?>

<BIDPricelistRequest>

<Date>2011-09-06T13:25:33</Date>

<IncludesVAT>0</IncludesVAT>

<Route>

<From>

<ClientID>{CLIENT_ID}</ClientID>

</From>

<To>

<ClientID>{ALSO_ROUTE_CODE}</ClientID>

</To>

</Route>

</BIDPricelistRequest>

RESPONSE

Response returns all the contracts available to the customer at the moment of time when the request is sent. As long as

a contact is not anymore valid, it will not appear in the response of this transaction.

Response example:

<?xml version="1.0" encoding="utf-8"?>

<BIDPricelistResponse>

<ResponseHeader>

<Date>2015-03-26T08:00:43</Date>

<Description>BID Pricelist</Description>

<Version>0.2</Version>

<Currency>EUR</Currency>

<IncludesVAT>0</IncludesVAT>

<Route>

<From>

<ClientID>{ALSO_ROUTE_CODE}</ClientID>

</From>

<To>

<ClientID>{CLIENT_ID}</ClientID>

</To>

</Route>

</ResponseHeader>

<ResponseDetails>

<BID>

<Number>LENOVO PROMO CONTRACT 2015/03</Number>

<Supplier/>

<ValidFrom>2015-02-20</ValidFrom>

<ValidTill>2015-03-31</ValidTill>

<EndUserList>

<EndUser>LENOVO PROMO CUSTOMER</EndUser>

</EndUserList>

<ProductList>

<Product>

<ProductID>2006947</ProductID>

<PartNumber>40A00065EU</PartNumber>

<Price Type="C0">100.78</Price>

<MaxQuantity>50</MaxQuantity>

<FreeQuantity>22</FreeQuantity>

</Product>

</ProductList>

</BID>

<BID>

<Number>90597874-036</Number>

<Supplier/>

<ValidFrom>2014-01-11</ValidFrom>

<ValidTill>2015-03-31</ValidTill>

<EndUserList>

<EndUser>SOME COMPANY, INC.</EndUser>

</EndUserList>

<ProductList>

<Product>

<ProductID>1433293</ProductID>

<PartNumber>FH973AA</PartNumber>

<Price Type="C0">11.46</Price>

<MaxQuantity>1000</MaxQuantity>

<FreeQuantity>1000</FreeQuantity>

</Product>

<Product>

<ProductID>1622168</ProductID>

<PartNumber>WU676AA#ABB</PartNumber>

<Price Type="C0">11.58</Price>

<MaxQuantity>100</MaxQuantity>

<FreeQuantity>55</FreeQuantity>

</Product>

</ProductList>

</BID>

</ResponseDetails>

</BIDPricelistResponse>

Field description:

Node/Attribute Occurs Description

BIDPricelistResponse/ResponseDetails 1 contains a list of contracts

/BID 0..n a node for each contract

/Number 1 contract number (has to be specified in the Purchase Order)

/ValidFrom 1 contract validity time range start

/ValidTill 1 contract validity time range end

/EndUserList 1 list of end customers for which the contract is allowed to be used

/EndUser 1..n end user name (has to be specified in the Purchase Order)

/ProductList 1 contains a list of products with prices and quantities

/Product 1..n a node for each product related to contract

/ProductID 1 ALSO product code

/PartNumber 1 manufacturer product code

/Price 1 product price within the contract

/MaxQuantity 1 max amount of products that can be purchased within this contact

/FreeQuantity 1 open amount of products still available for purchasing within this contract

Some contracts are meant for specific end customers, some are meant for any end customer. In the latter case a

“dummy” end customer is created and should also be used during ordering.

PURCHASE ORDER TRANSACTION

GENERAL DESCRIPTION

This transaction allows a customer to post an order to ALSO system. Customer has to specify the order lines with

products code and quantity for each. He may specify contract number and end customer to make an order with special

contract price. Also customer has to specify a delivery address and shipping method, which can be one of: customer

pickup, ALSO transport, DPD or other transportation company (possible values are dependent on local ALSO company).

For the orders containing licenses, care packs or ESD products it is necessary to specify an end customer

information, as this is required by manufacturer, and also end customer would be able to receive relevant information

to his e-mail.

REQUEST

Request example:

<?xml version="1.0" encoding="UTF-8"?>

<PurchaseOrder>

<OrderHeader>

<POIssuedDate>2015-04-07</POIssuedDate>

<PreferredShippingDate>2015-04-07</PreferredShippingDate>

<PartialShipmentAllowed>1</PartialShipmentAllowed>

<OrderNumber>

<BuyerOrderNumber>4000098926</BuyerOrderNumber>

</OrderNumber>

<Transport>

<Carrier>1472</Carrier>

<DeliveryDeadline>0</DeliveryDeadline>

</Transport>

<OrderParties>

<BuyerParty>

<Party>

<ID>{CLIENT_ID}</ID>

</Party>

</BuyerParty>

<SupplierParty>

<Party>

<ID>{ALSO_ROUTE_CODE}</ID>

</Party>

</SupplierParty>

<DeliveryParty>

<Party>

<ID>M240003151743</ID>

<NameAddress>

<Name1>CUSTOMER NAME, SIA</Name1>

<Address1>Brivibas 888-22</Address1>

<Address2>Juris Cirulis +37122233344</Address2>

<City>Riga</City>

<PostalCode>1099</PostalCode>

<Country>LV</Country>

</NameAddress>

</Party>

</DeliveryParty>

<EndUserParty>

<Party>

<Reference>2000098926</Reference>

<NameAddress>

<Name1>Example Bank, A/S</Name1>

<Address1>Liliju 29</Address1>

<City>Marupe</City>

<PostalCode>1299</PostalCode>

<Country>LV</Country>

</NameAddress>

<Contact>

<Name>Janis Berzins</Name>

<Phone>+37144433322</Phone>

<EMail>[email protected]</EMail>

</Contact>

</Party>

</EndUserParty>

</OrderParties>

</OrderHeader>

<ListofOrderDetails>

<OrderLine Type="P">

<LineNumber>1</LineNumber>

<ProductID>2088349</ProductID>

<PartNumber>S26381-K511-L402</PartNumber>

<Quantity>

<QtyRequested>20</QtyRequested>

</Quantity>

<WareHouseID>1</WareHouseID>

<BIDNumber>90597874-036</BIDNumber>

<BIDName>SOME COMPANY, INC.</BIDName>

</OrderLine>

</ListofOrderDetails>

<OrderSummary>

<Note>4000098926</Note>

<ResellerNote>4000098926</ResellerNote>

</OrderSummary>

</PurchaseOrder>

Field description:

Node/Attribute Occurs Description

PurchaseOrder 1 root node

/OrderHeader 1 header data about the purchase order

/PreferredShippingDate 0..1 Date when customer is willing to receive the goods

/PartialShipmentAllowed 1 Can order be delivered in parts (values: 0,1)

/OrderNumber/BuyerOrderNumber 1 Customer’s PO number or other reference

/Transport/Carrier 1 Transport method to be used (values are supplier specific)

/OrderParties 1 A list of parties relevant for this order

/BuyerParty/Party/ID 1 Customer ID

/SupplierParty/Party/ID 1 ALSO route code

/DeliveryParty 1 Party to which the goods are to be delivered

/ID 0..1 This is predefined ALSO-issued ID of a delivery party

/NameAddress 0..1 Delivery address details (required if party ID isn’t specified)

/EndUserParty 0..1 End user party is required when ordering licenses, care-packs or ESD software products

/ListofOrderDetails 1 List of order lines

/OrderLine 1..n Node for each order line

/ProductID 1 ALSO code of a product

/Quantity/QtyRequested 1 Product quantity to order

/WarehouseID 1 The warehouse from which customer is ordering products (values: 1 – system default, 5110 – Tallinn, 5210 – Riga, 5310 – Kaunas, 5710 – Tampere)

/BIDNumber 0..1 Contract number (to order with a special contract price)

/BIDName 0..1 End customer name (to order with a special contract price)

RESPONSE

Response example:

<?xml version="1.0" encoding="UTF-8"?>

<OrderResponse>

<ResponseDate>2015-04-07T14:36:59</ResponseDate>

<OrderHeader>

<POIssuedDate>2015-04-07</POIssuedDate>

<PreferredShippingDate>2015-04-07</PreferredShippingDate>

<EstimatedDeliveryDate>2015-04-07</EstimatedDeliveryDate>

<OrderNumber>

<SupplierOrderNumber>7005602188</SupplierOrderNumber>

<BuyerOrderNumber>4000098926</BuyerOrderNumber>

</OrderNumber>

<OrderParties>

<BuyerParty>

<Party>

<ID>{CLIENT_ID}</ID>

<NameAddress>

<Name1>CUSTOMER NAME, SIA</Name1>

<Name2/>

<Address1>Brivibas 888-22</Address1>

<City>Riga</City>

<PostalCode>1099</PostalCode>

<Country>LV</Country>

</NameAddress>

<Reference>4000098926</Reference>

</Party>

</BuyerParty>

<DeliveryParty>

<Party>

<ID>M240003151743</ID>

<NameAddress>

<Name1>CUSTOMER NAME, SIA</Name1>

<Name2/>

<Address1>Brivibas 888-22</Address1>

<City>Riga</City>

<PostalCode>1099</PostalCode>

<Country>LV</Country>

</NameAddress>

</Party>

</DeliveryParty>

</OrderParties>

<Transport>

<Carrier>1472</Carrier>

<DeliveryDeadline>0</DeliveryDeadline>

</Transport>

<PartialShipmentAllowed>1</PartialShipmentAllowed>

<DirectDeliveryAddressNumber>0</DirectDeliveryAddressNumber>

<VirtualPicking>0</VirtualPicking>

<SumHold>0</SumHold>

<WeightHold>0</WeightHold>

</OrderHeader>

<ListofOrderDetails>

<OrderLine Type="P">

<LineNumber>1</LineNumber>

<ProductID>2088349</ProductID>

<PartNumber>S26381-K511-L402</PartNumber>

<Description>FUJITSU KB410 USB Black US</Description>

<EstimatedDeliveryDate>2015-04-07</EstimatedDeliveryDate>

<PreferredShippingDate>2015-04-07</PreferredShippingDate>

<RequestedDeliveryDate />

<Quantity>

<QtyRequested>20</QtyRequested>

<QtyConfirmed>20</QtyConfirmed>

<QtyAllocated>20</QtyAllocated>

<QtyShipped>0</QtyShipped>

</Quantity>

<Price>

<UnitPrice Type="C0">14.70</UnitPrice>

</Price>

<WarehouseID>1</WarehouseID>

<Status>2</Status>

</OrderLine>

</ListofOrderDetails>

<OrderSummary>

<TotalAmount>294.00</TotalAmount>

<TotalLineNumber>1</TotalLineNumber>

<NetAmount>294.00</NetAmount>

<Note>4000098926</Note>

<ResellerNote>4000098926</ResellerNote>

</OrderSummary>

</OrderResponse>

Field description:

Node/Attribute Occurs Description

OrderResponse 1 root node

/OrderHeader 1 header data about the purchase order

/EstimatedDeliveryDate 1 estimated date when goods will be delivered (estimation on order level)

/OrderNumbers 1

/SupplierOrderNumber 1 number of ALSO sales order to customer

/BuyerOrderNumber 1 customer specified purchase order number or reference

/OrderParties 1 parties list (similar to the same section in the request)

/Transport/Carrier 1 transport method to be used (values are supplier specific)

/SumHold 1 total min amount of sales orders to one delivery address when delivery is dispatched

/WeightHold 1 total min weight of products ordered to one address when delivery is dispatched

/ListofOrderDetails 1 order lines section

/OrderLine 1..n a node for every order line

/EstimatedDeliveryDate 1 estimated date when goods will be delivered (estimation on order line level)

/Quantity 1

/QtyRequested 1 product quantity ordered by customer

/QtyConfirmed 1 product quantity that is confirmed to be delivered by ALSO

/QtyAllocated 1 product quantity that is allocated at ALSO warehouse

/QtyShipped 1 product quantity that is already shipped to customer (in case of a response for the request of a new order equals 0)

/Price/UnitPrice 1 product price; @Type values: C – with VAT, C0 – without VAT

/WarehouseID 1 physical warehouse where order line is shipped from

/Status 1 order line status: 1 – unconfirmed, 2 – confirmed, 3 – in delivery, 4 – delivered, 5 – invoiced

/OrderSummary 1 order summary section

/TotalAmount 1 total amount of an order

/TotalLineNumber 1 count of lines

/NetAmount 1 total amount of an order without VAT

STATEMENT REQUEST

GENERAL DESCRIPTION

This transaction returns information about the invoices, down to product line and serial numbers level.

Information is updated once a day, usually at night.

REQUEST

Request contains standard section Route, a filter Price to specify whether to return prices with VAT or without, two

fields InvoicingDateFrom and InvoicingDateTo specifying range of invoicing dates.

It is important to specify the date range as narrow as needed, otherwise request may take too much time and fail with

timeout exception.

Request example:

<?xml version="1.0"?>

<StatementRequest>

<Route>

<From>

<ClientID>{CLIENT_ID}</ClientID>

</From>

<To>

<ClientID>{ALSO_ROUTE_CODE}</ClientID>

</To>

</Route>

<Filters>

<Filter FilterID="Price" Value="WOVAT" />

<Filter FilterID="InvoiceDateFrom" Value="2013-01-01" />

<Filter FilterID="InvoiceDateTo" Value="2013-01-09" />

</Filters>

</StatementRequest>

RESPONSE

Response example:

<?xml version="1.0" encoding="utf-8"?>

<Statement>

<StatementDate>2015-03-31T10:22:23</StatementDate>

<BuyerParty>

<Party>

<ID>{CLIENT_ID}</ID>

<NameAddress>

<Name1>CUSTOMER NAME, SIA</Name1>

<Address1>BRIVIBAS STR. 999-11</Address1>

<City>RIGA</City>

<PostalCode>1099</PostalCode>

</NameAddress>

</Party>

</BuyerParty>

<Filters>

<Filter FilterID="Price" Value="WOVAT"/>

<Filter FilterID="InvoiceDateFrom" Value="2015-03-01"/>

<Filter FilterID="InvoiceDateTo" Value="2015-03-02"/>

</Filters>

<ListofInvoices>

<Invoice>

<InvoiceNumber>933052498</InvoiceNumber>

<ReferenceNumber>4000097029</ReferenceNumber>

<InvoiceStatus>5</InvoiceStatus>

<InvoiceDate>2015-03-02</InvoiceDate>

<DueDate>2015-04-16</DueDate>

<Amount>404.87</Amount>

<Paid>0.0000</Paid>

<NotPaid>404.87</NotPaid>

<Currency>EUR</Currency>

<ShipmentInfo>

<DeliveryParty ID="{CLIENT_ID}">

<Party>

<ID>10756789</ID>

<NameAddress>

<Name1>CUSTOMER NAME, SIA</Name1>

<Name2></Name2>

<Address1>BRIVIBAS STR. 888-22</Address1>

<City>Rīga</City>

<PostalCode>1013</PostalCode>

</NameAddress>

</Party>

</DeliveryParty>

<DirectDeliveryOrder>0</DirectDeliveryOrder>

<HandlingFee></HandlingFee>

<TermofDelivery>

<Code></Code>

</TermofDelivery>

<Transport>

<Carrier></Carrier>

<ShippingInstructions></ShippingInstructions>

<DeliveryDeadline>0</DeliveryDeadline>

<FreightAmount>0.0000</FreightAmount>

</Transport>

<ParcelQty>1</ParcelQty>

<Weight>1.923</Weight>

<TaxIncluded>0</TaxIncluded>

<InsuranceCosts></InsuranceCosts>

<Packer></Packer>

</ShipmentInfo>

<ListofInvoiceDetails>

<InvoiceLine Type="S">

<OrderNumber>

<SupplierOrderNumber>7005144721</SupplierOrderNumber>

<BuyerOrderNumber>4000097029</BuyerOrderNumber>

</OrderNumber>

<ProductID>2101310</ProductID>

<PartNumber>WRT1900AC-EJ</PartNumber>

<EANCode>4260184663101</EANCode>

<QtyShipped>1</QtyShipped>

<UnitPrice Type="C0">334.6000</UnitPrice>

<SerialNumbers>

<SerialNumber>

<SN>13J1060C405278</SN>

<QtyConfirmed>1</QtyConfirmed>

</SerialNumber>

</SerialNumbers>

<WarehouseID>0060</WarehouseID>

<PeriodofWarranty>24 Months Bring-In Warranty</PeriodofWarranty>

</InvoiceLine>

</ListofInvoiceDetails>

</Invoice>

</ListofInvoices>

<StatementSummary>

<TotalInvoices>1</TotalInvoices>

<TotalAmount>404.87</TotalAmount>

<Currency>EUR</Currency>

</StatementSummary>

</Statement>

Field description:

Node/Attribute Occurs Description

Statement 1 root node

/BuyerParty 1 data about the invoiced customer

/Filters 1 list of filters specified by the request sender

/ListofInvoices 1 contains result list of invoices

/Invoice 1 a node for each invoice

/InvoiceNumber 1 ALSO invoice number

/ReferenceNumber 1 customer reference (customer’s order number)

/InvoiceStatus 1 invoice overall status: 5 – open, 6 – closed (paid)

/InvoiceDate 1 date when invoice was issued

/DueDate 1 until this date customer has to pay the full amount of the invoice

/Amount 1 invoice amount incl. VAT

/Paid 1 paid amount incl. VAT

/NotPaid 1 open amount of the invoice incl. VAT

/Currency 1 invoice currency

/ShipmentInfo 1 details about shipment

/ListofInvoiceDetails 1 list of invoice lines

/InvoiceLine 1 a node for each invoice line

/OrderNumber 1 a node for all related order numbers

/SupplierOrderNumber 1 ALSO order number

/BuyerOrderNumber 1 customer order number specified by customer when making purchase order

/ProductID 1 ALSO product code

/PartNumber 1 manufacturer product code

/EANCode 1 product EAN code

/QtyShipped 1 quantity that is already delivered to customer from the order line

/UnitPrice 1 price in the invoice line

/SerialNumbers 1 list of serial numbers (if available)

/SerialNumber 0..n a node for each serial number

/SN 1 serial number

/QtyConfirmed 1 quantity of serial numbers

/WarehouseID 1 ALSO warehouse ID in a numeric format

/PeriodofWarranty 1 manufacturer warranty in words

/StatementSummary 1 summary about the returned invoice results

BACKLOG REQUEST

GENERAL DESCRIPTION

This transaction returns information about customer’s open orders – backlog – orders that are placed in ALSO system,

but not yet delivered.

Information is updated once a day, usually at night. Last update time is available in the response (header section) of the

transaction.

REQUEST

Request contains only standard Route section:

<?xml version="1.0" encoding="utf-8"?>

<BacklogRequest>

<Date>2007-08-13</Date>

<Route>

<From>

<ClientID>{CLIENT_ID}</ClientID>

</From>

<To>

<ClientID>{ALSO_ROUTE_CODE}</ClientID>

</To>

</Route>

</BacklogRequest>

RESPONSE

Response example:

<?xml version="1.0" encoding="utf-8"?>

<BacklogResponse>

<ResponseHeader>

<Date>2015-03-31T10:07:20</Date>

<Description>Backlog</Description>

<Version>0.1</Version>

<Route>

<From>

<ClientID>{ALSO_ROUTE_CODE}</ClientID>

</From>

<To>

<ClientID>{CLIENT_ID}</ClientID>

</To>

</Route>

<DateInformationUpdated>2015-03-31T02:00:10.870</DateInformationUpdated>

</ResponseHeader>

<ResponseDetails>

<BacklogOrder>

<OrderNumber>

<SupplierOrderNumber>7004815674</SupplierOrderNumber>

<BuyerOrderNumber>4000095658</BuyerOrderNumber>

</OrderNumber>

<RequestedDeliveryDate>2015-02-04T00:00:00</RequestedDeliveryDate>

<OrderLines>

<OrderLine>

<Position>000100</Position>

<ProductID>2361579</ProductID>

<PartNumber>20B7S1EM2D</PartNumber>

<EANCode></EANCode>

<Description>LENOVO ThinkPad T440 ABB SIA</Description>

<DescriptionLong>LENOVO ThinkPad T440 i5-4300U 20B7S1EM2D ABB SIA</DescriptionLong>

<WarehouseID>LV</WarehouseID>

<EstimatedDeliveryDate>2015-04-30</EstimatedDeliveryDate>

<Price>

<UnitPrice Type="C0">1049.77</UnitPrice>

</Price>

<Quantity>

<QtyOrdered>5</QtyOrdered>

<QtyConfirmed>5</QtyConfirmed>

<QtyAllocated>2</QtyAllocated>

<QtyShipped>0</QtyShipped>

</Quantity>

</OrderLine>

<OrderLine>

<Position>000200</Position>

<ProductID>2361660</ProductID>

<PartNumber>20AMS0XP2D</PartNumber>

<EANCode></EANCode>

<Description>LENOVO ThinkPad X240 ABB SIA</Description>

<DescriptionLong>LENOVO ThinkPad X240 i5-4300U 20AMS0XP2D ABB SIA</DescriptionLong>

<WarehouseID>LV</WarehouseID>

<EstimatedDeliveryDate>2015-04-30</EstimatedDeliveryDate>

<Price>

<UnitPrice Type="C0">1037.23</UnitPrice>

</Price>

<Quantity>

<QtyOrdered>1</QtyOrdered>

<QtyConfirmed>1</QtyConfirmed>

<QtyAllocated>0</QtyAllocated>

<QtyShipped>0</QtyShipped>

</Quantity>

</OrderLine>

</OrderLines>

</BacklogOrder>

</ResponseDetails>

</BacklogResponse>

Field description:

Node/Attribute Occurs Description

BacklogResponse/ResponseHeader /DateInformationUpdated

1 date of the last information update from the ALSO ERP system to XMLLink database

/ResponseDetails 1 node contains order list

/BacklogOrder 0..n a node for each order

/OrderNumber 1 a node for all related order numbers

/SupplierOrderNumber 1 ALSO order number

/BuyerOrderNumber 1 customer order number specified by customer when making purchase order

/RequestedDeliveryDate 1 requested delivery date by the customer

/OrderLines 1 list of lines of an order

/OrderLine 1..n a node for each line of an order

/Position 1 order line position number

/ProductID 1 ALSO product code

/PartNumber 1 manufacturer product code

/EANCode 1 product EAN code

/Description 1 product description

/DescriptionLong 1 extended product description

/WarehouseID 1 warehouse code (LV, LT, EE, FI)

/EstimatedDeliveryDate 1 date when order line is estimated to be delivered

/Price 1 product price within the order

/Quantity 1 a node containing quantity information about order line

/QtyOrdered 1 quantity ordered by customer

/QtyConfirmed 1 quantity that ALSO confirms to deliver

/QtyAllocated 1 quantity allocated on stock at ALSO at a specific moment of time

/QtyShipped 1 quantity that is already delivered to customer from the order line

ERRORS