Amazon のカートに入れる機能の仕様が変更?

Amazon Search のユーザさんからの報告で知ったのですが、最近(昨日?) Amazon のカートに入れるの仕様が変更された模様。ネットで検索して見つかるカートに入れるって言う FORM の書き方では恐らく下記のようなエラー画面が表示されると思います。

aws_err.jpg

AWS3 や ECS 4 を活用した Amazon アフィリエイト系のサイトをざっくり眺めてみましたが、軒並みカートに入れる機能がエラーになることを確認しました。Goodpic さんのところの G-Tool は正常動作しているようです。

- スポンサーリンク -

さて、もう少し具体的に説明すると、現在カートに入れる機能を実装するために下記のような FORM を用意している方が多いと思います。

<form method="POST" action="http://www.amazon.co.jp/exec/obidos/dt/assoc/handle-buy-box=[ASINを記述]">
<input type="hidden" name="asin.[ASINを記述]" value="1">
<input type="hidden" name="tag-value" value="[Associates IDを記述]">
<input type="hidden" name="dev-tag-value" value="[Developer Tokenを記述]">
<input type="submit" name="submit.add-to-cart" value="カートに入れる">
</form>

多分、昔の Amazon のサイト上の html を解析してこのような FORM のインタフェースにすればカートに入るじゃん!って感じで実装したと思うのですが(ちょっと自分の記憶もアヤシイです・・・)、今現在の Amazon のカートに入れるの FORM の仕様を確認してみると全然違っていることに気が付きました。

で、G-Tool さんの実装方法を見てみると、ECS 4 互換な FORM を作成してデータを飛ばしているようです。具体的には下記のような FORM です。

<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="[Associates IDを記述]">
<input type="hidden" name="SubscriptionId" value="[Developer Tokenを記述]">
<input type="submit" name="submit.add-to-cart" value="カートに入れる">
</form>

ECS 4 のAPI マニュアルの 「CartAdd の説明ページ」 には次のようなリクエストを飛ばせばカートに入れるが実装できるって記述されています。上記の書き方はこの REST-API に似てますよね。

Using CartAdd (REST)

This example demonstrates how CartAdd can be used to add an ASIN to a remote shopping cart.

http://webservices.amazon.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=[Your Access Key ID Here]&Operation=CartAdd&CartId=[A Cart ID]&HMAC=[An HMAC Shopping Cart Token]&Item.1.ASIN=[An ASIN]&Item.1.Quantity=1

まぁ何にしても、上記の FORM に変更すればカートに入れる機能が復活しますよってことで!
※それにしても、いつから動かなくなっていたんだろう・・・。一時的なモノかもしれませんが、新しい書き方の方が良さそうです。

ご報告してくれた 不破雷蔵 さん、有り難うございました。
Amazon Search の結果も古いキャッシュがクリアされ次第、順次カート機能を改善したものに変更されていきますので、今しばらくお待ち下さい。

- スポンサーリンク -