Wednesday, November 11, 2009

Consuming Amazon API Web Services to enhance your website

Now everybody heard of Amazon.com. What not everybody knows that Amazon released an API to access its huge catalogs. What this basically means is that each developer can access the information from Amazon following some simple protocols and every site owner can enhance his own website with content and features from Amazon.

The Amazon API comes as a simple Webservice. Here are the first Web services that they have exposed:
  • Product Display : The ability to search for and retrieve product information from the Amazon.com catalog.
  • Shopping Cart : The ability to add Amazon.com products to shopping carts, wish lists, and registries from third party locations.

No matter of your intentions, you will first need to register and obtain a valid developer token. You can get your token here at this address: http://www.amazon.com/webservices

The current listed implementation of Amazon webservices uses Keyword searches. It has basically the same results as searching the books catalog online. As any developer/webmaster can see in the "Amazon.com Web Services Developers Kit v 1.0" document, a lot of other Amazon features are exposed. This would imply extending the base structure I present here.

There are multiple approaches from a developer's point of view. The simplest one deals with SOAP and web services classes already implemented in PHP. You could also extend the PEAR's XMLParser object to parse Amazon results. The reason I did not choose these directions is because they require additional extensions installed with PHP. What I currently use is the XML parsing package that comes embedded in PHP, so it is slightly more general.

What basically happens in this implementation is that the search word entered by the used is embedded into a XML url that is then retrieved from Amazon.com. Then PHP builds a nice display for the information received.

A class collection in the extensive package provided by Manuel Lemos:
http://www.phpclasses.org/browse.html/package/642.html