Inventory Update API User Documentation



Similar documents
Table Of Contents. Welcome to Abebooks HomeBase Inventory Management Software version Quick Tour Toolbar... 2

Common definitions and specifications for OMA REST interfaces

MXSAVE XMLRPC Web Service Guide. Last Revision: 6/14/2012

Message Containers and API Framework

Web Services Credit Card Errors A Troubleshooter

Safeguard Ecommerce Integration / API

Secure XML API Integration Guide. (with FraudGuard add in)

HireDesk API V1.0 Developer s Guide

Web Services Credit Card Errors A Troubleshooter

enom, Inc. API response codes

Creating SOAP and REST Services and Web Clients with Ensemble

Address Phone & Fax Internet

Configuration > Payment gateways Configure the payment gateway tokens for your credit card and PayPal payment methods if applicable.

Add / Update Ticket API using POST XML

Three Step Redirect API V2.0 Patent Pending

Java Web Services SDK

KMx Enterprise: Integration Overview for Member Account Synchronization and Single Signon

Working With Virtual Hosts on Pramati Server

Grandstream Networks, Inc. UCM6100 Series IP PBX Appliance CDR and REC API Guide

Gardners ebooks frequently asked questions

Commerce Services Documentation

SPARROW Gateway. Developer API. Version 2.00

ACHIEVE THIRD PARTY MANAGEMENT (3PL)

DEVELOPING CONTRACT - DRIVEN WEB SERVICES USING JDEVELOPER. The purpose of this tutorial is to develop a java web service using a top-down approach.

Service for checking whether an is operative or not. Validate ids in your databases.

The presentation explains how to create and access the web services using the user interface. WebServices.ppt. Page 1 of 14

Microsoft Dynamics GP. Extender User s Guide

Implementation Guide

API Integration Payment21 Button

6. REPONSE CODE DEFINITION

Platform Error Messages

Microsoft Dynamics CRM Adapter for Microsoft Dynamics GP

Integration of Hotel Property Management Systems (HPMS) with Global Internet Reservation Systems

Embedded Web Server Security

3GPP TS V8.1.0 ( )

Startup guide for Zimonitor

Managing Identities and Admin Access

Cisco TelePresence Authenticating Cisco VCS Accounts Using LDAP

Description of Microsoft Internet Information Services (IIS) 5.0 and

Job Aid: Directory Application

Installation and Setup Guide

Neuron Event Manager. USER S GUIDE Product Version:

Cloud Elements! Marketing Hub Provisioning and Usage Guide!

Sentinel EMS v7.1 Web Services Guide

Error and Event Log Messages

ColdFusion Adwords API Library

IP Filtering for Patton RAS Products

Jive Connects for Microsoft SharePoint: Troubleshooting Tips

Liability Insurance Validation Electronically (Nevada LIVE) Manual Specifications for the Rules of Practice

Technical documentation

FREQUENTLY ASKED QUESTIONS

Strategic Asset Tracking System User Guide

vcloud Air Platform Programmer's Guide

Managing Users and Identity Stores

API Reference. Nordisk e-handel AB. Version 24

Package uptimerobot. October 22, 2015

API Integration Payment21 Recurring Billing

CreditLine (4.30A) Click on the chapter titles below to view them: 1: Getting Started. 2: CreditLine Configuration

App Orchestration 2.5

SOA Software API Gateway Appliance 7.1.x Administration Guide

How To Use Saml 2.0 Single Sign On With Qualysguard

Manage Workflows. Workflows and Workflow Actions

GFI Product Manual. GFI MailArchiver Outlook Addon

PREPARED BY: AUDIT PROGRAM Author: Lance M. Turcato. APPROVED BY: Logical Security Operating Systems - Generic. Audit Date:

Monitor Print Popup for Mac. Product Manual.

IBM Endpoint Manager Version 9.1. Patch Management for Red Hat Enterprise Linux User's Guide

SAP Business One mobile app for Android

Accellion Secure File Transfer

Bank and SecurePay Response Codes

[Jet-Magento Integration]

IP Configuration Manual

SRFax Fax API Web Services Documentation

Technical Specification Premium SMS gateway

Administration Site Guide

Common Event Expression

The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code.

Configuration Information

Payment Processor Errors A Troubleshooter

Online sales management software Quick store setup. v 1.1.3

ENABLING RPC OVER HTTPS CONNECTIONS TO M-FILES SERVER

A Reseller s Guide to Using Helm

Riverbed Cascade Shark Common REST API v1.0

Authentication Integration

Remote Support Jump Client Guide: Unattended Access to Systems in Any Network 3. Deploy Jump Clients During a Support Session or Prior to Support 4

Log Analyzer Reference

SmartSantander Open Data access using FI-WARE G.E. [ORION]

ETSI TS V8.4.0 ( )

Pcounter Web Administrator User Guide - v Pcounter Web Administrator User Guide Version 1.0

Title page. Alcatel-Lucent 5620 SERVICE AWARE MANAGER 13.0 R7

Grandstream Networks, Inc.

Sage 100 ERP. ebusiness Web Services Installation and Reference Guide

A10 Networks Load Balancer

Cloud Elements ecommerce Hub Provisioning Guide API Version 2.0 BETA

Acrolinx IQ. Acrolinx IQ Plug-in for Adobe CQ Rich Text Editor Installation Guide Version: 2.9

Card-Present Transactions Implementation Guide Version 1.0

Transcription:

Inventory Update API User Documentation

INTRODUCTION The Inventory Update API is a service that may be used to update a bookseller's inventory of new, used, rare, and out of print books. The service is designed to be integrated into the bookseller's own custom inventory management system, in order to allow them to make real time updates to their online AbeBooks inventory. XML API The following sections describe the minimum requirements, usage and functionality, valid requests, responses, and error codes. Minimum Requirements An AbeBooks bookseller account with a valid username and password. In-depth understanding of XML. For more information, see http://www.w3.org/xml/ Appropriate system access to open port 443 for bi-directional TLS traffic. Ability to work with and deploy a programming language that supports TLS and XML. Because each XML request contains your client PIN and password, you must use a TLS certified secure client. Operation through a proxy server is not supported. The bookseller must manage unique Book IDs (vendorbookid) from their inventory tool/system. When sending an inventory update request, the bookseller must include all book information, as the server will update all fields with each request. The exception to this is delete requests. Service Address URL: https://inventoryupdate.abebooks.com Port: 10027 Security Security for the service is based on TLS and valid client (vetted bookseller) sign on credentials. Testing: AbeBooks has no separate test environment for the Inventory Update server. You are responsible for ensuring that your client software is performing as required. To test your system, you can simply add, delete and update books via the server using your existing bookseller account credentials. Overview of Service Usage and Functionality A bookseller will use the inventory update server and its XML API to manage their online book inventory with AbeBooks. The advantage to using the engine is that the bookseller can update their inventory in near real time, resulting in fewer books being sold on AbeBooks that were previously sold by the bookseller, improved fulfillment ratings for the bookseller and better customer service. There is no software for the bookseller to install, only this specification document that the bookseller will use to create an interface with AbeBooks inventory management server using an appropriate software development language that supports TLS and XML. The API has only one method, the inventoryupdaterequest. The request includes action and AbebookList elements. The AbebookList may contain up to 100 books (Abebook). Each Abebook element includes a transactiontype of "add," "update" or "delete." The bookseller creates XML documents that conform to the API specification, references the included XML schema document to validate the request and submits the request to the server. An appropriate success or error response will be returned. Page 2

There is a requirement for the bookseller to manage unique Book IDs in their system and send that ID with the request in the vendorbookid tag. If an "add" or "update" request is sent for a book with a vendorbookid that exists in the bookseller's online inventory, the book will be updated with the new information. If any tags are empty or omitted, any existing information in the corresponding fields will be removed. Use Cases Bookseller adds a new book To add a new book to the bookseller's online inventory, they send an inventory update request with the transaction type "add". Book is no longer available for sale on AbeBooks If the bookseller sells a book from their store that is listed in their AbeBooks online inventory, the bookseller will send an inventory update request with the transaction type "delete". If this same book becomes available at a later date, the bookseller can send an inventory update request with the transaction type "update", and the book will be reinstated. Please note we will delete any fields that are left blank or overwrite them with the new information when an "add" or "update" request is sent for an existing vendorbookid Bookseller updates a book If the bookseller needs to update a book listed in their online inventory, they send an inventory update request where the transaction type is "update". They must include all the book information. Bookseller wishes to reinstate a book that was previously deleted A bookseller can reinstate a book that has been deleted or sold on AbeBooks by sending an inventory update request where the transaction type is "update". XML Requests This section describes an XML request made to the Inventory Update server. The first section covers common request elements. The next sections describe the XML request in detail. Request Elements All inventory update requests follow XML standards and should include the standard XML header: <?xml version="1.0" encoding="iso-8859-1"?> The following text contains an example of an inventoryupdaterequest with a TransactionType of "add", and a Quantity of "2". Page 3

<?xml version="1.0" encoding="iso-8859-1"?> <inventoryupdaterequest version="1.0"> <action name="bookupdate"> <username>bookseller_1</username> <password>pa55w0rd</password> </action> <AbebookList> <Abebook> <transactiontype>add</transactiontype> <vendorbookid>000001</vendorbookid> <author>wittgenstein, Ludwig</author> <title>tractatus Logico-Philosophicus</title> <publisher>dover Publications</publisher> <subject>philosophy Logic Linguistics</subject> <price currency="usd">1234567.89</price> <dustjacket>true</dustjacket> <binding type="hard">leather</binding> <firstedition>false</firstedition> <signed>false</signed> <booksellercatalogue>philosophy</booksellercatalogue> <description>clean and unmarked; with original intro.</description> <bookcondition>fine</bookcondition> <size>8.4" x 5.4"</size> <jacketcondition>fine</jacketcondition> <booktype>ex\-library</booktype> <isbn>0486404455</isbn> <publishplace>toronto, Canada, ON</publishPlace> <publishyear>1999</publishyear> <edition>reprint</edition> <inscriptiontype>signed by previous owner.</inscriptiontype> <quantity amount="2"></quantity> </Abebook> </AbebookList> </inventoryupdaterequest> XML Code 4-1 XML Elements common to all requests inventoryupdaterequest Tag This tag encompasses the entire inventory update request. It has one attribute that indicates the version of the XML request and two elements: AbebookList and Abebook. Currently the only valid version is "1.0". action Tag This tag tells the inventory server which action to take and which user is executing the action. The tag has one attribute and two elements: The attribute "name" may have the value of "bookupdate" indicating which action to take. The value of the elements username and password must identify a unique, valid bookseller account, where username is the bookseller's client PIN. AbebookList Tag The AbebookList element must contain one Abebook element and can contain up to a maximum of 100 Abebook elements. Page 4

Abebook Tag The Abebook tag contains all of the elements that describe a book. transactiontype, vendorbookid and price are required. One of author, title or publisher is also required. The remaining elements are optional as described in the tag dictionary. Quantity tag Specifying the quantity of a book can be done with the "quantity" tag. This tag has two attributes: "amount", and "limit". The following example illustrates how to specify a quantity of "2" using the "amount" attribute: <quantity amount="2"></quantity> If you have an unlimited quantity of certain books, you can set them to "unlimited" by using the "limit" attribute. The "limit" attribute must be either a "1", or a "0". Here is an example of how to specify an unlimited quantity of a book: <quantity limit="1"></quantity> The Inventory Update Response The inventoryupdaterequest will return a response code and message in the inventoryupdateresponse for each add, update or delete. Errors will be returned as described in Figure 4.3. <?xml version="1.0" encoding="iso-8859-1"?> <inventoryupdateresponse version="1.0"> <code>600</code> <message lang="en">english Message</message> <AbebookList> <Abebook> <code>600</code> <message>book added or updated<message> <transactiontype>add<transactiontype> <vendorbookid>8484848e8e8e8<vendorbookid> </Abebook> <Abebook> <code>600</code> <message>book deleted</message> <transactiontype>delete</transactiontype> <vendorbookid>1212121</vendorbookid> </Abebook> <Abebook> <code>600</code> <message>book added or updated</message> <transactiontype>update</transactiontype> <vendorbookid>1212121</vendorbookid> </Abebook>... </AbebookList> </inventoryupdateresponse> XML Code 4-3 Example InventoryUpdateResponse Page 5

XML Error Responses The server can respond with a number of error messages. These messages are divided into API responses and generic server error responses, which are listed in the Appendix A. Error responses take the following format: <?xml version="1.0" encoding="iso-8859-1"?> <requesterror version="1.0"> <code>501</code> <message lang="en">english Error Message</message> </requesterror> XML Code 4-4 Format of an Error Response Response Codes The following table outlines the possible response codes that may be returned by the Inventory Update server, along with the action that should be taken if the error is received. Code Message Solution 600 Successful transaction 601 Book id is not valid 602 Book list too large 603 Illegal Book Transaction No action required Modify the criteria you specified in your request. Ensure that books have been included in the request and the vendorbookid field is no more than 15 characters long and contains valid data. Decrease the number of books in the request so that it is less than or equal to the maximum. Ensure that all books have the transactiontype field set to ADD, UPDATE or DELETE. 604 Bad Price Ensure that the value in the price field is a valid positive number. 606 Bad Book Data Ensure that all required fields are filled and that at least one of the author, title and publisher fields contains useful data. Table 4-5 Response Error Codes Page 6

APPENDIX Appendix A: General Server Error Codes AbeBooks.com uses a generic XML server framework that may return the error codes below. Code Message Solution 100 Database Unavailable A database error has occurred at AbeBooks.com. Contact AbeBooks. 103 Network Error Some form of network error has occurred. Try again later. 104 Invalid XML The XML sent to the server is invalid 105 Unhandled exception Try again later 106 External Server Unavailable Try again later 108 Unauthorized Action You are attempting to perform an action you do not have permission to perform 109 Unknown Action You have sent an action that is not valid. Correct your XML request and retry. 110 User is invalid. Either it is Correct the user name and password in your XML request unknown or has an incorrect password 111 There was an error validating the user The server was unable to validate the user in the action. Try again later. Appendix B: Tag Dictionary The following table outlines all of the tags that are available to be used in an Inventory Update request. Tag Homebase Required for Field Notes Add/Upd/Del Size <InventoryUpdateRequest> N/A Yes/Yes/Yes N/A 1.0 is the only valid version. <action name> N/A Yes/Yes/Yes N/A The action name is a required attribute and identifies the request as a book update request. "bookupdate" is the only valid value. <username/> N/A Yes/Yes/Yes 30 <password/> N/A Yes/Yes/Yes 30 </action> N/A Yes/Yes/Yes N/A <AbebookList> N/A Yes/Yes/Yes N/A <Abebook> N/A Yes/Yes/Yes N/A <transactiontype/> N/A Yes/Yes/Yes N/A ADD, UPDATE or DELETE are the only valid values. (Not case sensitive) <vendorbookid/> BOOK Yes/Yes/Yes 32 Bookseller's vendorbookid must be Unique. <author/> ANAM Yes/Yes/No 750 On add or update transactions author or title or publisher is required <title/> TNAM Yes/Yes/No 750 <publisher/> PBLS Yes/Yes/No 750 <subject/> SUB1 No/No/No 2000 KEYWORDS field <price> PRIC Yes/Yes/No 8.2 The Currency attribute is the threeletter ISO code (for example, "USD"). The price must be a number and have the following format: #.## <dustjacket/> JACK No/No/No Bool TRUE/FALSE <binding> BIND and BNDC No/No/No 30 Valid values for Type are "hard" or "soft". <firstedition/> EDTN No/No/No Bool TRUE/FALSE Page 7

<signed/> SIGN No/No/No Bool TRUE/FALSE <booksellercatalogue/> BCAT No/No/No 750 If the bookseller catalogue supplied in an add or update is "Sold" the update will delete the book. <description/> DESC No/No/No 4000 <illustrator/> INAM No/No/No 254 <bookcondition/> BOOC No/No/No 30 See Keywords Document for values. <size/> SIZE No/No/No 50 <jacketcondition/> JCKC No/No/No 30 See Keywords Document for values. <booktype/> BTYP No/No/No 30 See Keywords Document for values. <isbn/> ISBN No/No/No 15 <publishplace/> PBPL No/No/No 50 <publishyear/> PBYR No/No/No 4 <editionlist/> N/A No/No/No N/A Use this tag as parent to specify multiple editions using <edition/> tag <edition/> EDNT No/No/No 40 See Keywords Document for values. <inscriptiontype/> SGNT No/No/No 50 See Keywords Document for values. <quantity/> N/A No/No/No 999 999 is the maximum. Limit allows the vendor to specify unlimited quantity by setting limit=1. If amount=0 the listing will be deleted. <productionmethod/> N/A No/No/No N/A This tag supports a P string value, indicating a book is printed on demand, and an E string value, indicating an ebook. Other values will be ignored. <producttype/> N/A No/No/No N/A See keywords doc for values. </Abebook> N/A Yes/Yes/Yes N/A </AbebookList> N/A Yes/Yes/Yes N/A </inventoryupdaterequest> N/A Yes/Yes/Yes N/A Page 8