Availability parameter does a good job of
filtering out of the response items that are unavailable. The parameter, however, is
not foolproof. It is possible for an item to be unavailable for purchase even
The item is returned in a response
The response has been filtered using the
The Availability element in the response says the item can be shipped in twenty-four hours
For example, some items, including Variations
parents, are never
available for purchase because they do not represent real items; they are
abstractions. These parent items, however, are often returned as being available.
The following request returns a Collection parent item even though the
Availability parameter is used.
http://webservices.amazon.com/onca/xml? Service=AWSECommerceService& AWSAccessKeyId=
[AWS Access Key ID]& AssociateTag=
[Associate Tag]& Operation=
ItemLookup& ItemId=B0006PLAOE& Availability=Available& ResponseGroup=ItemAttributes,Offers& Condition=All &Timestamp=[YYYY-MM-DDThh:mm:ssZ] &Signature=[Request Signature]
A snippet of the response shows that the Collection parent item is returned, so you might assume that it is available. However, the item is not associated with any offers, so it cannot be purchased.
<Item> <ASIN>B0006PLAOE</ASIN> ... <Offers> <TotalOffers>0</TotalOffers>
The contradiction of an item being available but not something you can buy shows
Availability parameter is helpful but
not the final arbiter in determining what items a customer can actually purchase.
Instead, as was mentioned at the beginning of this chapter, a better test for
availability is whether or not an item has an OfferListingId. Also, in the preceding
example, you can see that you can test the value of TotalOffers to determine if an
item has an offer.
Process to Include Item's Availability
|1||Include in an ItemSearch request
|2||Include in the request
|3||Test to see that the value in the response for
Even though the
Availability parameter is not foolproof, it
does have value. The advantage gained by using the parameter is that it prevents the
return of items that certainly do not have an
This filtering reduces the amount of testing you need to do to make sure the
returned items have an