« 今さらIE6のバグに悩まされる | メイン | 「URLエンコード デコード」するツール »

AWSで「ショッピングカートに入れる」使用時にマーチャントの商品が入らないようにする方法

[追記]
っていうか、こんなに必死に書いたのに、思いっきりAmazon WebサービスでHTML カートフォームを使う場合の注意点。 - zerosp.blogに書いてあるじゃん。見事に丸かぶり。


AWS(Amazon.co.jp Webサービス)を利用していろいろやっているわけですが、ショッピングカートを使うときに注意すべきところを忘れないために記録しておこう。

AWSなどで「ショッピングカートに入れる」を使っている人は、ヘルプ - Amazon.co.jp アソシエイト・セントラルを参考にしている場合が多いと思うのですが、このページの通りに「ショッピングカートに入れる」ボタンを作ると微妙に不都合が出てきます。(AWSで作ったページの構成によるので、不都合ととれない場合もある。)

――心の声
Amazon.co.jp が使いにくくなった」でも指摘している通り、現在のAmazon.co.jpは、Amazon.co.jpが販売する商品よりマーチャント(正確にはマーチャント@Amazon.co.jp)の商品が安い場合、マーチャントの商品が一番上に表示されます。このちょっといただけないシステムがさまざまなところに影響を与えていて――rag2ch blog - 販売元がAmazonじゃない『ショッピングカートに入れるボタン』の表示を弄るでも指摘されている――Amazon.co.jp全体をわかりづらいものにしてしまっている。(細かい注意書きが増えたり、送料やポイントに関することがわかりにくくなったりしていて…。ショッピングモール的にするならするで、もう少しデザインを考えたほうが良いのではと思わされる。日本向きではないような。)
――

心の声を踏まえて話を戻すと、先ほど挙げた通り「ショッピングカートに入れる」を作った場合、その時点で一番安い価格をつけているショップの商品がショッピングカートの中に入ります。Amazon.co.jpとしては、自分のサイト(Amazon.co.jp)と同じ動きをするこの動作がベストなのでしょう。

ところが、AWSを利用してショッピングサイトを運営している多くのサイトでは、価格表示はAmazon.co.jpの価格が表示され、いざ、「ショッピングカートに入れる」をクリックすると表示されていた価格とは違う価格でショッピングカートに追加しようとしてしまいます。

通販くらべ
ショッピングカートに入れる
(現在、通販くらべでは表示価格の商品がカートに入るように変更済み)

大手のAWS利用サイトでも、ほとんどが上の例のような動きをします。
誰が悪いという話ではなく、表示されている価格だと思ってカートに入れたら違う価格だったという気持ち悪いことになるということです。さらに言えば、Amazon.co.jpで買うつもりが違うショップで買うことになるし、送料、ポイント(ry

それで、私がAWSのエイの字も知らない頃から参考にさせていただいているzerosp.blogさまのAmagalyを拝見したところ、こちらはきちんと表示価格の商品がそのままショッピングカートに入る仕様になっているようなので、ソースコードを参考にさせていただきました。

変更前
<form method="get" action="http://www.amazon.co.jp/gp/aws/cart/add.html" target="_blank">
<input type="hidden" name="ASIN.1" value="B000FGNM6I">
<input type="hidden" name="Quantity.1" value="1">
<input type="hidden" name="AssociateTag" value="akitomoweblog-22">
<input type="hidden" name="SubscriptionId" value="your_subscription_id">
<input type="image" name="submit.add-to-cart" src="http://rcm-images.amazon.com/images/G/09/extranet/associates/buttons/remote-buy-jp1.gif" alt="amazon.co.jp で買う">
</form>

変更後
<form method="post" action="http://www.amazon.co.jp/gp/aws/cart/add.html" target="_blank">
<input type="hidden" name="OfferListingId.1" value="OfferListingId">
<input type="hidden" name="Quantity.1" value="1">
<input type="hidden" name="AssociateTag" value="storeid-22">
<input type="hidden" name="SubscriptionId" value="your_subscription_id">
<input type="image" name="submit.add-to-cart" src="http://rcm-images.amazon.com/images/G/09/extranet/associates/buttons/remote-buy-jp1.gif" alt="amazon.co.jp で買う">
</form>

OfferListingIdは、AWSを呼び出すときにResponseGroupにOffersやOfferFullを指定すれば、
Offers -> Offer -> OfferListing -> OfferListingId
で取得できます。

Amazon Web サービス ブログ: [日本語訳]カートを作成して商品を追加するにも書いてありました。


これで、何となく気持ち悪い感じから開放され、すっきりしました。

ただ、ほかのAWS利用サイトのようにASINを指定する方法(変更前の状態)でも、基本的に表示価格より安くなるので――とくにマーケットプレイスの価格を表示していない場合などは、より安い価格で購入できる変更前のソースでも良いのかも。ただし、Amazon.co.jpの販売が「商品が入荷次第~~」ってなってる商品は要注意で、ショッピングカートに入れようとしたらプレミア価格で超高額になっている場合があります。

トラックバック

このエントリーのトラックバックURL:
http://akitomo.net/mtype/mt-tb.cgi/1199

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2008年04月15日 02:31に投稿されたエントリーのページです。

ひとつ前の投稿は「今さらIE6のバグに悩まされる」です。

次の投稿は「「URLエンコード デコード」するツール」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。