Hi, I am currently working on a new project, this wil be my first amazon affiliate project and was hoping that I could get an answer to these questions, if I am affiliating for Amazon, will I need a database to manage the products in which I want to advertise? Would I able to use the images, reviews and product descriptions of amazons products to be displayed on my website without having to store them i.e. pull them directly from Amazon? My website will act as an ecommerce store rather than just banner advertising, any help and advice would be appreciated. Thanks in advance.
In short, no, you do not necessarily need a database - you can pull Amazon results from the web service any time you like (though limited to 1 call per second). But reasons why you might use a database is: - to store the list of your "favourite" nodes (product categories) - you don't have to do this either, but there are so many of those nodes, and not all of them are useful, you might want to choose your own - to cache product information in order to speed up your site and to reduce your load on AWS (and avoid breaking the "1 sec rule") Amazon seems to expect you to make frequent calls to their API though, since caching of product info is limited in various ways - check out the rules here, basically you can't store anything for more than a month, and some stuff, like price info can only be cached for 1 hour (unless you include a timestamp), while pictures cannot be cached at all - Amazon expects you to hotlink to their images. Hope that helps. I have just finished an Amazon application and currently am not caching anything (I will start doing that once traffic increases) - I am getting everything live, even nodes, and it works fine.
Thanks for your reply mate, it's very imformative. I have another question if anyone can help with. How would I be able to retrieve, for example, every xbox 360 game stocked by amazon and the details (image, price, description etc), and store it in my personal MySQL Database? Would this be possible? Also, if it is not available to do easily, if I was to write a program to browse through this category extracting each piece of te data and storing the data in my database, would this be against Amazons rules?
Hi - the way to do this is with a few simple calls to the API. It's not complicated - I can't really go into detail here but you make a call using the ItemSearch function requesting products from BrowseNode 14220161, - if you're going for US Amazon, 14220161 is the "node" for X-Box 360 games (though there might be a few other odd items in there like console/games bundles and accessories). In the call you will also specify SearchIndex VideoGames. The SearchIndex is like an "umbrella" category and must be specified for all searches. The API will return XML containing all the information you mention above and it's down to you to parse it (pretty simple now PHP5 has those SimpleXML libraries by default) and INSERT it to a database. You will only be served a "page" of items at a time though, usually 10 items, so you will have to make multiple calls to get all the stuff you want - to get ALL the items you would need to make 190 calls, that's how many pages there are for X-Box 360 games! So you might not do that too frequently! As for the database question, I think I answered that before, but just to clarify, you can save all that data to your database but you can't store it for more than a month in the case of most of the data, and only 24 hours for some other, or even 1 hour for price data. And you CAN'T store the image at all (not sure how you would store an image in your dbase anyway, you would cache that on disk) - Amazon doesn't allow it, but all you have to do is store the LINK that hotlinks to the Amazon image so no problem really. Again, you have to think what the advantages are of storing all this data and putting a load on your own database when you can make 1 call per second to Amazon's own. I'd suggest you start off by getting yourself a Dev ID from AWS and making a few calls just to see the XML that is returned (you can do that in the browser) and start thinking about your architecture from there.
markowe, good explanation. Question: what happens when I get more than one call per second? the 2nd call is going to see an error or wait in a cue (i think is the latter one).
Actually, Amazon are not very clear about how they enforce this rule. In actual fact you CAN make more than one call per second! It looks as though they take some sort of average, or just watch the general trend and warn you if you start making too many calls. I don't think you go in a queue though, unfortunately, your call will return an error - I believe so anyway, though it hasn't happened to me yet! Also, I have heard that you can ask for an upgrade if you can show you are sending enough traffic. Like everything to do with Amazon, they seem to be fairly relaxed about it all! You should probably check out the developer forum for this kind of detailed question - a lot of this stuff has been discussed there already.
Hi, markowe The information you've provided is very helpful, I have signed up to the Dev Network and received a Dev ID, though I have no idea what I am doing *embarrassed*, I won't have a problem parsing the results, I have a moderate programming background, I have no idea where or how to use Amazons API? Where can I find the information needed to make the calls i.e. how did you know the Node number for Xbox 360 games? Please bare with me, this is my first Amazon website ....as I am sure your aware lol Thanks in advance Edit: When you mean one call per second, if I was not to have a database and made calls to the API to receive the data and parse it on my website, does thi mean I would only be able to load each product per second? I know it's another newb question
Check out this website http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=12 And if you know php checkout this tutorial: http://developer.amazonwebservices.com/connect/entry.jspa?externalID=636&categoryID=12
I'm using a script for my technology toy store. (you can see from my sig) With Pilkster script I can use Amazon store with wordpress.
Sorry, I realised I never got back on this question. I hope by now you have found the AWS Getting Started guide (http://docs.amazonwebservices.com/AWSECommerceService/latest/GSG/) and the full documentation (http://docs.amazonwebservices.com/AWSECommerceService/latest/DG/). As for finding node numbers, the easiest way is probably to use one of the sites that list them for you - that would be http://www.browsenodes.com/ or http://www.aanodes.com/. Regarding your products-per-second question - there are different ways of fetching data from the API, but basically you can do an ItemSearch call which will return a PAGE of items (10 items) at once, so you don't have to keep doing calls for every product. ItemSearch lets you search by keyword or by browsenode (i.e. product category) and will give you most of the data for each product that you need, and you might need to do an additional lookup only if you need some really detailed info on a particular item, in which case you might use ItemLookup (another type of call) to get the full details for a single item. However, I think any long-term strategy for using APIs like Amazon's ought to involve caching of some sort. You might use a database if you want to do any clever sorting, comparing or anything like that, but a disk-based cache might be simpler and would involve less database overhead, of course. In this case you could use a free library like Pear Cache Lite (http://pear.php.net/package/Cache_Lite) which is pretty straightforward to use in PHP and could really speed things up and reduce the number of API calls too. At the very least you could cache an each product's details for an hour, including price info. Hey, I'm not an expert, but these are some newbie issues that I have been through myself fairly recently, so I hope it's some help.