Retrieve Order Status The Retrieve Order Status API returns status information for OMS orders. This API can provide:
All information for orders created during a given date range Status updates for orders created during a given date range All information for specific orders, by order number Status updates for specific orders, by order number This API can also be used by fulfillment partners when they want to get status information for their orders (with permission).
Some limitations apply to this API:
A list of order numbers or a time range may be passed A list can include 1000 order numbers or less A time range can be five days or less Information for order updates by time range is available for orders placed in the previous two weeks. To get updates for orders placed before that, use order numbers. An order’s creation date determines if it falls in a specified time range.
Getting Started System Requirements To use the Retrieve Order Status API, there should be a server with Internet access that runs the client’s XML-RPC server to send data to the OMS server.
Writing the Application The client needs to write the Immediate Retrieve Order Status application. This application lets the user create an XML package that sends data to the OMS server using a Remote Procedure Call (RPC).
The application can be written in any programming or scripting language that can handle a Remote Procedure Call (RPC), including PHP, ASP, Cold Fusion, JSP, JAVA, C, and so on.
Process Flow The process for the Retrieve Order Status API is summarized here:
Prepare the XML package to obtain order or update information. Call the immediate.retrieve_order_status method on OMS servers to transmit the XML package. This initiates the status inquiry. Send the single XML package to the OMS server. Receive a response with order data. Create an XML-RPC message that calls immediate.retrieve_order_status and passes an array of the parameters shown in the table for defining request elements, below. Create an XML-RPC client that connects to the following server:
Programming the Immediate Order Processing API Server and RPC Information Create an XML-RPC message that calls immediate.retrieve_order_status and passes an array of the parameters shown in the table below for defining request elements. Create an XML-RPC client that connects to the following server:Server file name: /xmlAdvServer.php Server address: xml.shopatron.com Server port: 443 (HTTPS)
Required and Optional Parameters There are a number of possible parameters:
Element Required Parent Element Type Occurs Description methodName Yes None 1 immediate.retrieve_order_status username Yes None String 1 OMS username (must be a valid and active user account with System Admin or Order Admin permission). The maximum length is 50. password Yes None String 1 Password for OMS user account. The maximum length is 50. manufacturer id Yes None Int 1 The OMS-assigned Manufacturer ID that order data is being requested for; this can be found in the OMS account. catalog id Yes None Int 1 The OMS-assigned Catalog ID that order data is being requested for; this can be found in the OMS account. DataType Yes None String 1 The type of request being made, either OrderStatus or Updates. OrderID Optional. Include either OrderID and ExOrderID or DateTimeStart and DateTimeEnd. None Struct 0 or 1 A struct that contains the Order Numbers assigned by OMS when the order(s) were created. Each order number is in a substruct under OrderID. ExOrderID Optional None Struct 0 or 1 A struct for the External Order ID(s) assigned by the client’s system. Each External Order ID is in a substruct under ExOrderID. DateTimeStart Optional. Include either OrderID and ExOrderID or DateTimeStart and DateTimeEnd. None Int 0 or 1 The beginning of the date range for the inquiry. This must be a properly formatted UNIX timestamp. The maximum time range for when orders can be requested is five days. DateTimeEnd Optional. Include either OrderID and ExOrderID or DateTimeStart and DateTimeEnd. None Int 0 or 1 The end of the date range for the inquiry. This must be a properly formatted UNIX timestamp.
Example Requests and Responses This first example obtains the order status for a list of order numbers.
<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>immediate.retrieve_order_status</methodName>
<param>
<value>
<string>xml_user</string>
</value>
</param>
<param>
<value>
<string>password</string>
</value>
</param>
<param>
<value>
<int>mfg_id</int>
</value>
</param>
<param>
<value>
<int>catalog_id</int>
</value>
</param>
<param>
<value>
<struct>
<member>
<name>DataType</name>
<value>
<string>OrderStatus</string>
</value>
</member>
<member>
<name>OrderID</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<string>4793437</string>
</value>
</member>
<member>
<name>1</name>
<value>
<string>4743943</string>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>ExOrderID</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<string>331318440213534</string>
</value>
</member>
<member>
<name>1</name>
<value>
<string>1504404</string>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</param>
</methodCall>
This is a possible response to the above request.
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>Orders</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<struct>
<member>
<name>OrderID</name>
<value>
<string>4791606</string>
</value>
</member>
<member>
<name>ExOrderID</name>
<value>
<string>1532005</string>
</value>
</member>
<member>
<name>Parts</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<struct>
<member>
<name>PartNumber</name>
<value>
<string>3064063000</string>
</value>
</member>
<member>
<name>ItemId</name>
<value>
<string>6767162</string>
</value>
</member>
<member>
<name>ItemState</name>
<value>
<string>Normal</string>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>1</name>
<value>
<struct>
<member>
<name>PartNumber</name>
<value>
<string>3028821000</string>
</value>
</member>
<member>
<name>ItemId</name>
<value>
<string>6767160</string>
</value>
</member>
<member>
<name>ItemState</name>
<value>
<string>Normal</string>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>2</name>
<value>
<struct>
<member>
<name>PartNumber</name>
<value>
<string>3071657000</string>
</value>
</member>
<member>
<name>ItemId</name>
<value>
<string>6767161</string>
</value>
</member>
<member>
<name>ItemState</name>
<value>
<string>Normal</string>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>Status</name>
<value>
<string>ready</string>
</value>
</member>
<member>
<name>ShipmentID</name>
<value>
<int>3504831</int>
</value>
</member>
<member>
<name>ShipperName</name>
<value>
<string>Sport Store</string>
</value>
</member>
<member>
<name>ShipmentStatus</name>
<value>
<string>ready</string>
</value>
</member>
<member>
<name>RMAStatus</name>
<value>
<struct>
<member>
<name>104501</name>
<value>
<struct>
<member>
<name>Items</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<struct>
<member>
<name>ItemId</name>
<value>
<int>6489508</int>
</value>
</member>
<member>
<name>Quantity</name>
<value>
<int>1</int>
</value>
</member>
<member>
<name>Status</name>
<value>
<string>pending</string>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>CurrentStatus</name>
<value>
<string>closed</string>
</value>
</member>
<member>
<name>Created</name>
<value>
<string>2011-11-01 20:49:41</string>
</value>
</member>
<member>
<name>Closed</name>
<value>
<string>2011-11-01 14:50:04</string>
</value>
</member>
<member>
<name>Cust_total</name>
<value>
<string>19.56</string>
</value>
</member>
<member>
<name>Fulfiller_total</name>
<value>
<string>18.48</string>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>1</name>
<value>
<struct>
<member>
<name>OrderID</name>
<value>
<string>4793437</string>
</value>
</member>
<member>
<name>ExOrderID</name>
<value>
<string>331318440213534</string>
</value>
</member>
<member>
<name>Parts</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<struct>
<member>
<name>PartNumber</name>
<value>
<string>7772608803</string>
</value>
</member>
<member>
<name>ItemId</name>
<value>
<string>6769764</string>
</value>
</member>
<member>
<name>ItemState</name>
<value>
<string>Normal</string>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>1</name>
<value>
<struct>
<member>
<name>PartNumber</name>
<value>
<string>77726088032</string>
</value>
</member>
<member>
<name>ItemId</name>
<value>
<string>6769763</string>
</value>
</member>
<member>
<name>ItemState</name>
<value>
<string>Normal</string>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>Status</name>
<value>
<string>CheckShipmentStatus</string>
</value>
</member>
<member>
<name>RMAStatus</name>
<value>
<struct>
<member>
<name>104500</name>
<value>
<struct>
<member>
<name>Items</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<struct>
<member>
<name>ItemId</name>
<value>
<int>6769763</int>
</value>
</member>
<member>
<name>Quantity</name>
<value>
<int>1</int>
</value>
</member>
<member>
<name>Status</name>
<value>
<string>pending</string>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>CurrentStatus</name>
<value>
<string>open</string>
</value>
</member>
<member>
<name>Created</name>
<value>
<string>2011-11-01 20:49:30</string>
</value>
</member>
<member>
<name>Cust_total</name>
<value>
<string>27.18</string>
</value>
</member>
<member>
<name>Fulfiller_total</name>
<value>
<string>25.68</string>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>CustomData</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<struct>
<member>
<name>Name</name>
<value>
<string>Extradata</string>
</value>
</member>
<member>
<name>Value</name>
<value>
<string>struff</string>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>1</name>
<value>
<struct>
<member>
<name>Name</name>
<value>
<string>LoyaltyProgramID</string>
</value>
</member>
<member>
<name>Value</name>
<value>
<string>123456789</string>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
This example obtains the order status for orders created within a time range.
<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>immediate.retrieve_order_status</methodName>
<param>
<value>
<string>xml_user</string>
</value>
</param>
<param>
<value>
<string>password</string>
</value>
</param>
<param>
<value>
<int>mfg_id</int>
</value>
</param>
<param>
<value>
<int>catalog_id</int>
</value>
</param>
<param>
<value>
<struct>
<member>
<name>DataType</name>
<value>
<string>OrderStatus</string>
</value>
</member>
<member>
<name>DateTimeStart</name>
<value>
<int>1308591043</int>
</value>
</member>
<member>
<name>DateTimeEnd</name>
<value>
<int>1308591643</int>
</value>
</member>
</struct>
</value>
</param>
</methodCall>
This is a possible response to the above request.
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>Orders</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<struct>
<member>
<name>OrderID</name>
<value>
<string>4783219</string>
</value>
</member>
<member>
<name>ExOrderID</name>
<value>
<string>1526907</string>
</value>
</member>
<member>
<name>Parts</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<struct>
<member>
<name>PartNumber</name>
<value>
<string>3046183000</string>
</value>
</member>
<member>
<name>ItemId</name>
<value>
<string>6752006</string>
</value>
</member>
<member>
<name>ItemState</name>
<value>
<string>Normal</string>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>Status</name>
<value>
<string>payment error</string>
</value>
</member>
<member>
<name>ShipmentID</name>
<value>
<int>3497205</int>
</value>
</member>
<member>
<name>ShipperName</name>
<value>
<string>Sport Store</string>
</value>
</member>
<member>
<name>ShipmentStatus</name>
<value>
<string>assigned</string>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
This example obtains updates for a list of order numbers.
<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>immediate.retrieve_order_status</methodName>
<param>
<value>
<string>xml_user</string>
</value>
</param>
<param>
<value>
<string>password</string>
</value>
</param>
<param>
<value>
<int>mfg_id</int>
</value>
</param>
<param>
<value>
<int>catalog_id</int>
</value>
</param>
<param>
<value>
<struct>
<member>
<name>DataType</name>
<value>
<string>Updates</string>
</value>
</member>
<member>
<name>OrderID</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<string>4619361</string>
</value>
</member>
<member>
<name>1</name>
<value>
<string>4783196</string>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>ExOrderID</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<string>1443113</string>
</value>
</member>
<member>
<name>1</name>
<value>
<string>1526805</string>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</param>
</methodCall>
This is a possible response to the above request.
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>Updates</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<struct>
<member>
<name>OrderID</name>
<value>
<string>4619361</string>
</value>
</member>
<member>
<name>ExOrderID</name>
<value>
<string>1443113</string>
</value>
</member>
<member>
<name>EventType</name>
<value>
<string>Ready</string>
</value>
</member>
<member>
<name>EventTime</name>
<value>
<int>1303510629</int>
</value>
</member>
<member>
<name>PartNumber</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<struct>
<member>
<name>PartNumber</name>
<value>
<string>SPO3011537000</string>
</value>
</member>
<member>
<name>ItemId</name>
<value>
<string>6449960</string>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>1</name>
<value>
<struct>
<member>
<name>OrderID</name>
<value>
<string>1443113</string>
</value>
</member>
<member>
<name>ExOrderID</name>
<value>
<string>1455706</string>
</value>
</member>
<member>
<name>EventType</name>
<value>
<string>RMACreated</string>
</value>
</member>
<member>
<name>EventTime</name>
<value>
<int>1320180570</int>
</value>
</member>
<member>
<name>PartNumber</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<struct>
<member>
<name>PartNumber</name>
<value>
<string>SPO1501131013</string>
</value>
</member>
<member>
<name>ItemId</name>
<value>
<string>6489511</string>
</value>
</member>
<member>
<name>Quantity</name>
<value>
<string>1.00</string>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>Customer</name>
<value>
<double>27.18</double>
</value>
</member>
<member>
<name>Retailer</name>
<value>
<double>-25.68</double>
</value>
</member>
<member>
<name>Mfg</name>
<value>
<double>0</double>
</value>
</member>
<member>
<name>Rma_id</name>
<value>
<int>104500</int>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>2</name>
<value>
<struct>
<member>
<name>OrderID</name>
<value>
<string>4619361</string>
</value>
</member>
<member>
<name>ExOrderID</name>
<value>
<string>1443113</string>
</value>
</member>
<member>
<name>EventType</name>
<value>
<string>Fulfilled</string>
</value>
</member>
<member>
<name>EventTime</name>
<value>
<int>1303765633</int>
</value>
</member>
<member>
<name>ShipmentID</name>
<value>
<int>3344332</int>
</value>
</member>
<member>
<name>TrackingNr</name>
<value>
<string>1Z4AE1420349581104</string>
</value>
</member>
<member>
<name>Carrier</name>
<value>
<string>U.P.S./Common</string>
</value>
</member>
<member>
<name>PartNumber</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<struct>
<member>
<name>PartNumber</name>
<value>
<string>SPO3011537000</string>
</value>
</member>
<member>
<name>ItemId</name>
<value>
<string>6449960</string>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>3</name>
<value>
<struct>
<member>
<name>OrderID</name>
<value>
<string>4783196</string>
</value>
</member>
<member>
<name>ExOrderID</name>
<value>
<string>1526805</string>
</value>
</member>
<member>
<name>EventType</name>
<value>
<string>Ready</string>
</value>
</member>
<member>
<name>EventTime</name>
<value>
<int>1308592941</int>
</value>
</member>
<member>
<name>PartNumber</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<struct>
<member>
<name>PartNumber</name>
<value>
<string>SPO1534590037</string>
</value>
</member>
<member>
<name>ItemId</name>
<value>
<string>6751973</string>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>4</name>
<value>
<struct>
<member>
<name>OrderID</name>
<value>
<string>4783196</string>
</value>
</member>
<member>
<name>ExOrderID</name>
<value>
<string>1526805</string>
</value>
</member>
<member>
<name>EventType</name>
<value>
<string>Fulfilled</string>
</value>
</member>
<member>
<name>EventTime</name>
<value>
<int>1308781681</int>
</value>
</member>
<member>
<name>ShipmentID</name>
<value>
<int>3497204</int>
</value>
</member>
<member>
<name>TrackingNr</name>
<value>
<string>1Z9X05860355119491</string>
</value>
</member>
<member>
<name>Carrier</name>
<value>
<string>U.P.S./Common</string>
</value>
</member>
<member>
<name>PartNumber</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<struct>
<member>
<name>PartNumber</name>
<value>
<string>SPO1534590037</string>
</value>
</member>
<member>
<name>ItemId</name>
<value>
<string>6751973</string>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
This example obtains updates within a date range.
<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>immediate.retrieve_order_status</methodName>
<param>
<value>
<string>xml_user</string>
</value>
</param>
<param>
<value>
<string>password</string>
</value>
</param>
<param>
<value>
<int>mfg_id</int>
</value>
</param>
<param>
<value>
<int>catalog_id</int>
</value>
</param>
<param>
<value>
<struct>
<member>
<name>DataType</name>
<value>
<string>Updates</string>
</value>
</member>
<member>
<name>DateTimeStart</name>
<value>
<int>1308591043</int>
</value>
</member>
<member>
<name>DateTimeEnd</name>
<value>
<int>1308591643</int>
</value>
</member>
</struct>
</value>
</param>
</methodCall>
This is a possible response to the above request.
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>Updates</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<struct>
<member>
<name>OrderID</name>
<value>
<string>4762777</string>
</value>
</member>
<member>
<name>ExOrderID</name>
<value>
<string>1514120</string>
</value>
</member>
<member>
<name>EventType</name>
<value>
<string>Fulfilled</string>
</value>
</member>
<member>
<name>EventTime</name>
<value>
<int>1308591238</int>
</value>
</member>
<member>
<name>ShipmentID</name>
<value>
<int>3472184</int>
</value>
</member>
<member>
<name>TrackingNr</name>
<value>
<string>1z1r570w0345555022</string>
</value>
</member>
<member>
<name>Carrier</name>
<value>
<string>UPS</string>
</value>
</member>
<member>
<name>PartNumber</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<struct>
<member>
<name>PartNumber</name>
<value>
<string>SPO3043988001</string>
</value>
</member>
<member>
<name>ItemId</name>
<value>
<string>6713248</string>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>1</name>
<value>
<struct>
<member>
<name>PartNumber</name>
<value>
<string>SPO3071642002</string>
</value>
</member>
<member>
<name>ItemId</name>
<value>
<string>6713251</string>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>2</name>
<value>
<struct>
<member>
<name>PartNumber</name>
<value>
<string>SPO3067177002</string>
</value>
</member>
<member>
<name>ItemId</name>
<value>
<string>6713247</string>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>3</name>
<value>
<struct>
<member>
<name>PartNumber</name>
<value>
<string>SPO3067048002</string>
</value>
</member>
<member>
<name>ItemId</name>
<value>
<string>6713250</string>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>4</name>
<value>
<struct>
<member>
<name>PartNumber</name>
<value>
<string>SPO3067177001</string>
</value>
</member>
<member>
<name>ItemId</name>
<value>
<string>6713249</string>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>1</name>
<value>
<struct>
<member>
<name>OrderID</name>
<value>
<string>4763810</string>
</value>
</member>
<member>
<name>ExOrderID</name>
<value>
<string>1515208</string>
</value>
</member>
<member>
<name>EventType</name>
<value>
<string>Fulfilled</string>
</value>
</member>
<member>
<name>EventTime</name>
<value>
<int>1308591324</int>
</value>
</member>
<member>
<name>ShipmentID</name>
<value>
<int>3473304</int>
</value>
</member>
<member>
<name>TrackingNr</name>
<value>
<string>1ZE53A720344125606</string>
</value>
</member>
<member>
<name>Carrier</name>
<value>
<string>UPS</string>
</value>
</member>
<member>
<name>PartNumber</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<struct>
<member>
<name>PartNumber</name>
<value>
<string>SPO0663950012</string>
</value>
</member>
<member>
<name>ItemId</name>
<value>
<string>6714933</string>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>1</name>
<value>
<struct>
<member>
<name>PartNumber</name>
<value>
<string>SPO2092910013</string>
</value>
</member>
<member>
<name>ItemId</name>
<value>
<string>6714934</string>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>2</name>
<value>
<struct>
<member>
<name>PartNumber</name>
<value>
<string>SPO3005094000</string>
</value>
</member>
<member>
<name>ItemId</name>
<value>
<string>6714932</string>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
This example obtains updates within both a time range and list of order numbers.
<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>immediate.retrieve_order_status</methodName>
<params>
<param>
<value>
<string>xml_user</string>
</value>
</param>
<param>
<value>
<string>password</string>
</value>
</param>
<param>
<value>
<int>mfg_id</int>
</value>
</param>
<param>
<value>
<int>catalog_id</int>
</value>
</param>
<param>
<value>
<struct>
<member>
<name>DataType</name>
<value>
<string>Updates</string>
</value>
</member>
<member>
<name>OrderID</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<string>5090493</string>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>ExOrderID</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<string>1135302</string>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>DateTimeStart</name>
<value>
<int>1318607009</int>
</value>
</member>
<member>
<name>DateTimeEnd</name>
<value>
<int>1318952609</int>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>
This is a possible response to the above request.
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>Updates</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<struct>
<member>
<name>OrderID</name>
<value>
<string>5090493</string>
</value>
</member>
<member>
<name>ExOrderID</name>
<value>
<string>1135302</string>
</value>
</member>
<member>
<name>EventType</name>
<value>
<string>Fulfilled</string>
</value>
</member>
<member>
<name>EventTime</name>
<value>
<int>1318628862</int>
</value>
</member>
<member>
<name>ShipmentID</name>
<value>
<int>3798928</int>
</value>
</member>
<member>
<name>TrackingNr</name>
<value>
<string>1z9999999999</string>
</value>
</member>
<member>
<name>Carrier</name>
<value>
<string>UPS</string>
</value>
</member>
<member>
<name>PartNumber</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<struct>
<member>
<name>PartNumber</name>
<value>
<string>ZZLTest1234</string>
</value>
</member>
<member>
<name>ItemId</name>
<value>
<string>7306595</string>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
Response Codes Unlike REST APIs, the XML-RPC APIs do not return HTTP status codes to indicate success or failure. For success, the RPC returns the information requested. 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:
Code Description ready Order is ready for shipment. bidding Order is still being bid on, and is not assigned yet. waiting for manufacturer Order is waiting for manufacturer to accept or assign. payment error Order is in payment error. payment hold Order is in payment hold. canceled Order has been canceled. fulfilled. Order has been fulfilled. CheckShipmentStatus The order is complicated; check if the shipment status is available. If empty or no shipment statuses The order is in a state which cannot yet be determined (possibly in resolve.
ItemState can also return unique response codes:
Code Description Normal Item is in a normal state. Canceled Item is canceled.
RMA CurrentState can also return unique response codes:
Code Description open Return has been opened. closed Return is closed.
RMA Item Status can also return unique response codes:
Code Description pending Return has been opened and is pending. rejected Return is rejected. accepted Return has been accepted.
The EventType can also return unique response codes:
Code Description Ready Order moved to ready. Bidding Order placed in request. Canceled Order canceled. Fulfilled Order fulfilled. LineItemChanged Order item changed. RMAAccepted Return was accepted. CustSatisfactionFee Customer satisfaction fee occurred. RMACreated Return was created. RMACleared Return was cleared.
The main error response codes that may be encountered are:
Code Description 2 Invalid data of some Type. 99 Invalid Authorization.
An example error response follows below.
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<fault>
<value>
<struct>
<member>
<name>faultCode</name>
<value>
<int>2</int>
</value>
</member>
<member>
<name>faultString</name>
<value>
<string>Invalid Time Range, Must Be Under 5 Days</string>
</value>
</member>
</struct>
</value>
</fault>
</methodResponse>
Handling Errors If an error response fault code is recieved after sending the order information to OMS, follow these steps:
Record the outgoing package and the associated fault code response from OMS. Test for connectivity to the server. Hold the XML package for future transmission to OMS servers. Send an email to OMS Merchant Support; include the time and date of the failed transmission. When OMS support staff responds, resend the failed attempts.