Enterprise Retailer API

Enterprise Retailer API - Answers

1-What does API stand for?

API stands for Application Programming Interface. It is a set of functions, methods, and protocols for building an application that communicates with Doba’s database. The name seems fancy, but it is simply another way to interface with Doba. It can be very valuable to retailers that know how to set up automation.

For more information, see Wikipedia’s entry on Application programming interface.

2-What does the Enterprise Retailer API do or allow?

The Doba API allows you to utilize the Doba supply chain platform programmatically within your own application. The API includes functions to search or browse the Doba product catalog, obtain detailed product information, lookup shipping and handling charges, submit orders, fund orders, obtain shipment information for orders when they ship.

The following suggested flow diagrams are a wonderful resource if you are having trouble visualizing how this can be useful for your business:

Import Process - Flow Diagram
Store Checkout Process - Flow Diagram
Order Process - Flow Diagram

3-What are the limits of the Enterprise Retailer API?

The Retailer API has a limit of 100 product-related API calls per minute or 144,000 calls per day. To ensure that the limit is never reached on the product-related calls, we recommend batching your API calls whenever possible. Requesting details or inventory on a single product should be an exception rather than the rule.

The Retailer API has no limit on order-related API calls.

The product_detail_total parameter refers to the limit on the number of products the retailer can receive detailed information for, obtained by using the getProductDetail API method. The product_detail_count parameter refers to the current progress approaching the limit. As soon as this number matches the limit total the retailer will receive errors upon subsequent product detail calls.

The product_inventory_total parameter refers to the limit on the number of products the retailer can receive inventory information for, obtained by using the getProductInventory API method. The product_inventory_countparameter refers to to the current progress approaching the limit. As soon as this number matches the limit total the retailer will receive errors upon subsequent product inventory calls.

The Callbacks that are listed in the Documentation as well as the “API Settings” page within Doba are no longer being sent out. We no longer support the callbacks. However, you can still get the same information via getProductDetail, getProductInventory, and getOrder methods.

4-Is the ‘ship_cost’ field an estimate or a fixed amount?

The ship_cost field is often a fixed cost. However, occasionally the cost is variable depending on supplier. This information can be found via the API through getProductDetail > ship_price_strategy_class or getSuppliers > ship_price_strategy_class.   The information is also displayed  per supplier via the retailer UI under the "shipping strategy" header.  

5-How is the shipping charge calculated at an order level? Is there any field at the item level that can be utilized to calculate and how? 

orderLookup retrieves the fully-loaded, checkout totals for the specified item_id's.
This call should be used to determine the total cost of all items so that it can be shown to the end-customer before the order is submitted.

6-What is the difference between ‘fixed_ship_cost’ and ‘ship_cost’?

The 'fixed_ship_cost' is actually supplier-related data. It is not item data. That is being utilized to indicate if the supplier always uses a fixed ship cost or not. An example of a fixed shipping cost would be "Free Shipping" because the cost would always be $0.00, no matter if your order has 1 item or 1 million items.

The 'ship_cost' is actually the shipping cost for the product. Usually it will be fixed, but there is a
possibility that it might only be an estimate. If you consider the following request we can see the differences in the data returned:


If you change the 'ship_postal' field from 55655 to 21015 and/or 90210 you can get a feel for the
changes in shipping. It is also useful to go through the spreadsheet provided with supplier data so that you can see which specific suppliers are going to use a calculator and charge you a variable cost.

7-Why is the data that I get from an export different from what I get from the API?

The exports and the API were not created at the same time and they weren’t created with the same approach. The exports are 2-dimensional text files. The API gives you, if necessary, all the possible dimensions of each product in an XML file.

The exports are, generally speaking, rows and columns of data. Not only is it generally easier to work with a flat file, it’s also a standard for most applications. Doba Exports normally give you items on each row and the related data in the different columns. The API gives you the dimensions of each product with related supplier data and the item options available. It is more efficient and allows you to do a few things at once, where the exports would require a little more work and more steps.

8-Where can I find ISBNs for the books, magazines, encyclopedias, etc.?

ISBNs are set as SKUs in our system. Any items that are in fact books, magazines, encyclopedias, etc. with a SKU are actually displaying an ISBN in the SKU fields. Occasionally the supplier may also choose to use the attributes or details fields to display “ISBN” with the associated ISBN number.

9-Why is the XML data from the export different from the XML data returned from the API?

The XML data in the export is actually built off of the csv file. The headers of the “Product Comma Delimited” format are being converted into tags (<supplier_id>, <dropship_fee>, etc.) and the data is being populated into each tag as items in their own nodes.

The XML data returned from the API is being populated directly from our database. The nodes are created properly based on the dimensions of the data (product-related data, item-related data, supplier-related data).

As the approaches to the builds are distinct, the data displays in a different way. However, you will notice that the XML data provided in the export is all included in the XML data returned from the API. You simply get more data from the API.

The XML export version used in this comparison is “Product XML”. You can find it in the Data Export Tool:

The API method to get the comparable XML data is called ‘getProductDetail’.

10-Is there a way to inquire about a shipping fee of an order without using the ‘createOrder’ method in the API?

The ‘orderLookup’ method is actually for this exact purpose. You can get the fully priced out amount it will be for the order before actually creating an order. The ‘orderLookup’ method retrieves the fully-loaded, checkout totals for the specified item_id's and respective quantities. This method should be used to determine the total cost of all items so that it can be shown to the end-customer before the order is submitted, ideally within the checkout process.

11-How does the API handle RMAs?

The RMA process is not currently available via an API method. If you need to submit an RMA request for an order, you are required to log into your account on, click on the orders page, select the order in question, and request the RMA with all applicable details.

12-Category mapping: Assuming that we will be creating category wise inventory list within which we will add items, we did not find the same value returning in the response of Product Detail API. How would we get the same information in the FTP? 

Access your inventory list(s) using the API using getListsSummary.  However, that same inventory list will not be available via the FTP.  The FTP is segmented by Doba’s general categories.  You will see the category taxonomy listed in the files.  You can build a replica of the Doba category structure via the API.  See how here:
13-Product Delete/Remove: In case a product is removed from an inventory list how that is reflected in the response files.
I believe the answer is:  discontinued.  Look at the API here: 
A product is either:
1) discontinued
2) in stock
3) out of stock

Did you find this article helpful?