Exigo Web Services API v2022.12.19.1

GetItems

Returns price, volume, and description for one or more item codes.

Input Properties

GetItemsRequest
PropertyData TypeNotes
CurrencyCode String
PriceType Int32Controls which price band to use.
WarehouseID Int32Unique location for orders.
ItemCodes String[]Array of item codes.
WebID Int32Optional. Optionally use categories from content engine.
WebCategoryID Int32Optional. Optionally use categories from content engine.
ReturnLongDetailBoolean
RestrictToWarehouseBooleanOptional. Determines if the items returned must be available in the provided WarehouseID (Default: false).
LanguageID Int32Optional. Customize the web experience by setting this.
ExcludeHideFromSearchBooleanOptional. Will exclude Hide from Search items. (defaults to false).

Output Properties

GetItemsResponse
PropertyData TypeNotes
ItemsItemResponse[]
ItemResponse
PropertyData TypeNotes
ItemCode String
DescriptionString
PriceDecimalPrice amount.
WeightDecimal
CommissionableVolumeDecimal
BusinessVolumeDecimal
Other1PriceDecimal
Other2PriceDecimal
Other3PriceDecimal
Other4PriceDecimal
Other5PriceDecimal
Other6PriceDecimal
Other7PriceDecimal
Other8PriceDecimal
Other9PriceDecimal
Other10PriceDecimal
CategoryString
CategoryIDInt32
TinyPictureString
SmallPictureString
LargePictureString
ShortDetailString
ShortDetail2String
ShortDetail3String
ShortDetail4String
LongDetailString
LongDetail2String
LongDetail3String
LongDetail4String
InventoryStatus InventoryStatusType
StockLevelInt32
AvailableStockLevelInt32
MaxAllowedOnOrderInt32
Field1String
Field2String
Field3String
Field4String
Field5String
Field6String
Field7String
Field8String
Field9String
Field10String
OtherCheck1Boolean
OtherCheck2Boolean
OtherCheck3Boolean
OtherCheck4Boolean
OtherCheck5Boolean
IsVirtualBoolean
AllowOnAutoOrderBoolean
IsGroupMasterBoolean
GroupDescriptionString
GroupMembersDescriptionString
GroupMembersItemMemberResponse[]
IsDynamicKitMasterBoolean
HideFromSearchBoolean
KitMembersKitMemberResponse[]
TaxablePriceDecimal
ShippingPriceDecimal
ItemMemberResponse
PropertyData TypeNotes
ItemCode String
MemberDescriptionString
ItemDescriptionString
InventoryStatus InventoryStatusType
StockLevelInt32
AvailableStockLevelInt32
KitMemberResponse
PropertyData TypeNotes
DescriptionString
KitMemberItemsKitMemberItemResponse[]
KitMemberItemResponse
PropertyData TypeNotes
ItemCode String
DescriptionString
InventoryStatus InventoryStatusType

Http Request

GET https://yourcompany-api.exigo.com/3.0/item?currencyCode=usd
  &priceType=1
  &warehouseID=1
  &itemCodes=1
  &returnLongDetail=1
  &restrictToWarehouse=1
Authorization: Basic base64Encoded
                            

Http Response

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: length

{ "items": null, "result": null }

Soap Request

The following is a sample SOAP 1.1 request and response. The placeholders shown need to be replaced with actual values.

POST /3.0/ExigoApi.asmx HTTP/1.1
Host: api.exigo.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "https://api.exigo.com/GetItems"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header> <ApiAuthentication xmlns="http://api.exigo.com/"> <LoginName>string</LoginName> <Password>string</Password> <Company>string</Company> <Identity>string</Identity> <RequestTimeUtc>dateTime</RequestTimeUtc> <Signature>string</Signature> </ApiAuthentication> </soap:Header> <soap:Body> <GetItemsRequest xmlns="http://api.exigo.com/"> <CurrencyCode>string</CurrencyCode> <PriceType>int</PriceType> <WarehouseID>int</WarehouseID> <ItemCodes> <string>string</string> </ItemCodes> <WebID>int</WebID> <WebCategoryID>int</WebCategoryID> <ReturnLongDetail>boolean</ReturnLongDetail> <RestrictToWarehouse>boolean</RestrictToWarehouse> <LanguageID>int</LanguageID> <ExcludeHideFromSearch>boolean</ExcludeHideFromSearch> </GetItemsRequest> </soap:Body> </soap:Envelope>

Soap Response

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <GetItemsResult xmlns="http://api.exigo.com/"> <Items> <ItemResponse> <ItemCode>string</ItemCode> <Description>string</Description> <Price>decimal</Price> <Weight>decimal</Weight> <CommissionableVolume>decimal</CommissionableVolume> <BusinessVolume>decimal</BusinessVolume> <Other1Price>decimal</Other1Price> <Other2Price>decimal</Other2Price> <Other3Price>decimal</Other3Price> <Other4Price>decimal</Other4Price> <Other5Price>decimal</Other5Price> <Other6Price>decimal</Other6Price> <Other7Price>decimal</Other7Price> <Other8Price>decimal</Other8Price> <Other9Price>decimal</Other9Price> <Other10Price>decimal</Other10Price> <Category>string</Category> <CategoryID>int</CategoryID> <TinyPicture>string</TinyPicture> <SmallPicture>string</SmallPicture> <LargePicture>string</LargePicture> <ShortDetail>string</ShortDetail> <ShortDetail2>string</ShortDetail2> <ShortDetail3>string</ShortDetail3> <ShortDetail4>string</ShortDetail4> <LongDetail>string</LongDetail> <LongDetail2>string</LongDetail2> <LongDetail3>string</LongDetail3> <LongDetail4>string</LongDetail4> <InventoryStatus>Available or OnBackOrder or OutOfStock or Discontinued</InventoryStatus> <StockLevel>int</StockLevel> <AvailableStockLevel>int</AvailableStockLevel> <MaxAllowedOnOrder>int</MaxAllowedOnOrder> <Field1>string</Field1> <Field2>string</Field2> <Field3>string</Field3> <Field4>string</Field4> <Field5>string</Field5> <Field6>string</Field6> <Field7>string</Field7> <Field8>string</Field8> <Field9>string</Field9> <Field10>string</Field10> <OtherCheck1>boolean</OtherCheck1> <OtherCheck2>boolean</OtherCheck2> <OtherCheck3>boolean</OtherCheck3> <OtherCheck4>boolean</OtherCheck4> <OtherCheck5>boolean</OtherCheck5> <IsVirtual>boolean</IsVirtual> <AllowOnAutoOrder>boolean</AllowOnAutoOrder> <IsGroupMaster>boolean</IsGroupMaster> <GroupDescription>string</GroupDescription> <GroupMembersDescription>string</GroupMembersDescription> <GroupMembers> <ItemMemberResponse> <ItemCode>string</ItemCode> <MemberDescription>string</MemberDescription> <ItemDescription>string</ItemDescription> <InventoryStatus>Available or OnBackOrder or OutOfStock or Discontinued</InventoryStatus> <StockLevel>int</StockLevel> <AvailableStockLevel>int</AvailableStockLevel> </ItemMemberResponse> </GroupMembers> <IsDynamicKitMaster>boolean</IsDynamicKitMaster> <HideFromSearch>boolean</HideFromSearch> <KitMembers> <KitMemberResponse> <Description>string</Description> <KitMemberItems xsi:nil="true" /> </KitMemberResponse> </KitMembers> <TaxablePrice>decimal</TaxablePrice> <ShippingPrice>decimal</ShippingPrice> </ItemResponse> </Items> </GetItemsResult> </soap:Body> </soap:Envelope>

C# Rest Client

Install Nuget package Exigo.Api.Client

try

{

    //Create Api Client

    var api = new ExigoApiClient("yourcmpany", "yourlogin", "yourpassword");

 

    //Create Request

    var req = new GetItemsRequest();

 

    req.CurrencyCode = "usd";

    req.PriceType = 1;              //Controls which price band to use

    req.WarehouseID = 1;            //Unique location for orders

 

    //Add ItemCodes

    var itemcodes = new List<String>();

    itemcodes.Add("1");

    itemcodes.Add("2");

 

    //Now attach the list to the request

    req.ItemCodes = itemcodes.ToArray();

    req.ReturnLongDetail = true;

    req.RestrictToWarehouse = true;    //Determines if the items returned must be available in the provided WarehouseID (Default: false)

 

    //Send Request to Server and Get Response

    var res = await api.GetItemsAsync(req);

 

    //Now examine the results:

 

    foreach (var item in res.Items)

    {

        Console.WriteLine("ItemCode: {0}", item.ItemCode);

        Console.WriteLine("Description: {0}", item.Description);

        Console.WriteLine("Price: {0}", item.Price);

        Console.WriteLine("Weight: {0}", item.Weight);

        Console.WriteLine("StockLevel: {0}", item.StockLevel);

        Console.WriteLine("AvailableStockLevel: {0}", item.AvailableStockLevel);

        Console.WriteLine("IsDynamicKitMaster: {0}", item.IsDynamicKitMaster);

 

        foreach (var kitMember in item.KitMembers)

        {

            Console.WriteLine("Description: {0}", kitMember.Description);

 

            foreach (var kitMemberItem in kitMember.KitMemberItems)

            {

                Console.WriteLine("ItemCode: {0}", kitMemberItem.ItemCode);

                Console.WriteLine("Description: {0}", kitMemberItem.Description);

                Console.WriteLine("InventoryStatus: {0}", kitMemberItem.InventoryStatus);

            }

        }

    }

}

catch (Exception ex)

{

    Console.WriteLine("Error: " + ex.Message);

}

C# Soap Client

try

{

    //Create Main API Context Object

    ExigoApi api = new ExigoApi();

 

    //Create Authentication Header

    ApiAuthentication auth = new ApiAuthentication();

    auth.LoginName = "yourLoginName";

    auth.Password = "yourPassword";

    auth.Company = "yourCompany";

    api.ApiAuthenticationValue = auth;

 

    //Create Request

    GetItemsRequest req = new GetItemsRequest();

 

    req.CurrencyCode = "usd";

    req.PriceType = 1;              //Controls which price band to use

    req.WarehouseID = 1;            //Unique location for orders

 

    //Add ItemCodes

    List<String> itemcodes = new List<String>();

    itemcodes.Add("1");

    itemcodes.Add("2");

 

    //Now attach the list to the request

    req.ItemCodes = itemcodes.ToArray();

    req.ReturnLongDetail = true;

    req.RestrictToWarehouse = true;    //Determines if the items returned must be available in the provided WarehouseID (Default: false)

 

    //Send Request to Server and Get Response

    GetItemsResponse res = api.GetItems(req);

 

    //Now examine the results:

 

    foreach (ItemResponse item in res.Items)

    {

        Console.WriteLine("ItemCode: {0}", item.ItemCode);

        Console.WriteLine("Description: {0}", item.Description);

        Console.WriteLine("Price: {0}", item.Price);

        Console.WriteLine("Weight: {0}", item.Weight);

        Console.WriteLine("StockLevel: {0}", item.StockLevel);

        Console.WriteLine("AvailableStockLevel: {0}", item.AvailableStockLevel);

        Console.WriteLine("IsDynamicKitMaster: {0}", item.IsDynamicKitMaster);

 

        foreach (KitMemberResponse kitMember in item.KitMembers)

        {

            Console.WriteLine("Description: {0}", kitMember.Description);

 

            foreach (KitMemberItemResponse kitMemberItem in kitMember.KitMemberItems)

            {

                Console.WriteLine("ItemCode: {0}", kitMemberItem.ItemCode);

                Console.WriteLine("Description: {0}", kitMemberItem.Description);

                Console.WriteLine("InventoryStatus: {0}", kitMemberItem.InventoryStatus);

            }

        }

    }

}

catch (Exception ex)

{

    Console.WriteLine("Error: " + ex.Message);

}

VB.Net

Try

    'Create Main API Context Object

    Dim api as new ExigoApi()

 

    'Create Authentication Header

    Dim auth as new ApiAuthentication()

    auth.LoginName = "yourLoginName"

    auth.Password = "yourPassword"

    auth.Company = "yourCompany"

    api.ApiAuthenticationValue = auth

 

    'Create Request

    Dim req as new GetItemsRequest()

 

    req.CurrencyCode = "usd"

    req.PriceType = 1

    req.WarehouseID = 1

 

    'Add ItemCodes

    Dim itemcodes As New List(Of String)()

    itemcodes.Add("1")

    itemcodes.Add("2")

 

    'Now attach the list to the request

    req.ItemCodes = itemcodes.ToArray()

    req.ReturnLongDetail = true

    req.RestrictToWarehouse = true

 

    'Send Request to Server and Get Response

    Dim res As GetItemsResponse = api.GetItems(req)

 

    'Now examine the results:

 

    For Each item As ItemResponse In res.Items

        Console.WriteLine("ItemCode: {0}", item.ItemCode)

        Console.WriteLine("Description: {0}", item.Description)

        Console.WriteLine("Price: {0}", item.Price)

        Console.WriteLine("Weight: {0}", item.Weight)

        Console.WriteLine("StockLevel: {0}", item.StockLevel)

        Console.WriteLine("AvailableStockLevel: {0}", item.AvailableStockLevel)

        Console.WriteLine("IsDynamicKitMaster: {0}", item.IsDynamicKitMaster)

 

        For Each kitMember As KitMemberResponse In item.KitMembers

            Console.WriteLine("Description: {0}", kitMember.Description)

 

            For Each kitMemberItem As KitMemberItemResponse In kitMember.KitMemberItems

                Console.WriteLine("ItemCode: {0}", kitMemberItem.ItemCode)

                Console.WriteLine("Description: {0}", kitMemberItem.Description)

                Console.WriteLine("InventoryStatus: {0}", kitMemberItem.InventoryStatus)

            Next

        Next

    Next

Catch ex As Exception

    Console.WriteLine("Error: " & ex.Message)

End Try

PHP

Note: PHP is not officially supported.

<?php

try

{

    //Setup the SoapClient and Authentication

    $api = new SoapClient("http://api.exigo.com/3.0/ExigoApi.asmx?WSDL");

    $ns = "http://api.exigo.com/";

    $auth = array()

    $auth["LoginName"] = new SoapVar("yourLoginName",XSD_STRING,null,null,null,$ns);

    $auth["Password"] = new SoapVar("yourPassword",XSD_STRING,null,null,null,$ns);

    $auth["Company"] = new SoapVar("yourCompany",XSD_STRING,null,null,null,$ns);

    $headerBody = new SoapVar($auth, SOAP_ENC_OBJECT);

    $header = new SoapHeader($ns, 'ApiAuthentication', $headerBody);

    $api->__setSoapHeaders(array($header));

 

    //Create Request

 

    $req->CurrencyCode = "usd";

    $req->PriceType = 1;

    $req->WarehouseID = 1;

 

    //Add ItemCodes

 

    $itemCode1->Chars = 1;

    $itemCode1->Length = 1;

 

    $itemCode2->Chars = 2;

    $itemCode2->Length = 2;

 

    //Now attach the list to the request

    req.ItemCodes = array(itemCode1,itemCode2);

    $req->ReturnLongDetail = 1;

    $req->RestrictToWarehouse = 1;

 

    //Send Request to Server and Get Response

    $res = $api.GetItems($req);

 

    //Now examine the results:

}

catch (SoapFault $ex)

{

    echo "Error: ", $ex->getMessage();

}

?>

Java

Note: Java is not officially supported.

try

{

    //Create Main API Context Object

    ExigoApi api = new ExigoApi();

 

    //Create Authentication Header

    ApiAuthentication auth = new ApiAuthentication();

    auth.setLoginName("yourLoginName");

    auth.setPassword("yourPassword");

    auth.setCompany("yourCompany");

    api.setApiAuthenticationValue(auth);

 

    //Create Request

    GetItemsRequest req = new GetItemsRequest();

 

    req.setCurrencyCode("usd");

    req.setPriceType(1);

    req.setWarehouseID(1);

 

    //Add ItemCodes

    ArrayOfSystem.String itemcodes = new ArrayOfSystem.String();

 

    String itemCode1 = new String();

    itemCode1.setChars(1);

    itemCode1.setLength(1);

    itemcodes.Add(itemCode1);

 

    String itemCode2 = new String();

    itemCode2.setChars(2);

    itemCode2.setLength(2);

    itemcodes.Add(itemCode2);

 

    //Now attach the list to the request

    req.setItemCodes(itemcodes);

    req.setReturnLongDetail(1);

    req.setRestrictToWarehouse(1);

 

    //Send Request to Server and Get Response

    GetItemsResponse res = api.getExigoApiSoap().getItems(req, auth);

 

    //Now examine the results:

}

catch (Exception ex)

{

    System.out.println("Error: " + ex.getMessage());

}

CSV

This method supports CSV output.

HTTP Get Request:
https://api.exigo.com/3.0/csv/?method=GetItems
&ApiLoginName=String
&ApiPassword=String
&ApiCompany=String
&CurrencyCode=String
&PriceType=Int32
&WarehouseID=Int32
&ItemCodes=String[]
&WebID=Object
&WebCategoryID=Object
&ReturnLongDetail=Boolean
&RestrictToWarehouse=Nullable`1
&LanguageID=Object
&ExcludeHideFromSearch=Nullable`1

Response Fields
ItemCode,Description,Price,Weight,CommissionableVolume,BusinessVolume,Other1Price,Other2Price,Other3Price,Other4Price,Other5Price,Other6Price,Other7Price,Other8Price,Other9Price,Other10Price,Category,CategoryID,TinyPicture,SmallPicture,LargePicture,ShortDetail,ShortDetail2,ShortDetail3,ShortDetail4,LongDetail,LongDetail2,LongDetail3,LongDetail4,InventoryStatus,StockLevel,AvailableStockLevel,MaxAllowedOnOrder,Field1,Field2,Field3,Field4,Field5,Field6,Field7,Field8,Field9,Field10,OtherCheck1,OtherCheck2,OtherCheck3,OtherCheck4,OtherCheck5,IsVirtual,AllowOnAutoOrder,IsGroupMaster,GroupDescription,GroupMembersDescription,ItemCode,MemberDescription,ItemDescription,InventoryStatus,StockLevel,AvailableStockLevel,IsDynamicKitMaster,HideFromSearch,Description,ItemCode,Description,InventoryStatus,TaxablePrice,ShippingPrice
String,String,Decimal,Decimal,Decimal,Decimal,Decimal,Decimal,Decimal,Decimal,Decimal,Decimal,Decimal,Decimal,Decimal,Decimal,String,Int32,String,String,String,String,String,String,String,String,String,String,String,InventoryStatusType,Int32,Int32,Int32,String,String,String,String,String,String,String,String,String,String,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,String,String,String,String,String,InventoryStatusType,Int32,Int32,Boolean,Boolean,String,String,String,InventoryStatusType,Decimal,Decimal