Find the answer to your question
I am making a call to GetSellerList, but I do not get back the attribute information in the Item Object. Why is the AttributeSetArray not being populated and returned?
Not all calls return all the elements for container. For instance, GetSellerList returns the Item container, but it does not return all the properties of the ItemType object. To find out what information is returned for a call, you need to look at the Input / Output reference for the call.
Think of the information returned in a call as being message driven. There is a common information model, but depending on the functionality offered by a call, the relevant information is returned for that call. For instance, the goal of GetSellerList is to primarily return all the Items for a given seller in an optimal manner. The chief use of this call would be to sync your database with that of eBay's, and not to get all the relevant information about an item. Hence it does not return things like the attributes (item specifics) for the items. If you need to get the attribute information, then you would need to make a call to GetItem for each individual item that is of interest. Similarly, GetItem returns the information about an item, but not the transactional information for the item - for that you would need to use calls like GetSellerTransactions.
Besides what is returned in a call, the amount of information returned is controlled by the DetailLevel / GranularityLevel. You can use this effectively to reduce the amount of information returned and make your application efficient. For instance, if you need to find out all the items for a seller with just the ItemIDs, then do not send in any DetailLevel or GranularityLevel in the GetSellerList call. The response will return the ItemID, StartTime and EndTime and it will be very fast compared to setting a DetailLevel of ReturnAll.
Here is how you can use Input / Output reference documentation effectively:
- Enumeration Index: for a list of enumeration types & values and which calls use them
- Type Index: for a list of all the types used in the schema
To find out if a call supports DetailLevel / GranularityLevel, and what is returned at each level, check the Best Practices section in the documentation for that call.