Exigo Web Services API v3.4.252

CreateAutoOrder

Create a new Recurring Order template for an existing customer or a new customer as part of a transaction. Client provides schedule, item codes, quantity, and shipping info. Server calculates and commits data, then returns pricing, tax, shipping and volume info. You can also update/overwrite an existing autoorder by using the OverwriteExistingAutoOrder and ExistingAutoOrderID properties.

Note: This request can participate in a transaction. Learn more about transactions.

Input Properties

CreateAutoOrderRequest
PropertyData TypeNotes
CustomerIDInt32Unique identifier for a customer entity.
Frequency FrequencyType
StartDateDateTime
StopDateDateTimeOptional. Optional. Leave null if there is no stop date.
CurrencyCode StringOptional.
WarehouseID Int32Unique location for orders.
ShipMethodID Int32
PriceType Int32Controls which price band to use.
PaymentType AutoOrderPaymentType
ProcessType AutoOrderProcessTypeOptional.
FirstNameStringOptional.
MiddleNameStringOptional.
LastNameStringOptional.
NameSuffixStringOptional.
CompanyStringOptional.
Address1StringOptional.
Address2StringOptional.
Address3StringOptional.
CityStringOptional.
State StringOptional.
ZipStringOptional.
Country StringOptional.
CountyStringOptional.
EmailStringOptional.
PhoneStringOptional.
NotesStringOptional.
Other11StringOptional. Optional.
Other12StringOptional. Optional.
Other13StringOptional. Optional.
Other14StringOptional. Optional.
Other15StringOptional. Optional.
Other16StringOptional. Optional.
Other17StringOptional. Optional.
Other18StringOptional. Optional.
Other19StringOptional. Optional.
Other20StringOptional. Optional.
DescriptionStringOptional. Optional description for this auto order.
OverwriteExistingAutoOrderBoolean
ExistingAutoOrderIDInt32
DetailsOrderDetailRequest[]
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

CreateAutoOrderResponse
PropertyData TypeNotes
AutoOrderIDInt32
DescriptionString
TotalDecimal
SubTotalDecimal
TaxTotalDecimal
ShippingTotalDecimal
DiscountTotalDecimal
WeightTotalDecimal
BusinessVolumeTotalDecimal
CommissionableVolumeTotalDecimal
Other1Total Decimal
Other2Total Decimal
Other3Total Decimal
Other4Total Decimal
Other5Total Decimal
Other6Total Decimal
Other7Total Decimal
Other8Total Decimal
Other9Total Decimal
Other10Total Decimal
ShippingTaxDecimal
OrderTaxDecimal
DetailsOrderDetailResponse[]
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
ShippingPriceEachDecimal

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/CreateAutoOrder"

<?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> <CreateAutoOrderRequest xmlns="http://api.exigo.com/"> <CustomerID>int</CustomerID> <Frequency>Weekly or BiWeekly or Monthly or BiMonthly or Quarterly or SemiYearly or Yearly or EveryFourWeeks or EverySixWeeks or EveryEightWeeks or EveryTwelveWeeks</Frequency> <StartDate>dateTime</StartDate> <StopDate>dateTime</StopDate> <CurrencyCode>string</CurrencyCode> <WarehouseID>int</WarehouseID> <ShipMethodID>int</ShipMethodID> <PriceType>int</PriceType> <PaymentType>PrimaryCreditCard or SecondaryCreditCard or CheckingAccount or WillSendPayment or BankDraft or PrimaryWalletAccount or SecondaryWalletAccount</PaymentType> <ProcessType>AlwaysProcess or Conditional</ProcessType> <FirstName>string</FirstName> <MiddleName>string</MiddleName> <LastName>string</LastName> <NameSuffix>string</NameSuffix> <Company>string</Company> <Address1>string</Address1> <Address2>string</Address2> <Address3>string</Address3> <City>string</City> <State>string</State> <Zip>string</Zip> <Country>string</Country> <County>string</County> <Email>string</Email> <Phone>string</Phone> <Notes>string</Notes> <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> <Description>string</Description> <OverwriteExistingAutoOrder>boolean</OverwriteExistingAutoOrder> <ExistingAutoOrderID>int</ExistingAutoOrderID> <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> </CreateAutoOrderRequest> </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> <CreateAutoOrderResult xmlns="http://api.exigo.com/"> <AutoOrderID>int</AutoOrderID> <Description>string</Description> <Total>decimal</Total> <SubTotal>decimal</SubTotal> <TaxTotal>decimal</TaxTotal> <ShippingTotal>decimal</ShippingTotal> <DiscountTotal>decimal</DiscountTotal> <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> <ShippingTax>decimal</ShippingTax> <OrderTax>decimal</OrderTax> <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> <ShippingPriceEach>decimal</ShippingPriceEach> </OrderDetailResponse> </Details> </CreateAutoOrderResult> </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

    CreateAutoOrderRequest req = new CreateAutoOrderRequest();

 

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

    req.Frequency = FrequencyType.Weekly;

    req.StartDate = DateTime.Today;

    req.StopDate = DateTime.Today;               //Optional. Leave null if there is no stop date.

    req.CurrencyCode = "usd";

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

    req.ShipMethodID = 1;

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

    req.PaymentType = AutoOrderPaymentType.PrimaryCreditCard;

    req.ProcessType = AutoOrderProcessType.AlwaysProcess;

    req.FirstName = "1";

    req.LastName = "1";

    req.Company = "1";

    req.Address1 = "1";

    req.Address2 = "1";

    req.Address3 = "1";

    req.City = "1";

    req.Zip = "1";

    req.County = "1";

    req.Email = "1";

    req.Phone = "1";

    req.Notes = "1";

    req.OverwriteExistingAutoOrder = true;

    req.ExistingAutoOrderID = 1;

 

    //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();

 

    //Send Request to Server and Get Response

    CreateAutoOrderResponse res = api.CreateAutoOrder(req);

 

    //Now examine the results:

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

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

    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("WeightTotal: {0}", res.WeightTotal);

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

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

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

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

 

    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);

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

    }

}

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

 

    req.CustomerID = 1

    req.Frequency = FrequencyType.Weekly

    req.StartDate = DateTime.Today

    req.StopDate = DateTime.Today

    req.CurrencyCode = "usd"

    req.WarehouseID = 1

    req.ShipMethodID = 1

    req.PriceType = 1

    req.PaymentType = AutoOrderPaymentType.PrimaryCreditCard

    req.ProcessType = AutoOrderProcessType.AlwaysProcess

    req.FirstName = "1"

    req.LastName = "1"

    req.Company = "1"

    req.Address1 = "1"

    req.Address2 = "1"

    req.Address3 = "1"

    req.City = "1"

    req.Zip = "1"

    req.County = "1"

    req.Email = "1"

    req.Phone = "1"

    req.Notes = "1"

    req.OverwriteExistingAutoOrder = true

    req.ExistingAutoOrderID = 1

 

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

 

    'Send Request to Server and Get Response

    Dim res As CreateAutoOrderResponse = api.CreateAutoOrder(req)

 

    'Now examine the results:

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

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

    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("WeightTotal: {0}", res.WeightTotal)

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

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

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

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

 

    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)

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

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

    $req->Frequency = 1;

    $req->StartDate = 1;

    $req->StopDate = 1;

    $req->CurrencyCode = "usd";

    $req->WarehouseID = 1;

    $req->ShipMethodID = 1;

    $req->PriceType = 1;

    $req->PaymentType = 1;

    $req->ProcessType = 1;

    $req->FirstName = "1";

    $req->LastName = "1";

    $req->Company = "1";

    $req->Address1 = "1";

    $req->Address2 = "1";

    $req->Address3 = "1";

    $req->City = "1";

    $req->Zip = "1";

    $req->County = "1";

    $req->Email = "1";

    $req->Phone = "1";

    $req->Notes = "1";

    $req->OverwriteExistingAutoOrder = 1;

    $req->ExistingAutoOrderID = 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);

 

    //Send Request to Server and Get Response

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

    CreateAutoOrderRequest req = new CreateAutoOrderRequest();

 

    req.setCustomerID(1);

    req.setFrequency(1);

    req.setStartDate(1);

    req.setStopDate(1);

    req.setCurrencyCode("usd");

    req.setWarehouseID(1);

    req.setShipMethodID(1);

    req.setPriceType(1);

    req.setPaymentType(1);

    req.setProcessType(1);

    req.setFirstName("1");

    req.setLastName("1");

    req.setCompany("1");

    req.setAddress1("1");

    req.setAddress2("1");

    req.setAddress3("1");

    req.setCity("1");

    req.setZip("1");

    req.setCounty("1");

    req.setEmail("1");

    req.setPhone("1");

    req.setNotes("1");

    req.setOverwriteExistingAutoOrder(1);

    req.setExistingAutoOrderID(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);

 

    //Send Request to Server and Get Response

    CreateAutoOrderResponse res = api.getExigoApiSoap().createAutoOrder(req, auth);

 

    //Now examine the results:

}

catch (Exception ex)

{

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

}

CSV

This method does not support csv output.