OMS DOCUMENTATIONRESOURCE CENTER

These guides provide examples for many tasks that a developer will need to be familiar with during implementation.

KIBO OMS DEVELOPMENT

Documentation

Immediate Order Processing

The Immediate Order Processing API can gather consumers’ shopping cart, address, and payment information on the client’s website without linking to an external URL (an Online Store). Use this API to:

  • Implement or keep shopping cart solution on the client server
  • Transmit order data to OMS for payment and order processing
  • Design the appearance of the shopping cart and ordering process
  • Keep track of consumer orders in the client database
  • Provide a single user experience for consumers

Getting Started

System Requirements

To use the Immediate Order Processing API, there must be a server with Internet access that the shopping cart software can gather the order data.

Writing the Application

The client needs to write the Immediate Create Order application. This application gathers order data from the shopping cart and generates an XML package. It then uses a Remote Procedure Call (RPC) to pass the package to the OMS server. When the order data enters the OMS system, it returns a success response with an OMS Order Number. The order is then processed in OMS.

The application can be written in any programming or scripting language that can handle an RPC, including PHP, ASP, Cold Fusion, JSP, JAVA, C, and so on.

Process Flow

The process for the OMS Immediate Order Processing API XML-RPC is summarized here:

  1. Consumer product data is gathered in the manufacturer side shopping cart.
    • Part numbers, UPCs, product name, retail prices, actual prices, margins, quantities, and other product data must be in the cart.
    • Consumer shipping and billing address information is collected securely on the manufacturer’s site.
    • Consumer payment information, including gift cards and promotions, is also collected.
  2. The shopping cart constructs a single XML package with this information.
  3. The XML package is transmitted to OMS using the prepared RPC.
  4. A response is generated from the RPC.
    • A success response provides an order number.
    • An error response provides specific information about the error.
  5. The order number and an order summary should be presented to the consumer. An order summary email with details such as billing and shipping information should be sent to the consumer.
  6. The consumer order process is complete and the order is sent to the retailer network for fulfillment.

Programming the Immediate Order Processing API

Server and RPC Information

  1. Create an XML-RPC message that calls immediate.create_order and passes an array of the parameters listed in the table below that defines the package elements, below.
  2. Create an XML-RPC client that connects to the following server:
  • Server file name: /xmlAdvServer.php
  • Server address: xml.shopatron.com
  • Server port: 80 (may use HTTPS port: default is 443)

Applying Tax Rules

Optionally, you can include tax rules to specify how tax is applied to a particular line item in an order. Tax rules apply tax to the line item, based on who fills the order and where they fill it.
For each line item, the tax rule can be:

  • Merchant specific – If the specified merchant fills the order, the associated tax amount is applied.
  • Fulfillment partner specific – If the specified fulfillment partner (or retailer) fills the order, the associated tax amount is applied, regardless of location.
  • Fulfillment location specific – If a fulfillment partner fills the order from the specified location, the associated tax amount is applied.
  • Catch all – These rules apply if the order is filled by any merchant, fulfillment partner, or fulfillment location that is not covered by other specified rules.

Required and Optional Parameters

There are a number of possible parameters:

ElementRequiredParent ElementTypeOccursDescription
UserNameYesNonestring1/orderA valid, active OMS username with correct permissions.
PasswordYesNonestring1/orderThe password for the user account.
ManufacturerIDYesNoneint1/orderOMS manufacturer ID.
CatalogIDYesNoneint1/orderThe OMS-assigned Catalog ID.
Order BlockYesNonestruct1/orderMain body of XML package. Acts only as container of other structs.
PaymentInfoYesOrder Blockstructn/orderInclude one Payment Info structure for each method of payment.
PayTypeYesPaymentInfostructn/structPayment type (credit card) used for order.
Account1YesPayTypestring1/structCredit card number.
Account2YesPayTypestring1/structCredit card CCV number.
Account3YesPayTypestring1/structCredit card expiration date (MM_YYYY).
MaxAmountOptionalPayTypedouble1/structWhen multiple PaymentInfo structures are included, this parameter identifies the maximum amount that can be charged to this one. If there is only one PayType, no MaxAmount may be specified.
TxnID (Transaction ID)OptionalPayTypestring1/structWhen a merchant gift card is used, this is the merchant’s authorization code.
FeePercentageOptionalPPayTypedouble1/structWhen a merchant gift card is used, this parameter indicates the percentage of the gift card sale that will be transferred to Kibo.
BillingAddressYesPayTypestruct1/structBilling address information.
PhoneYesBillingAddressstring1/structPhone number associated with the billing address.
Address1YesBillingAddressstring1/structFirst line of billing address. The maximum length is 50.
Address2OptionalBillingAddressstring1/structSecond line of billing address. The maximum length is 50.
Address3OptionalBillingAddressstring1/structThird line of billing address. The maximum length is 50.
CityYesBillingAddressstring1/structCity for billing address.
StateYesBillingAddressstring1/structState for billing address. This is a two-digit state code.
ZipYesBillingAddressstring1/structZip or postal code for billing address. This is a five-digit code.
CountryYesBillingAddressstring1/structTwo-character country code for the billing address.
ContactInfoYesOrder Blockstruct1/orderContact information for the consumer who placed the order.
EmailYesContactInfostring1/structConsumer’s email address.
PhoneYesContactInfostring1/structConsumer’s phone number.
FirstNameYesContactInfostring1/structConsumer’s first name.
LastNameYesContactInfostring1/structConsumer’s last name.
OrderItemsYesOrder Blockstructn/orderInformation about an item in the order.
CartItemIDYesOrderItemsint1/structThe cart ID of the item.
CustomItemDataYesOrderItemsstructn/orderThe manner in which Line Number IDs are sent to be used later in the return transition. The name value pairs can be any data. Escape any special characters (i.e. ampersands “&”).
ManufacturerPartNumberYesOrderItemsstring1/structThe merchant’s part number for the item. The maximum length is 47.
UPCOptionalOrderItemsstring1/structThe item’s UPC code.
NameYesOrderItemsstring1/structThe product name of the item.
OptionsOptionalOrderItemsstructn/structInformation about an option for the item.
OptionsTextYes, if Options is includedOptionsstring1/structA text string that identifies options for the item. The maximum length is 400.
RetailPriceYesOrderItemsdouble1/structThe retail price of the item.
ActualPriceYesOrderItemsdouble1/structThe actual price that the consumer is paying for the item.
ADMYesOrderItemsdouble1/structAverage dealer margin for the item (for example, .5 for 50%).
QuantityYesOrderItemsint1/structQuantity for the item.
ShippingYesOrderItemsdouble1/structShipping charge for the item.
TaxRulesOptionalOrderItemsstruct1/structTax rules to be applied to the item.
TaxYes, if TaxRules is includedTaxRulesdouble1/structTax amount for the item.
MfgIdOptionalTaxRulesint1/structThe fulfilling merchant’s OMS ID.
RetailerIdOptionalTaxRulesint1/structRetailer ID for the fulfiller, as assigned by OMS.
ForcedOverrideOptionalTaxRulesint1/struct0-No; 1-Yes. If 0, tax rules are always applied. If set to false (default), tax rules do not apply if tax would not apply otherwise.
ShippingAddressYesOrder Blockstruct1/orderShipping information.
Address1YesShippingAddressstring1/structFirst line of the shipping address.
Address2OptionalShippingAddressstring1/structSecond line of the shipping address.
Address3OptionalShippingAddressstring1/structThird line of the shipping address.
CityYesShippingAddressstring1/structCity for the shipping address.
StateYesShippingAddressstring1/structState for the shipping address.
ZipYesShippingAddressstring1/structZip or postal code for the shipping address.
CountryYesShippingAddressstring1/structTwo-character country code for the shipping address.
ShippingMethodOptionalOrder Blockstruct1/orderShipping method information for the order.
ShipTypeOptionalShippingMethodstring1/structThe shipping type for the order. Acceptable values are: standard (for standard shipping), 1day (for 1-day guaranteed next-day delivery), 2day (for 2-day guaranteed delivery), 3day (for 3-day guaranteed delivery), ispu (for in-store pickup or Local Search First), sts (for Ship-to-Store), and sts+ (for shopper’s choice). Note: These values are case-sensitive.
ExternalIDOptionalShipping Methodstring1/structThis is the unique store ID, typically numeric, to identify the store that an item will be picked up at.
FailoverChoiceYes, for ShipType sts+. N/A for others.Shipping Methodstring0-1 / structSecondary shipment type requested by consumer. Acceptable values are: standard (fails over to Standard fulfillment), sts (fails over to Ship-to-Store), and stsx (fails over to Canceled).
LookupZipYes, for ispu, sts, sts+ onlyShipping Methodstring1/structThe ZIP code of the shipping location.
SMSNumberOptionalShipping Methodstring1/structThe consumer’s phone number for the pickup notification.
RetailerIDYes, for ispu, sts, sts+ onlyShipping Methodint1/structThe OMS RetailerID of the fulfillment partner who is fulfilling this order.
RetailerLocationIDYes, for ispu, sts, sts+ onlyShipping Methodint1/structThe OMS Retailer LocationID of the fulfillment partner who is fulfilling this order. If this is the default location, use a blank string.
GiftInfoOptionalOrder Blockstruct1/orderInformation for gift orders.
RecipientNameYes, if GiftInfo is includedGiftInfostring1/structName of the gift recipient.
GiftMessageYes, if GiftInfo is includedGiftInfostring1/structMessage for the gift recipient. The maximum length is 1000.
OrderCommentOptionalOrder Blockstring1/orderComment entered by the consumer when the order was placed.
CustomerIPYesOrder Blockstring1/orderIP address from which the order was placed.
ExOrderIDYesOrder Blockstring1/orderExternal Order ID, from your system.
OptInRetailerYesOrder Blockint1/orderIndicates if the retailer can use the email address from this order for marketing purposes: 0-No; 1-Yes
LandingCodeOptionalOrder Blockstring1/orderThe source code for this order, as stored in the OMS database.
isTestOrderOptionalOrder Blockint1/orderIndicates if the order is intended as a test order. Will bypass credit card authorization. 1-Test order; 0-“Real” order
CustomDataOptionalOrder Blockstruct1/orderA container for optional information like Loyalty Program ID.
LanguageIDOptionalOrder Blockint1/orderThe language for the order. The following values are accepted: 1 (US English), 2 (UK English), 5 (DE German), and 7 (FR French).
CurrencyIDOptionalOrder Blockint1/orderThe currency type for the order. The following currency types are supported: 1 (US Dollar), 2 (Canadian Dollar), 3 (British Pound), 5 (German Euro), 6 (French Euro), 7 (Italian Euro), 8 (Spanish Euro), 9 (British Euro), and 10 (Dutch euro).

Example Requests

This first example is a minimal XML-RPC message.

<?xml version="1.0"?>
<methodCall>
  <methodName>immediate.create_order</methodName>
  <params>
    <param>
      <value>
        <string>xml_user</string>
      </value>
    </param>
    <param>
      <value>
        <string>a373f71ac0cbad09390e01b27a0ba726</string>
      </value>
    </param>
    <param>
      <value>
        <int>490</int>
      </value>
    </param>
    <param>
      <value>
        <int>3</int>
      </value>
    </param>
    <param>
      <value>
        <struct>
          <member>
            <name>PaymentInfo</name>
            <value>
              <struct>
                <member>
                  <name>1</name>
                  <value>
                    <struct>
                      <member>
                        <name>PayType</name>
                        <value>
                          <string>CC</string>
                        </value>
                      </member>
                      <member>
                        <name>Account1</name>
                        <value>
                          <string>9999999999999999</string>
                        </value>
                      </member>
                      <member>
                        <name>Account2</name>
                        <value>
                          <string>123</string>
                        </value>
                      </member>
                      <member>
                        <name>Account3</name>
                        <value>
                          <string>2009-08</string>
                        </value>
                      </member>
                      <member>
                        <name>BillingAddress</name>
                        <value>
                          <struct>
                            <member>
                              <name>Phone</name>
                              <value>
                                <string>(805)547-8369</string>
                              </value>
                            </member>
                            <member>
                              <name>Address1</name>
                              <value>
                                <string>2074 Parker St.</string>
                              </value>
                            </member>
                            <member>
                              <name>City</name>
                              <value>
                                <string>San Luis Obispo</string >
                              </value>
                            </member>
                            <member>
                              <name>State</name>
                              <value>
                                <string>CA</string>
                              </value>
                            </member>
                            <member>
                              <name>Zip</name>
                              <value>
                                <string>93401</string>
                              </value>
                            </member>
                            <member>
                              <name>Country</name>
                              <value>
                                <string>US</string>
                              </value>
                            </member>
                          </struct>
                        </value>
                      </member>
                    </struct>
                  </value>
                </member>
              </struct>
            </value>
          </member>
          <member>
            <name>ContactInfo</name>
            <value>
              <struct>
                <member>
                  <name>Email</name>
                  <value>
                    <string>testuser@kibocommerce.com</string>
                  </value>
                </member>
                <member>
                  <name>Phone</name>
                  <value>
                    <string>(555) 555-1234</string>
                  </value>
                </member>
                <member>
                  <name>Firstname</name>
                  <value>
                    <string>Tom</string>
                  </value>
                </member>
                <member>
                  <name>Lastname</name>
                  <value>
                    <string>Jones</string>
                  </value>
                </member>
              </struct>
            </value>
          </member>
          <member>
            <name>OrderItems</name>
            <value>
              <struct>
                <member>
                  <name>0</name>
                  <value>
                    <struct>
                      <member>
                        <name>CartItemID</name>
                        <value>
                          <int>1544295</int>
                        </value>
                      </member>
                      <member>
                        <name>CustomItemData</name>
                        <value>
                           <struct>
                              <member>
                                 <name>custom name here</name>
                                 <value>
                                    <string>custom value here</string>
                                 </value>
                              </member>
                           </struct>
                        </value>
                      </member>
                      <member>
                        <name>ManufacturerPartNumber</name>
                        <value>
                          <string>40600921807</string>
                        </value>
                      </member>
                      <member>
                        <name>UPC</name>
                        <value>
                          <string>642331772463</string>
                        </value>
                      </member>
                      <member>
                        <name>Name</name>
                        <value>
                          <string>RH XL 5000 Set Mens Driver,3W,5W,4H-5H,6-9iron,PW,SW,Putter,Stand Bag, Top-Flite Shaft Regular  Std(Black)</string>
                        </value>
                      </member>
                      <member>
                        <name>RetailPrice</name>
                        <value>
                          <double>299</double>
                        </value>
                      </member>
                      <member>
                        <name>ActualPrice</name>
                        <value>
                          <double>299</double>
                        </value>
                      </member>
                      <member>
                        <name>ADM</name>
                        <value>
                          <double>.5</double>
                        </value>
                      </member>
                      <member>
                        <name>Quantity</name>
                        <value>
                          <int>1<int>
                            <value>
                          </member>
                            <member>
                              <name>Shipping</name>
                              <value>
                                <double>8.90</double>
                              </value>
                            </member>
                            <member>
                              <name>TaxRules</name>
                              <value>
                                <struct>
                                  <member>
                                    <name>0</name>
                                    <value>
                                      <struct>
                                        <member>
                                          <name>Tax</name>
                                          <value>
                                            <double>5.32</double>
                                          </value>
                                        </member>
                                        <member>
                                          <name>MfgId</name>
                                          <value>
                                            <int> 138</int>
                                          </value>
                                        </member>
                                      </struct>
                                    </value>
                                  </member>
                                  <member>
                                    <name>1</name>
                                    <value>
                                      <struct>
                                        <member>
                                          <name>Tax</name>
                                          <value>
                                            <double>10</double>
                                          </value>
                                        </member>
                                        <member>
                                          <name>RetailerId</name>
                                          <value>
                                            <int>2687</int>
                                          </value>
                                        </member>
                                        <member>
                                          <name>RetailerLocationId</name>
                                          <value>
                                            <int>0</int>
                                          </value>
                                        </member>
                                        <member>
                                          <name>ForcedOverride</name>
                                          <value>
                                            <int>0</int>
                                          </value>
                                        </member>
                                    </struct>
                                    </value>
                                  </member>
                                  <member>
                                    <name>2</name>
                                    <value>
                                      <struct>
                                        <member>
                                          <name>Tax</name>
                                          <value>
                                            <double>5.362</double>
                                          </value>
                                        </member>
                                      </struct>
                                    </value>
                                  </member>
                                </struct>
                              </value>
                            </member>
                          </struct>
                        </value>
                      </member>
                    </struct>
                  </value>
                </member>
              </struct>
            </value>
          </member>
          <member>
            <name>ShippingAddress</name>
            <value>
              <struct>
                <member>
                  <name>Phone</name>
                  <value>
                    <string>(805)547-8368</string>
                  </value>
                </member>
                <member>
                  <name>Address1</name>
                  <value>
                    <string>2074 Parker Street</string>
                  </value>
                </member>
                <member>
                  <name>City</name>
                  <value>
                    <string>San Luis Obispo</string>
                  </value>
                </member>
                <member>
                  <name>State</name>
                  <value>
                    <string>CA</string>
                  </value>
                </member>
                <member>
                  <name>Zip</name>
                  <value>
                    <string>93401</string>
                  </value>
                </member>
                <member>
                  <name>Country</name>
                  <value>
                    <string>US</string>
                  </value>
                </member>
              </struct>
            </value>
          </member>
          <member>
            <name>ShippingMethod</name>
            <value>
              <struct>
                <member>
                  <name>ShipType</name>
                  <value>
                    <string>sts+</string>
                  </value>
                </member>
                <member>
                  <name>FailoverChoice</name>
                  <value>
                    <string>sts</string>
                  </value>
                </member>
                <member>
                  <name>LookupZip</name>
                  <value>
                    <int>93401</int>
                  </value>
                </member>
                <member>
                  <name>SMSNumber</name>
                  <value>
                    <int>8054419989</int>
                  </value>
                </member>
                <member>
                  <name>RetailerID</name>
                  <value>
                    <int>2687</int>
                  </value>
                </member>
                <member>
                  <name>RetailerLocationID</name>
                  <value>
                    <int>8006</int>
                  </value>
                </member>
              </struct>
            </value>
          </member>
          <member>
            <name>CustomerIP</name>
            <value>
              <string>11.123.456.789</string>
            </value>
          </member>
          <member>
            <name>ExOrderID</name>
            <value>
              <string>9876543</string>
            </value>
          </member>
          <member>
            <name>OptInRetailer</name>
            <value>
              <int>0</int>
            </value>
          </member>
          <member>
            <name>CurrencyID</name>
            <value>
              <int>1</int>
            </value>
          </member>
          <member>
            <name>LanguageID</name>
            <value>
              <int>1</int>
            </value>
          </member>
        </struct>
      </value>
    </param>
  </params>
</methodCall>

This request contains all of the required parameters.

<?xml version="1.0"?>
<methodCall>
  <methodName>immediate.create_order</methodName>
  <params>
    <param>
      <value>
        <string>xml_user</string>
      </value>
    </param>
    <param>
      <value>
        <string>a373f71ac0cad09390e01b27a0ba726</string>
      </value>
    </param>
    <param>
      <value>
        <int>490</int>
      </value>
    </param>
    <param>
      <value>
        <int>3</int>
      </value>
    </param>
    <param>
      <value>
        <struct>
          <member>
            <name>PaymentInfo</name>
            <value>
              <struct>
                <member>
                  <name>3</name>
                  <value>
                    <struct>
                      <member>
                        <name>PayType</name>
                        <value>
                          <string>CC</string>
                        </value>
                      </member>
                      <member>
                        <name>Account1</name>
                        <value>
                          <string>9999999999999999999 </string>
                        </value>
                      </member>
                      <member>
                        <name>TxnId</name>
                        <value>
                          <string>123456</string>
                        </value>
                      </member>                        
                      <member>
                      <name>BillingAddress</name>
                        <value>
                          <struct>
                            <member>
                              <name>Phone</name>
                              <value>
                                <string>(805)547-8369 </string>
                              </value>
                            </member>
                            <member>
                              <name>Address1</name>
                              <value>
                                <string>2074 Parker Street</string>
                              </value>
                            </member>
                            <member>
                              <name>Address2</name>
                              <value>
                                <string>Suite 100</string>
                              </value>
                            </member>
                            <member>
                              <name>Address3</name>
                              <value>
                                <string></string>
                              </value>
                            </member>
                            <member>
                              <name>City</name>
                              <value>
                                <string>San Luis Obispo</string>
                              </value>
                            </member>
                            <member>
                              <name>State</name>
                              <value>
                                <string>CA </string>
                              </value>
                            </member>
                            <member>
                              <name>Zip</name>
                              <value>
                                <string>93401</string>
                              </value>
                            </member>
                            <member>
                              <name>Country</name>
                              <value>
                                <string>US</string>
                              </value>
                            </member>
                          </struct>
                        </value>
                      </member>
                      <member>
                        <name>Account2</name>
                        <value>
                          <string>123</string>
                        </value>
                      </member>
                      <member>
                        <name>Account3</name>
                        <value>
                          <string>01_2010</string>
                        </value>
                      </member>
                      <member>
                        <name>FeePercentage</name>
                        <value>
                          <double>5</double>
                        </value>
                      </member>
                    </struct>
                  </value>
                </member>
              </struct>
            </value>
          </member>
          <member>
            <name>ContactInfo</name>
            <value>
              <struct>
                <member>
                  <name>Email</name>
                  <value>
                    <string>testuser@kibocommerce.com</string>
                  </value>
                </member>
                <member>
                  <name>Phone</name>
                  <value>
                    <string>(555) 555-1234</string>
                  </value>
                </member>
                <member>
                  <name>Firstname</name>
                  <value>
                    <string>Tom</string>
                  </value>
                </member>
                <member>
                  <name>Lastname</name>
                  <value>
                    <string>Jones</string>
                  </value>
                </member>
              </struct>
            </value>
          </member>
          <member>
            <name>OrderItems</name>
            <value>
              <struct>
                <member>
                  <name>0</name>
                  <value>
                    <struct>
                      <member>
                        <name>CartItemID</name>
                        <value>
                          <int>1544295</int>
                        </value>
                      </member>
                      <member>
                        <name>CustomItemData</name>
                        <value>
                           <struct>
                              <member>
                                 <name>custom name here</name>
                                 <value>
                                    <string>custom value here</string>
                                 </value>
                              </member>
                           </struct>
                        </value>
                      </member>
                      <member>
                        <name>ManufacturerPartNumber</name>
                        <value>
                          <string>40600921807</string>
                        </value>
                      </member>
                      <member>
                       <name>UPC</name>
                        <value>
                          <string>642331772463</string>
                        </value>
                      </member>
                      <member>
                        <name>Name</name>
                        <value>
                          <string>RH XL 5000 Set Mens Driver,3W,5W,4H-5H,6-9iron,PW,SW,Putter,Stand Bag,Top-Flite Shaft Regular Std(Black)</string>
                        </value>
                      </member>
                      <member>
                        <name>Options</name>
                        <value>
                          <struct>
                            <member>
                              <name>0</name>
                              <value>
                                <string>Set Composition:Driver,3 Wood,5 Wood,4H-5H,6-9 iron,PW,SW, Putter,Stand Bag</string>
                              </value>
                            </member>
                            <member>
                              <name>1</name>
                              <value>
                                <string>Shaft Origin:Factory Installed - Stock</string>
                              </value>
                            </member>
                            <member>
                              <name>2</name>
                              <value>
                                <string>Gender:Mens</string>
                              </value>
                            </member>
                            <member>
                              <name>3</name>
                              <value>
                                <string>Shaft:Regular</string>
                              </value>
                              <member>
                                <name>RetailPrice</name>
                                <value>
                                  <double>299</double>
                                </value>
                              </member>
                              <member>
                                <name>ActualPrice</name>
                                <value>
                                  <double>299</double>
                                </value>
                              </member>
                              <member>
                                <name>ADM</name>
                                <value>
                                  <double>0.3</double>
                                </value>
                              </member>
                              <member>
                                <name>Quantity</name>
                                <value>
                                  <int>1</int>
                                </value>
                              </member>
                              <member>
                                <name>Shipping</name>
                                <value>
                                  <double>8.90</double>
                                </value>
                              </member>
                              <member>
                                <name>TaxRules</name>
                                <value>
                                  <struct>
                                    <member>
                                      <name>0</name>
                                      <value>
                                        <struct>
                                          <member>
                                            <name>Tax</name>
                                            <value>
                                              <double>5.32 </double>
                                            </value>
                                          </member>
                                          <member>
                                            <name>MfgId</name>
                                            <value>
                                              <int>138</int>
                                            </value>
                                          </member>
                                        </struct>
                                      </value>
                                    </member>
                                    <member>
                                      <name>1</name>
                                      <value>
                                        <struct>
                                          <member>
                                            <name>Tax</name>
                                            <value>
                                              <double>10 </double>
                                            </value>
                                          </member>
                                          <member>
                                            <name>RetailerId </name>
                                            <value>
                                              <int>2687</int>
                                            </value>
                                          </member>
                                          <member>
                                            <name> RetailerLocationId</name>
                                            <value>
                                              <int>0</int>
                                            </value>
                                          </member>
                                          <member>
                                            <name>ForcedOverride </name>
                                            <value>
                                              <int>0</int>
                                            </value>
                                          </member>
                                        </struct>
                                      </value>
                                    </member>
                                    <member>
                                      <name>2</name>
                                      <value>
                                        <struct>
                                          <member>
                                            <name>Tax</name>
                                            <value>
                                              <double>5.362 </double>
                                            </value>
                                          </member>
                                        </struct>
                                      </value>
                                    </member>
                                  </struct>
                                </value>
                              </member>
                            </struct>
                          </value>
                        </member>
                      </struct>
                    </value>
                  </member>
                </struct>
              </value>
            </member>
            <member>
              <name>ShippingAddress</name>
              <value>
                <struct>
                  <member>
                    <name>Phone</name>
                    <value>
                      <string>(805)547-8368</string>
                    </value>
                  </member>
                  <member>
                    <name>Address1</name>
                    <value>
                      <string>2074 Parker Street</string>
                    </value>
                  </member>
                  <member>
                    <name>Address2</name>
                    <value>
                      <string>Suite 100</string>
                    </value>
                  </member>
                  <member>
                    <name>Address3</name>
                    <value>
                      <string></string>
                    </value>
                  </member>
                  <member>
                    <name>City</name>
                    <value>
                      <string>San Luis Obispo</string>
                    </value>
                  </member>
                  <member>
                    <name>State</name>
                    <value>
                      <string>CA</string>
                    </value>
                  </member>
                  <member>
                    <name>Zip</name>
                    <value>
                      <string>93401</string>
                    </value>
                  </member>
                  <member>
                    <name>Country</name>
                    <value>
                      <string>US</string>
                    </value>
                  </member>
                </struct>
              </value>
            </member>
            <member>
              <name>ShippingMethod</name>
              <value>
                <struct>
                  <member>
                    <name>ShipType</name>
                    <value>
                      <string>sts</string>
                    </value>
                  </member>
                  <member>
                    <name>LookupZip</name>
                    <value>
                      <int>93401</int>
                    </value>
                  </member>
                  <member>
                    <name>SMSNumber</name>
                    <value>
                      <int>8054419989</int>
                    </value>
                  </member>
                  <member>
                    <name>RetailerID</name>
                    <value>
                      <int>2687</int>
                    </value>
                  </member>
                  <member>
                    <name>RetailerLocationID</name>
                    <value>
                      <int>8006</int>
                    </value>
                  </member>
                </struct>
              </value>
            </member>
            <member>
              <name>GiftInfo</name>
              <value>
                <struct>
                  <member>
                    <name>RecipientName</name>
                    <value>
                      <string>Joe Jones</string>
                    </value>
                  </member>
                  <member>
                    <name>GiftMessage</name>
                    <value>
                      <string>Happy Bday Dad</string>
                    </value>
                  </member>
                </struct>
              </value>
            </member>
            <member>
              <name>OrderComment</name>
              <value>
                <string></string>
              </value>
            </member>
            <member>
              <name>CustomerIP</name>
              <value>
                <string>11.123.456.789</string>
              </value>
            </member>
            <member>
              <name>ExOrderID</name>
              <value>
                <string>9876543</string>
              </value>
            </member>
            <member>
              <name>CurrencyID</name>
              <value>
                <int>1</int>
              </value>
            </member>
            <member>
              <name>LanguageID</name>
              <value>
                <int>1</int>
              </value>
            </member>
            <member>
              <name>OptInRetailer</name>
              <value>
                <int>0</int>
              </value>
            </member>
            <member>
              <name>LandingCode</name>
              <value>
                <string>9876543</string>
              </value>
            </member>
            <member>
              <name>CustomData</name>
              <value>
                <struct>
                  <member>
                    <name>LoyaltyProgramID</name>
                    <value>
                      <string>123456789</string>
                    </value>
                  </member>
                </struct>
              </value>
            </member>
          </struct>
        </value>
      </param>
    </params>
</methodCall>

Example Responses

Unlike REST APIs, the XML-RPC APIs do not return HTTP status codes to indicate success or failure. For success, the RPC returns an OMS Order Number. On an error, the RPC returns a response message with the faultCode and faultString.

A full list of faultCode and faultString options can be found below:

CodeDescription
order_idSuccess. Order created and order_id (Order Number) returned.
Order Blocks, ItemID, CartItemIDOrder is still being bid on, and is not assigned yet.
99Error: Invalid Authorization.
2Error: Order data not correct. Examine error message.
5Error: Order resolve is currently running.
11Error: Authorization Failure.

Successful responses may look like the below sample:

<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
   <params>
      <param>
         <value>
            <struct>
               <member>
                  <name>OrderID</name>
                  <value>
                     <string>19545449</string>
                  </value>
               </member>
               <member>
                  <name>Items</name>
                  <value>
                     <struct>
                        <member>
                           <name>0</name>
                           <value>
                              <struct>
                                 <member>
                                    <name>ItemID</name>
                                    <value>
                                       <string>9999999</string>
                                    </value>
                                 </member>
                                 <member>
                                    <name>CartItemID</name>
                                    <value>
                                       <string>1544295</string>
                                    </value>
                                 </member>
                              </struct>
                           </value>
                        </member>
                        <member>
                           <name>1</name>
                           <value>
                              <struct>
                                 <member>
                                    <name>ItemID</name>
                                    <value>
                                       <string>8888888</string>
                                    </value>
                                 </member>
                                 <member>
                                    <name>CartItemID</name>
                                    <value>
                                       <string>1544296</string>
                                    </value>
                                 </member>
                              </struct>
                           </value>
                        </member>
                     </struct>
                  </value>
               </member>
            </struct>
         </value>
      </param>
   </params>
</methodResponse>

An error response includes an error code and reason:

<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
   <fault>
      <value>
         <struct>
            <member>
               <name>faultCode</name>
               <value>
                  <int>99</int>
               </value>
            </member>
            <member>
               <name>faultString</name>
               <value>
                  <string>Invalid Authorization</string>
               </value>
            </member>
         </struct>
      </value>
   </fault>
</methodResponse>

Handling Errors

If you receive an error response fault code after sending the order information to OMS, take the following steps:

  1. Record the outgoing package and the associated fault code response from OMS.
  2. Test for connectivity to the server.
  3. Hold the XML package for future transmission to OMS’s servers.
  4. Send an email to OMS Merchant Support; include the time and date of the failed transmission.
  5. When Kibo support staff responds, resend the failed attempts.