Amazon Webサービスのショッピングカートボタンの仕様が変更。
Amazon Webサービスのショッピングカートボタンの仕様が変更になったようです。いつだったかつい先日どこかのサイトで「今後は新しいカートボタンを使用してくださいね。」と書かれていてコードサンプルのページへのリンクがしてありました。多分Amazonの掲示板だったとは思うんだけどその記事は発見できず。
昨日自分のサイトでカートボタンを使って購入しようとしてみたらエラーになりました。ひょっとしてSubscriptionIDもAccess Key IDが推奨になったように、カートボタンも新仕様が推奨になったのかなと思い置き換えてみました。
以前まで使われていたカートに入れるコードはこんな感じでした。
<form method="POST" action="http://www.amazon.co.jp/o/dt/assoc/handle-buy-box=Asin番号"> <input type="hidden" name="asin.Asin番号" value="1" /> <input type="hidden" name="tag-value" value="アソシエイトID" /> <input type="hidden" name="tag_value" value="アソシエイトID" /> <input type="hidden" name="dev-tag-value" value="Subscription ID" /> <input type="submit" name="submit.add-to-cart" value="Amazonで購入" /> </form>
新しいECS用のカートに入れるボタンのコードは次のようになります。
<form method="post" action="http://www.amazon.co.jp/gp/aws/cart/add.html"> <input type="hidden" name="ASIN.1" value="Asin番号" /> <input type="hidden" name="Quantity.1" value="購入個数" /> <input type="hidden" name="AssociateTag" value="アソシエイトID" /> <input type="hidden" name="SubscriptionId" value="Subscription ID" /> <input type="submit" name="add" value="Amazonで購入" /> </form>
今までのカートボタンだと1つの商品しか入れれませんでしたが、新仕様のコードですと複数の商品をカートに追加できたりします。例えば次のように。
<form method="post" action="http://www.amazon.co.jp/gp/aws/cart/add.html"> <input type="hidden" name="ASIN.1" value="B000BOKJGU" /> <input type="hidden" name="Quantity.1" value="1" /> <input type="hidden" name="ASIN.2" value="B000BGOE0K" /> <input type="hidden" name="Quantity.2" value="1" /> <input type="hidden" name="AssociateTag" value="アソシエイトタグ" /> <input type="hidden" name="SubscriptionId" value="Access Key ID" /> <input type="submit" name="add" value="Amazonで購入" /> </form>
この場合はドラゴンボール劇場版BOX(ASIN:B000BOKJGU)とごくせんDVD-BOX(ASIN:B000BGOE0K)を各1個づつカートに入れます。
<input type="hidden" name="ASIN.1" value="B000BOKJGU" />
が1つ目の商品のASIN番号を
<input type="hidden" name="Quantity.1" value="1" />
が1つ目の商品の購入個数を表します。複数商品を同時にカートに入れる場合はASIN.x、Quantity.xをフォームに追加してあげてください。
当サイトで配布していたテンプレキットの修正箇所
当サイトで以前配布していたテンプレキット(AWS3.0版、ECS4.0版)での修正箇所を挙げておきます。まずECS4.0を利用したキット。
<!-- カートボタンの表示 -->
<xsl:template name="BuyButton">
<xsl:param name="Asin" />
<form method="POST" action="http://www.amazon.co.jp/gp/aws/cart/add.html">
<input type="hidden" name="ASIN.1" value="{$Asin}" />
<input type="hidden" name="Quantity.1" value="1" />
<input type="hidden" name="AssociateTag" value="{$AssociateTag}" />
<input type="hidden" name="SubscriptionId" value="{$SubscriptionId}" />
<input type="submit" name="addt" value="Amazonで購入" />
</form>
</xsl:template>
AWS3.0版は次のようになります。
<!-- カートボタンの表示 -->
<xsl:template name="BuyButton">
<xsl:param name="Asin" />
<form method="post" action="http://www.amazon.co.jp/gp/aws/cart/add.html">
<input type="hidden" name="ASIN.1" value="{$Asin}" />
<input type="hidden" name="Quantity.1" value="1" />
<input type="hidden" name="AssociateTag" value="{$t}" />
<input type="hidden" name="SubscriptionId" value="{$dev-t}" />
<input type="submit" name="addt" value="Amazonで購入" />
</form>
</xsl:template>
まぁ、コード自体は同じものですがAWS3.0とECS4.0のキットでは使用した変数名が違うものになっていますからその部分だけ違うだけです。
コメント
テンプレキットにはいつもお世話になっています。配布休止になってしまったので、もう変更点等のフォローはしてもらえないかと心配していましたので、今日の記事はとってもうれしかったです。
が……。
エラーになってしまって上手くいきません。
<!-- カートボタンの呼び出し -->
<xsl:if test="aws:Offers/aws:Offer/aws:OfferListing/aws:Price/aws:FormattedPrice">
<xsl:call-template name="BuyButton">
<xsl:with-param name="Asin" select="aws:ASIN" />
</xsl:call-template>
</xsl:if>
の部分に何らかの変更が必要なんでしょうか?
よろしくお願いします。
転勤ママ (2005-10-31 00:24)
転勤ママさん>
こんにちわ。記事修正しました。すっかりテンプレキットの最後のVersionとかはカートボタンをつけたのを忘れてて、古いVer用にカートを付けるコード載せてました。
といってもホンの一部分が違うだけになりますが。。。
書き直した記事のコードに修正して試してください。よろしくお願いします。
101@管理人 (2005-10-31 17:57)
ありがとうございます。無事動きました!
転勤ママ (2005-11-02 18:58)