• 追加された行はこの色です。
  • 削除された行はこの色です。
*ショッピングカートのサンプルコード(C#) [#qc621072]
*ショッピングカートのサンプルコード(VB.NET) [#qc621072]

[[こちらのC#のコード>../../CS/Cart]]をVB.NETに変換したものです。
ここで紹介しているコードは[[こちらのプロキシクラス>../../../ProxyClass]]を使用しています。

ここで紹介しているコードは[[こちらのC#のコード>../../CS/Cart]]をVB.NETに変換したものです。

Amazon.co.jpのリモートショッピングカートを操作する(商品をショッピングカートに入れる、出す、すべて出す、カート内を表示)サンプルです。ショッピングカートに商品を入れるには、TextBoxに商品のASINかOfferListingIdを入力します。ショッピングカートから出すには、CartItemIdを入力します。

#code(vbnet){{
<%@ Page Language="VB" %>
<%@ Import Namespace="Amazon.jp.v20060913" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    Private Const AWS_ACCESS_KEY_ID As String = "(あなたのAccessKeyID)"
    Private Const ASSOCIATE_TAG As String = "dobonnet-22"

    Private Const CART_ID_SESSION As String = "CartID"
    Private Const CART_HMAC_SESSION As String = "Cart_HMAC"

    'カートに商品を追加
    Protected Sub Button1_Click( _
        ByVal sender As Object, ByVal e As EventArgs)
        AddToCart()
    End Sub

    'カートから商品を削除
    Protected Sub Button2_Click( _
        ByVal sender As Object, ByVal e As EventArgs)
        RemoveFromCart()
    End Sub

    'カーとの中身を確認
    Protected Sub Button3_Click( _
        ByVal sender As Object, ByVal e As EventArgs)
        GetCart()
    End Sub

    'カートをクリア
    Protected Sub Button4_Click( _
        ByVal sender As Object, ByVal e As EventArgs)
        ClearCart()
    End Sub

    'カートを作成し、商品を追加
    Protected Sub CreateCart()
        Dim ri As New CartCreateRequestItem()
        'カートに追加する商品のASINを指定
        ri.ASIN = TextBox1.Text
        If IdTypeList.SelectedValue = "OfferListingId" Then
            'カートに追加する商品のOfferListingIdを指定
            ri.OfferListingId = TextBox1.Text
        Else
            'カートに追加する商品のASINを指定
            ri.ASIN = TextBox1.Text
        End If
        'カートに入れる個数を指定
        ri.Quantity = "1"
   
        Dim req As New CartCreateRequest()
        req.Items = New CartCreateRequestItem() {ri}
   
        Dim cart As New CartCreate()
        'あなたのAccess Key ID
        cart.AWSAccessKeyId = AWS_ACCESS_KEY_ID
        'あなたのAssociate ID
        cart.AssociateTag = ASSOCIATE_TAG
        cart.Request = New CartCreateRequest() {req}
   
        Dim aws As New AWSECommerceService()
        Dim res As CartCreateResponse
        Try
            'カートを作成し、商品を追加
            res = aws.CartCreate(cart)
        Catch ex As Exception
            Label1.Text = "エラー:" + Server.HtmlEncode(ex.Message)
            Return
        End Try
   
        '失敗した時
        If res Is Nothing OrElse res.Cart Is Nothing Then
            Label1.Text = "結果を取得できませんでした。"
            Return
        End If
        If Not (res.Cart(0).Request.Errors Is Nothing) Then
            Label1.Text = "エラー:" + _
                res.Cart(0).Request.Errors(0).Message
            Return
        End If
   
        'カートの中身を表示
        Label1.Text = GetCartItemsList(res.Cart(0))
   
        'CartIDとHMACを保存する
        Session(CART_ID_SESSION) = res.Cart(0).CartId
        Session(CART_HMAC_SESSION) = res.Cart(0).HMAC
    End Sub

    'カートに商品を追加する
    Protected Sub AddToCart()
        'カートがなければ、作成する
        If Session(CART_ID_SESSION) Is Nothing OrElse _
            Session(CART_HMAC_SESSION) Is Nothing Then
            CreateCart()
            Return
        End If
   
        Dim ri As New CartAddRequestItem()
        If IdTypeList.SelectedValue = "OfferListingId" Then
            'カートに追加する商品のOfferListingIdを指定
            ri.OfferListingId = TextBox1.Text
        Else
            'カートに追加する商品のASINを指定
            ri.ASIN = TextBox1.Text
        End If
        'カートに入れる個数を指定
        ri.Quantity = "1"
   
        Dim req As New CartAddRequest()
        'CartIDとHMACを指定
        req.CartId = CStr(Session(CART_ID_SESSION))
        req.HMAC = CStr(Session(CART_HMAC_SESSION))
        req.Items = New CartAddRequestItem() {ri}
   
        Dim cart As New CartAdd()
        'あなたのAccess Key ID
        cart.AWSAccessKeyId = AWS_ACCESS_KEY_ID
        'あなたのAssociate ID
        cart.AssociateTag = ASSOCIATE_TAG
        cart.Request = New CartAddRequest() {req}
   
        Dim aws As New AWSECommerceService()
        Dim res As CartAddResponse
        Try
            'カートに追加
            res = aws.CartAdd(cart)
        Catch ex As Exception
            Label1.Text = "エラー:" + Server.HtmlEncode(ex.Message)
            Return
        End Try
   
        '失敗した時
        If res Is Nothing OrElse res.Cart Is Nothing Then
            Label1.Text = "結果を取得できませんでした。"
            Return
        End If
        If Not (res.Cart(0).Request.Errors Is Nothing) Then
            Label1.Text = "エラー:" + res.Cart(0).Request.Errors(0).Message
            Return
        End If
   
        'カートの中身を表示
        Label1.Text = GetCartItemsList(res.Cart(0))
    End Sub

    'カートから商品を削除
    Protected Sub RemoveFromCart()
        'カートがあるか
        If Session(CART_ID_SESSION) Is Nothing OrElse _
            Session(CART_HMAC_SESSION) Is Nothing Then
            Label1.Text = "ショッピングカートがありません。"
            Return
        End If
   
        Dim ri As New CartModifyRequestItem()
        '削除する商品のCartItemIdを指定
        ri.CartItemId = TextBox2.Text
        'Quantityを0にする
        ri.Quantity = "0"
   
        Dim req As New CartModifyRequest()
        'CartIDとHMACを指定
        req.CartId = CStr(Session(CART_ID_SESSION))
        req.HMAC = CStr(Session(CART_HMAC_SESSION))
        req.Items = New CartModifyRequestItem() {ri}
   
        Dim cart As New CartModify()
        'あなたのAccess Key ID
        cart.AWSAccessKeyId = AWS_ACCESS_KEY_ID
        'あなたのAssociate ID
        cart.AssociateTag = ASSOCIATE_TAG
        cart.Request = New CartModifyRequest() {req}
   
        Dim aws As New AWSECommerceService()
        Dim res As CartModifyResponse
        Try
            'カートから商品を削除
            res = aws.CartModify(cart)
        Catch ex As Exception
            Label1.Text = "エラー:" + Server.HtmlEncode(ex.Message)
            Return
        End Try
   
        '失敗した時
        If res Is Nothing OrElse res.Cart Is Nothing Then
            Label1.Text = "結果を取得できませんでした。"
            Return
        End If
        If Not (res.Cart(0).Request.Errors Is Nothing) Then
            Label1.Text = "エラー:" + _
                res.Cart(0).Request.Errors(0).Message
            Return
        End If
   
        'カートの中身を表示
        Label1.Text = GetCartItemsList(res.Cart(0))
    End Sub


    'カートの中身を見る
    Protected Sub GetCart()
        'カートがあるか
        If Session(CART_ID_SESSION) Is Nothing OrElse _
            Session(CART_HMAC_SESSION) Is Nothing Then
            Label1.Text = "ショッピングカートがありません。"
            Return
        End If
   
        Dim req As New CartGetRequest()
        'CartIDとHMACを指定
        req.CartId = CStr(Session(CART_ID_SESSION))
        req.HMAC = CStr(Session(CART_HMAC_SESSION))
   
        Dim cart As New CartGet()
        'あなたのAccess Key ID
        cart.AWSAccessKeyId = AWS_ACCESS_KEY_ID
        'あなたのAssociate ID
        cart.AssociateTag = ASSOCIATE_TAG
        cart.Request = New CartGetRequest() {req}
   
        Dim aws As New AWSECommerceService()
        Dim res As CartGetResponse
        Try
            'カートの中身を取得
            res = aws.CartGet(cart)
        Catch ex As Exception
            Label1.Text = "エラー:" + Server.HtmlEncode(ex.Message)
            Return
        End Try
   
        '失敗した時
        If res Is Nothing OrElse res.Cart Is Nothing Then
            Label1.Text = "結果を取得できませんでした。"
            Return
        End If
        If Not (res.Cart(0).Request.Errors Is Nothing) Then
            Label1.Text = "エラー:" + _
                res.Cart(0).Request.Errors(0).Message
            Return
        End If
   
        'カートの中身を表示
        Label1.Text = GetCartItemsList(res.Cart(0))
    End Sub


    'カートの中身をクリアする
    Protected Sub ClearCart()
        'カートがあるか
        If Session(CART_ID_SESSION) Is Nothing OrElse _
            Session(CART_HMAC_SESSION) Is Nothing Then
            Label1.Text = "ショッピングカートがありません。"
            Return
        End If
   
        Dim req As New CartClearRequest()
        'CartIDとHMACを指定
        req.CartId = CStr(Session(CART_ID_SESSION))
        req.HMAC = CStr(Session(CART_HMAC_SESSION))
   
        Dim cart As New CartClear()
        'あなたのAccess Key ID
        cart.AWSAccessKeyId = AWS_ACCESS_KEY_ID
        'あなたのAssociate ID
        cart.AssociateTag = ASSOCIATE_TAG
        cart.Request = New CartClearRequest() {req}
   
        Dim aws As New AWSECommerceService()
        Dim res As CartClearResponse
        Try
            'カートをクリアする
            res = aws.CartClear(cart)
        Catch ex As Exception
            Label1.Text = "エラー:" + Server.HtmlEncode(ex.Message)
            Return
        End Try
   
        If res Is Nothing OrElse res.Cart Is Nothing Then
            Label1.Text = "結果を取得できませんでした。"
            Return
        End If
        If Not (res.Cart(0).Request.Errors Is Nothing) Then
            Label1.Text = "エラー:" + _
                res.Cart(0).Request.Errors(0).Message
            Return
        End If
   
        'カートの中身を表示
        Label1.Text = GetCartItemsList(res.Cart(0))
    End Sub


    'カート内の商品を表示
    Protected Function GetCartItemsList(ByVal cart As Cart) As String
        Dim ret As String = ""
   
        ret = "ショッピングカート内の商品 :<br />" + vbLf
        If Not (cart.CartItems Is Nothing) Then
            ret += "<ul>" + vbLf
            Dim i As CartItem
            For Each i In cart.CartItems.CartItem
                ret += "<li><b>" + i.Title + "</b><br />" + vbLf
                ret += "数量 : " + i.Quantity + "<br />" + vbLf
                ret += "価格 : " + i.ItemTotal.FormattedPrice + _
                    "<br />" + vbLf
                ret += "CartItemId : " + i.CartItemId + "<br />" + _
                    vbLf
            Next i
            ret += "</ul>" + vbLf
      
            ret += "合計 : " + cart.SubTotal.FormattedPrice + _
                "<br />" + vbLf
            ret += "<a href=""" + cart.PurchaseURL + _
                """>購入する</a><br />" + vbLf
        Else
            ret += "カートは空です。<br />" + vbLf
        End If
   
        Return ret
    End Function
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Amazonショッピングカート</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:DropDownList ID="IdTypeList" runat="server">
            <asp:ListItem>ASIN</asp:ListItem>
            <asp:ListItem>OfferListingId</asp:ListItem>
        </asp:DropDownList>
        <asp:TextBox ID="TextBox1" runat="server" EnableViewState="False">
        </asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="カートに入れる"
         OnClick="Button1_Click" />
        <br />
        <label for="TextBox2">CartItemId : </label>
        <asp:TextBox ID="TextBox2" runat="server" EnableViewState="False">
        </asp:TextBox>
        <asp:Button ID="Button2" runat="server" Text="カートから出す"
         OnClick="Button2_Click" /><br />
        <asp:Button ID="Button3" runat="server" OnClick="Button3_Click"
         Text="カートの中身を見る" />
        <asp:Button ID="Button4" runat="server" Text="カートをクリア"
         OnClick="Button4_Click" /><br />
    </div>
    </form>
    <br />
    <asp:Label ID="Label1" runat="server" EnableViewState="False">
    </asp:Label>
</body>
</html>
}}

//これより下は編集しないでください
#pageinfo(,2006-10-20 (金) 01:25:14,DOBON!,2006-10-20 (金) 01:25:14,DOBON!)
#pageinfo([[:Category/.NET]] [[:Category/ASP.NET]],2006-10-20 (金) 01:25:14,DOBON!,2006-10-20 (金) 02:17:30,DOBON!)

[ トップ ]   [ 新規 | 子ページ作成 | 一覧 | 単語検索 | 最終更新 | ヘルプ ]