Exigo Web Services API v3.4.179

CalculateOrder

Calculates pricing, tax, shipping and volume info for a potential order. This is for calculation only and does not store a permanent record. Client provides address, itemcodes, and quantity. Server calculates and returns pricing, tax, shipping and volume info.

Input Properties

CalculateOrderRequest
PropertyData TypeNotes
CurrencyCode StringOptional.
WarehouseID Int32Unique location for orders.
ShipMethodID Int32
PriceType Int32Controls which price band to use.
Address1StringOptional.
Address2StringOptional.
Address3StringOptional.
CityStringOptional.
State StringOptional.
ZipStringOptional.
Country StringOptional.
CountyStringOptional.
CustomerIDInt32Unique identifier for a customer entity.
OrderType OrderType
TaxRateOverrideDecimalOptional. Optional.
ShippingAmountOverrideDecimalOptional. Optional.
ReturnOrderIDInt32Optional. Optional.
Other11StringOptional. Optional.
Other12StringOptional. Optional.
Other13StringOptional. Optional.
Other14StringOptional. Optional.
Other15StringOptional. Optional.
Other16StringOptional. Optional.
Other17StringOptional. Optional.
Other18StringOptional. Optional.
Other19StringOptional. Optional.
Other20StringOptional. Optional.
DetailsOrderDetailRequest[]
ReturnShipMethodsBoolean
PartyIDInt32Optional.
OrderDetailRequest
PropertyData TypeNotes
ItemCode StringOptional.
QuantityDecimal
ParentItemCodeStringOptional. Optional. Use only when building kits.
PriceEachOverrideDecimalOptional. Optional, overrides item setup.
TaxableEachOverrideDecimalOptional. Optional, overrides item setup.
ShippingPriceEachOverrideDecimalOptional. Optional, overrides item setup.
BusinessVolumeEachOverrideDecimalOptional. Optional, overrides item setup.
CommissionableVolumeEachOverrideDecimalOptional. Optional, overrides item setup.
Other1EachOverrideDecimalOptional. Optional, overrides item setup.
Other2EachOverrideDecimalOptional. Optional, overrides item setup.
Other3EachOverrideDecimalOptional. Optional, overrides item setup.
Other4EachOverrideDecimalOptional. Optional, overrides item setup.
Other5EachOverrideDecimalOptional. Optional, overrides item setup.
Other6EachOverrideDecimalOptional. Optional, overrides item setup.
Other7EachOverrideDecimalOptional. Optional, overrides item setup.
Other8EachOverrideDecimalOptional. Optional, overrides item setup.
Other9EachOverrideDecimalOptional. Optional, overrides item setup.
Other10EachOverrideDecimalOptional. Optional, overrides item setup.
DescriptionOverrideStringOptional. Optional, overrides item setup.
Reference1StringOptional. Optional, reference field.

Output Properties

CalculateOrderResponse
PropertyData TypeNotes
TotalDecimal
SubTotalDecimal
TaxTotalDecimal
ShippingTotalDecimal
DiscountTotalDecimal
DiscountPercentDecimal
WeightTotalDecimal
BusinessVolumeTotalDecimal
CommissionableVolumeTotalDecimal
Other1Total Decimal
Other2Total Decimal
Other3Total Decimal
Other4Total Decimal
Other5Total Decimal
Other6Total Decimal
Other7Total Decimal
Other8Total Decimal
Other9Total Decimal
Other10Total Decimal
Other11String
Other12String
Other13String
Other14String
Other15String
Other16String
Other17String
Other18String
Other19String
Other20String
ShippingTaxDecimal
OrderTaxDecimal
FedTaxTotalDecimal
StateTaxTotalDecimal
DetailsOrderDetailResponse[]
ShipMethodsShipMethodResponse[]
WarningsString
OrderDetailResponse
PropertyData TypeNotes
ItemCode String
DescriptionString
QuantityDecimal
PriceEachDecimal
PriceTotalDecimal
TaxDecimal
WeightEachDecimal
WeightDecimal
BusinessVolumeEachDecimal
BusinesVolumeDecimal
CommissionableVolumeEachDecimal
CommissionableVolumeDecimal
Other1EachDecimal
Other1 Decimal
Other2EachDecimal
Other2 Decimal
Other3EachDecimal
Other3 Decimal
Other4EachDecimal
Other4 Decimal
Other5EachDecimal
Other5 Decimal
Other6EachDecimal
Other6 Decimal
Other7EachDecimal
Other7 Decimal
Other8EachDecimal
Other8 Decimal
Other9EachDecimal
Other9 Decimal
Other10EachDecimal
Other10 Decimal
ParentItemCodeString
TaxableDecimal
FedTaxDecimal
StateTaxDecimal
CityTaxDecimal
CityLocalTaxDecimal
CountyTaxDecimal
CountyLocalTaxDecimal
ManualTaxDecimal
IsStateTaxOverrideBoolean
OrderLineInt32
Reference1String
ShipMethodResponse
PropertyData TypeNotes
ShipMethodID Int32
DescriptionString
ShippingAmountDecimal

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: "http://api.exigo.com/CalculateOrder"

<?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> </ApiAuthentication> </soap:Header> <soap:Body> <CalculateOrderRequest xmlns="http://api.exigo.com/"> <CurrencyCode>string</CurrencyCode> <WarehouseID>int</WarehouseID> <ShipMethodID>int</ShipMethodID> <PriceType>int</PriceType> <Address1>string</Address1> <Address2>string</Address2> <Address3>string</Address3> <City>string</City> <State>string</State> <Zip>string</Zip> <Country>string</Country> <County>string</County> <CustomerID>int</CustomerID> <OrderType>Default or CustomerService or ShoppingCart or WebWizard or AutoOrder or Import or BackOrder or ReplacementOrder or ReturnOrder or WebAutoOrder or TicketSystem or APIOrder or BackOrderParent or ChildOrder or Other1 or Other2 or Other3 or Other4</OrderType> <TaxRateOverride>decimal</TaxRateOverride> <ShippingAmountOverride>decimal</ShippingAmountOverride> <ReturnOrderID>int</ReturnOrderID> <Other11>string</Other11> <Other12>string</Other12> <Other13>string</Other13> <Other14>string</Other14> <Other15>string</Other15> <Other16>string</Other16> <Other17>string</Other17> <Other18>string</Other18> <Other19>string</Other19> <Other20>string</Other20> <Details> <OrderDetailRequest> <ItemCode>string</ItemCode> <Quantity>decimal</Quantity> <ParentItemCode>string</ParentItemCode> <PriceEachOverride>decimal</PriceEachOverride> <TaxableEachOverride>decimal</TaxableEachOverride> <ShippingPriceEachOverride>decimal</ShippingPriceEachOverride> <BusinessVolumeEachOverride>decimal</BusinessVolumeEachOverride> <CommissionableVolumeEachOverride>decimal</CommissionableVolumeEachOverride> <Other1EachOverride>decimal</Other1EachOverride> <Other2EachOverride>decimal</Other2EachOverride> <Other3EachOverride>decimal</Other3EachOverride> <Other4EachOverride>decimal</Other4EachOverride> <Other5EachOverride>decimal</Other5EachOverride> <Other6EachOverride>decimal</Other6EachOverride> <Other7EachOverride>decimal</Other7EachOverride> <Other8EachOverride>decimal</Other8EachOverride> <Other9EachOverride>decimal</Other9EachOverride> <Other10EachOverride>decimal</Other10EachOverride> <DescriptionOverride>string</DescriptionOverride> <Reference1>string</Reference1> </OrderDetailRequest> </Details> <ReturnShipMethods>boolean</ReturnShipMethods> <PartyID>int</PartyID> </CalculateOrderRequest> </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> <CalculateOrderResult xmlns="http://api.exigo.com/"> <Total>decimal</Total> <SubTotal>decimal</SubTotal> <TaxTotal>decimal</TaxTotal> <ShippingTotal>decimal</ShippingTotal> <DiscountTotal>decimal</DiscountTotal> <DiscountPercent>decimal</DiscountPercent> <WeightTotal>decimal</WeightTotal> <BusinessVolumeTotal>decimal</BusinessVolumeTotal> <CommissionableVolumeTotal>decimal</CommissionableVolumeTotal> <Other1Total>decimal</Other1Total> <Other2Total>decimal</Other2Total> <Other3Total>decimal</Other3Total> <Other4Total>decimal</Other4Total> <Other5Total>decimal</Other5Total> <Other6Total>decimal</Other6Total> <Other7Total>decimal</Other7Total> <Other8Total>decimal</Other8Total> <Other9Total>decimal</Other9Total> <Other10Total>decimal</Other10Total> <Other11>string</Other11> <Other12>string</Other12> <Other13>string</Other13> <Other14>string</Other14> <Other15>string</Other15> <Other16>string</Other16> <Other17>string</Other17> <Other18>string</Other18> <Other19>string</Other19> <Other20>string</Other20> <ShippingTax>decimal</ShippingTax> <OrderTax>decimal</OrderTax> <FedTaxTotal>decimal</FedTaxTotal> <StateTaxTotal>decimal</StateTaxTotal> <Details> <OrderDetailResponse> <ItemCode>string</ItemCode> <Description>string</Description> <Quantity>decimal</Quantity> <PriceEach>decimal</PriceEach> <PriceTotal>decimal</PriceTotal> <Tax>decimal</Tax> <WeightEach>decimal</WeightEach> <Weight>decimal</Weight> <BusinessVolumeEach>decimal</BusinessVolumeEach> <BusinesVolume>decimal</BusinesVolume> <CommissionableVolumeEach>decimal</CommissionableVolumeEach> <CommissionableVolume>decimal</CommissionableVolume> <Other1Each>decimal</Other1Each> <Other1>decimal</Other1> <Other2Each>decimal</Other2Each> <Other2>decimal</Other2> <Other3Each>decimal</Other3Each> <Other3>decimal</Other3> <Other4Each>decimal</Other4Each> <Other4>decimal</Other4> <Other5Each>decimal</Other5Each> <Other5>decimal</Other5> <Other6Each>decimal</Other6Each> <Other6>decimal</Other6> <Other7Each>decimal</Other7Each> <Other7>decimal</Other7> <Other8Each>decimal</Other8Each> <Other8>decimal</Other8> <Other9Each>decimal</Other9Each> <Other9>decimal</Other9> <Other10Each>decimal</Other10Each> <Other10>decimal</Other10> <ParentItemCode>string</ParentItemCode> <Taxable>decimal</Taxable> <FedTax>decimal</FedTax> <StateTax>decimal</StateTax> <CityTax>decimal</CityTax> <CityLocalTax>decimal</CityLocalTax> <CountyTax>decimal</CountyTax> <CountyLocalTax>decimal</CountyLocalTax> <ManualTax>decimal</ManualTax> <IsStateTaxOverride>boolean</IsStateTaxOverride> <OrderLine>int</OrderLine> <Reference1>string</Reference1> </OrderDetailResponse> </Details> <ShipMethods> <ShipMethodResponse> <ShipMethodID>int</ShipMethodID> <Description>string</Description> <ShippingAmount>decimal</ShippingAmount> </ShipMethodResponse> </ShipMethods> <Warnings> <string>string</string> </Warnings> </CalculateOrderResult> </soap:Body> </soap:Envelope>

C#

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

    CalculateOrderRequest req = new CalculateOrderRequest();

 

    req.CurrencyCode = "usd";

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

    req.ShipMethodID = 1;

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

    req.Address1 = "1";

    req.Address2 = "1";

    req.Address3 = "1";

    req.City = "1";

    req.Zip = "1";

    req.County = "1";

    req.CustomerID = 1;             //Unique identifier for a customer entity.

    req.OrderType = OrderType.Default;

 

    //Add Details

    List<OrderDetailRequest> details = new List<OrderDetailRequest>();

 

    OrderDetailRequest detail1 = new OrderDetailRequest();

    detail1.ItemCode = "1";

    detail1.Quantity = 1;

    details.Add(detail1);

 

    OrderDetailRequest detail2 = new OrderDetailRequest();

    detail2.ItemCode = "2";

    detail2.Quantity = 2;

    details.Add(detail2);

 

    //Now attach the list to the request

    req.Details = details.ToArray();

    req.ReturnShipMethods = true;

    req.PartyID = 1;

 

    //Send Request to Server and Get Response

    CalculateOrderResponse res = api.CalculateOrder(req);

 

    //Now examine the results:

    Console.WriteLine("Total: {0}", res.Total);

    Console.WriteLine("SubTotal: {0}", res.SubTotal);

    Console.WriteLine("TaxTotal: {0}", res.TaxTotal);

    Console.WriteLine("ShippingTotal: {0}", res.ShippingTotal);

    Console.WriteLine("DiscountTotal: {0}", res.DiscountTotal);

    Console.WriteLine("DiscountPercent: {0}", res.DiscountPercent);

    Console.WriteLine("WeightTotal: {0}", res.WeightTotal);

    Console.WriteLine("BusinessVolumeTotal: {0}", res.BusinessVolumeTotal);

    Console.WriteLine("CommissionableVolumeTotal: {0}", res.CommissionableVolumeTotal);

    Console.WriteLine("Other11: {0}", res.Other11);

    Console.WriteLine("Other12: {0}", res.Other12);

    Console.WriteLine("Other13: {0}", res.Other13);

    Console.WriteLine("Other14: {0}", res.Other14);

    Console.WriteLine("Other15: {0}", res.Other15);

    Console.WriteLine("Other16: {0}", res.Other16);

    Console.WriteLine("Other17: {0}", res.Other17);

    Console.WriteLine("Other18: {0}", res.Other18);

    Console.WriteLine("Other19: {0}", res.Other19);

    Console.WriteLine("Other20: {0}", res.Other20);

    Console.WriteLine("ShippingTax: {0}", res.ShippingTax);

    Console.WriteLine("OrderTax: {0}", res.OrderTax);

    Console.WriteLine("FedTaxTotal: {0}", res.FedTaxTotal);

    Console.WriteLine("StateTaxTotal: {0}", res.StateTaxTotal);

 

    foreach (OrderDetailResponse orderDetail in res.Details)

    {

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

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

        Console.WriteLine("Quantity: {0}", orderDetail.Quantity);

        Console.WriteLine("OrderLine: {0}", orderDetail.OrderLine);

        Console.WriteLine("Reference1: {0}", orderDetail.Reference1);

    }

 

    foreach (ShipMethodResponse shipMethod in res.ShipMethods)

    {

        Console.WriteLine("ShipMethodID: {0}", shipMethod.ShipMethodID);

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

        Console.WriteLine("ShippingAmount: {0}", shipMethod.ShippingAmount);

    }

    Console.WriteLine("Warnings: {0}", res.Warnings);

}

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 CalculateOrderRequest()

 

    req.CurrencyCode = "usd"

    req.WarehouseID = 1

    req.ShipMethodID = 1

    req.PriceType = 1

    req.Address1 = "1"

    req.Address2 = "1"

    req.Address3 = "1"

    req.City = "1"

    req.Zip = "1"

    req.County = "1"

    req.CustomerID = 1

    req.OrderType = OrderType.Default

 

    'Add Details

    Dim details As New List(Of OrderDetailRequest)()

 

    Dim detail1 as new OrderDetailRequest()

    detail1.ItemCode = "1"

    detail1.Quantity = 1

    details.Add(detail1)

 

    Dim detail2 as new OrderDetailRequest()

    detail2.ItemCode = "2"

    detail2.Quantity = 2

    details.Add(detail2)

 

    'Now attach the list to the request

    req.Details = details.ToArray()

    req.ReturnShipMethods = true

    req.PartyID = 1

 

    'Send Request to Server and Get Response

    Dim res As CalculateOrderResponse = api.CalculateOrder(req)

 

    'Now examine the results:

    Console.WriteLine("Total: {0}", res.Total)

    Console.WriteLine("SubTotal: {0}", res.SubTotal)

    Console.WriteLine("TaxTotal: {0}", res.TaxTotal)

    Console.WriteLine("ShippingTotal: {0}", res.ShippingTotal)

    Console.WriteLine("DiscountTotal: {0}", res.DiscountTotal)

    Console.WriteLine("DiscountPercent: {0}", res.DiscountPercent)

    Console.WriteLine("WeightTotal: {0}", res.WeightTotal)

    Console.WriteLine("BusinessVolumeTotal: {0}", res.BusinessVolumeTotal)

    Console.WriteLine("CommissionableVolumeTotal: {0}", res.CommissionableVolumeTotal)

    Console.WriteLine("Other11: {0}", res.Other11)

    Console.WriteLine("Other12: {0}", res.Other12)

    Console.WriteLine("Other13: {0}", res.Other13)

    Console.WriteLine("Other14: {0}", res.Other14)

    Console.WriteLine("Other15: {0}", res.Other15)

    Console.WriteLine("Other16: {0}", res.Other16)

    Console.WriteLine("Other17: {0}", res.Other17)

    Console.WriteLine("Other18: {0}", res.Other18)

    Console.WriteLine("Other19: {0}", res.Other19)

    Console.WriteLine("Other20: {0}", res.Other20)

    Console.WriteLine("ShippingTax: {0}", res.ShippingTax)

    Console.WriteLine("OrderTax: {0}", res.OrderTax)

    Console.WriteLine("FedTaxTotal: {0}", res.FedTaxTotal)

    Console.WriteLine("StateTaxTotal: {0}", res.StateTaxTotal)

 

    For Each orderDetail As OrderDetailResponse In res.Details

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

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

        Console.WriteLine("Quantity: {0}", orderDetail.Quantity)

        Console.WriteLine("OrderLine: {0}", orderDetail.OrderLine)

        Console.WriteLine("Reference1: {0}", orderDetail.Reference1)

    Next

 

    For Each shipMethod As ShipMethodResponse In res.ShipMethods

        Console.WriteLine("ShipMethodID: {0}", shipMethod.ShipMethodID)

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

        Console.WriteLine("ShippingAmount: {0}", shipMethod.ShippingAmount)

    Next

    Console.WriteLine("Warnings: {0}", res.Warnings)

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->WarehouseID = 1;

    $req->ShipMethodID = 1;

    $req->PriceType = 1;

    $req->Address1 = "1";

    $req->Address2 = "1";

    $req->Address3 = "1";

    $req->City = "1";

    $req->Zip = "1";

    $req->County = "1";

    $req->CustomerID = 1;

    $req->OrderType = 1;

 

    //Add Details

 

    $detail1->ItemCode = "1";

    $detail1->Quantity = 1;

 

    $detail2->ItemCode = "2";

    $detail2->Quantity = 2;

 

    //Now attach the list to the request

    req.Details = array(detail1,detail2);

    $req->ReturnShipMethods = 1;

    $req->PartyID = 1;

 

    //Send Request to Server and Get Response

    $res = $api.CalculateOrder($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

    CalculateOrderRequest req = new CalculateOrderRequest();

 

    req.setCurrencyCode("usd");

    req.setWarehouseID(1);

    req.setShipMethodID(1);

    req.setPriceType(1);

    req.setAddress1("1");

    req.setAddress2("1");

    req.setAddress3("1");

    req.setCity("1");

    req.setZip("1");

    req.setCounty("1");

    req.setCustomerID(1);

    req.setOrderType(1);

 

    //Add Details

    ArrayOfOrderDetailRequest details = new ArrayOfOrderDetailRequest();

 

    OrderDetailRequest detail1 = new OrderDetailRequest();

    detail1.setItemCode("1");

    detail1.setQuantity(1);

    details.Add(detail1);

 

    OrderDetailRequest detail2 = new OrderDetailRequest();

    detail2.setItemCode("2");

    detail2.setQuantity(2);

    details.Add(detail2);

 

    //Now attach the list to the request

    req.setDetails(details);

    req.setReturnShipMethods(1);

    req.setPartyID(1);

 

    //Send Request to Server and Get Response

    CalculateOrderResponse res = api.getExigoApiSoap().calculateOrder(req, auth);

 

    //Now examine the results:

}

catch (Exception ex)

{

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

}

CSV

This method does not support csv output.