Amazon Web Services

Last post 07-04-2009 12:24 PM by mattatuni2. 1 replies.

Sort Posts:

  • Amazon Web Services

    07-04-2009, 8:46 AM
    • Member
      49 point Member
    • mattatuni2
    • Member since 01-15-2009, 5:23 PM
    • Posts 619

    Has anyone used Amazon Ecommerce services or Product advertisting API before??

    Matt

  • Re: Amazon Web Services

    07-04-2009, 12:24 PM
    • Member
      49 point Member
    • mattatuni2
    • Member since 01-15-2009, 5:23 PM
    • Posts 619

     Im trying to list all sellers for each book... the following code in VB and c# lists the books..

    VB

    ==============

    Imports System
    Imports System.Data
    Imports System.Collections.Generic
    Imports System.Linq
    Imports System.Web
    Imports System.Web.UI
    Imports System.Web.UI.WebControls
    Imports com.amazon.webservices
    
    Partial Public Class _Default
        Inherits System.Web.UI.Page
    
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
    
        End Sub
    
    
        Public Function AmazonToDataSet(ByVal PowerSearchString As String) As DataSet
    
            Dim ds As DataSet
    
            'have we this in the cache already? 
            If Cache(PowerSearchString) = Nothing Then
                'create our query 
                Dim response As ItemSearchResponse = grabAmazonSearch(PowerSearchString)
    
                'Construct the dataset to store the results 
                ds = New DataSet()
                ds.Tables.Add()
    
                ds.Tables(0).Columns.Add("ProductName")
                ds.Tables(0).Columns.Add("AuthorName")
                ds.Tables(0).Columns.Add("Currency")
                ds.Tables(0).Columns.Add("Offer")
                ds.Tables(0).Columns.Add("ASIN")
                ds.Tables(0).Columns.Add("URL")
    
    
                Dim info As Items = response.Items(0)
                ' create new array with no size spec
                Dim items As Item() = info.Item
                Dim dr As DataRow
    
            
    
                'iterate the results adding new rows with 
                'the values from the search result item. 
    
                Dim i As Integer = 0
                While i < items.Length
                 
                    Dim item As Item = items(i)
                    dr = ds.Tables(0).NewRow()
                    dr("ProductName") = item.ItemAttributes.Title
                    dr("AuthorName") = item.ItemAttributes.Author(0)
                    dr("Offer") = item.Offers.Offer
                    dr("ASIN") = item.ASIN
                    dr("Currency") = item.ItemAttributes.ListPrice.CurrencyCode
                    dr("URL") = item.DetailPageURL
    
                    ds.Tables(0).Rows.Add(dr)
                    System.Math.Max(System.Threading.Interlocked.Increment(i), i - 1)
                End While
    
                'add the dataset to the cache 
    
                Cache.Insert(PowerSearchString, ds, Nothing, DateTime.Now.AddHours(24), TimeSpan.Zero)
            Else
                ds = DirectCast(Cache(PowerSearchString), DataSet)
            End If
            'return the dataset 
            Return ds
        End Function
    
    
        Private Function grabAmazonSearch(ByVal PowerSearchString As String) As ItemSearchResponse
            Dim response As ItemSearchResponse
    
            Dim aws As New AWSECommerceService()
            Dim request As New ItemSearchRequest()
            request.SearchIndex = "Books"
            request.Power = PowerSearchString
            request.ResponseGroup = New String() {"Large"}
            request.MerchantId = "all"
    
            request.Sort = "salesrank"
    
    
            Dim requests As ItemSearchRequest() = New ItemSearchRequest() {request}
            Dim itemSearch As New ItemSearch()
            itemSearch.AssociateTag = "myassociatetag-20"
            itemSearch.SubscriptionId = "AKIAIAAGYTHFJS2RBSVQ"
            itemSearch.Request = requests
            response = aws.ItemSearch(itemSearch)
    
            Return response
    
    
        End Function
    
    
    
    
    
    
        Protected Sub Button1_Click1(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
            GridView1.DataSource = AmazonToDataSet("title: " + TextBox1.Text)
            GridView1.DataBind()
        End Sub
    End Class
    
    
    =====================================
    c#
    using System;
    using System.Data;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using com.amazon.webservices;
    
    public partial class _Default : System.Web.UI.Page 
    
    {
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
    protected void Button1_Click(object sender, EventArgs e)
        {
            
          
           
    
             GridView1.DataSource = AmazonToDataSet("title: " + TextBox1.Text);
             GridView1.DataBind();
                
    }
    
    
    public DataSet AmazonToDataSet(string PowerSearchString)
    {
    
        DataSet ds;
    
        //have we this in the cache already? 
        if (Cache[PowerSearchString] == null)
        {
            //create our query 
            ItemSearchResponse response =
                grabAmazonSearch(PowerSearchString);
    
            //Construct the dataset to store the results 
            ds = new DataSet();
            ds.Tables.Add();
    
            ds.Tables[0].Columns.Add("ProductName");
            ds.Tables[0].Columns.Add("AuthorName");
            ds.Tables[0].Columns.Add("Currency");
            ds.Tables[0].Columns.Add("Offer");
            ds.Tables[0].Columns.Add("ASIN");
            ds.Tables[0].Columns.Add("URL");
    
    
            Items info = response.Items[0];
            // create new array with no size spec
            Item[] items = info.Item;
            DataRow dr;
    
            //iterate the results adding new rows with 
            //the values from the search result item. 
    
            for (int i = 0; i < items.Length; i++) //+
            {
                Item item = items[i];
                dr = ds.Tables[0].NewRow();
                dr["ProductName"] = item.ItemAttributes.Title;
                dr["AuthorName"] = item.ItemAttributes.Author[0];
                dr["Offer"] = item.Offers.Offer;
                dr["ASIN"] = item.ASIN;
                dr["Currency"] = item.ItemAttributes.ListPrice.CurrencyCode;
                dr["URL"] = item.DetailPageURL;
                
                ds.Tables[0].Rows.Add(dr);
            }
    
            //add the dataset to the cache 
            Cache.Insert(PowerSearchString, ds, null,
                DateTime.Now.AddHours(24), TimeSpan.Zero);
    
        }
        else
        {
            ds = (DataSet)Cache[PowerSearchString];
        }
        //return the dataset 
        return ds;
    }
    
    
    private ItemSearchResponse grabAmazonSearch(string PowerSearchString)
    {
        ItemSearchResponse response;
        AWSECommerceService aws = new AWSECommerceService();
        ItemSearchRequest request = new ItemSearchRequest();
        request.SearchIndex = "Books";
        request.Power = PowerSearchString;
        request.ResponseGroup = new string[] { "Large" };
        request.Sort = "salesrank";
        //request.MerchantId = "all";
    
    
        
        
        ItemSearchRequest[] requests = new ItemSearchRequest[] { request };
        ItemSearch itemSearch = new ItemSearch();
        itemSearch.AssociateTag = "myassociatetag-20";
        itemSearch.SubscriptionId = "AKIAIAAGYTHFJS2RBSVQ";
        itemSearch.Request = requests;
        response = aws.ItemSearch(itemSearch);
    
        return response;
    }
    
    
    
    
    
    
    }
    
    


     

Page 1 of 1 (2 items)