楽天と言えば有名なショッピングモールの一つです。楽天で買い物をした事がある方もいらっしゃるでしょう。
ネットショップで買い物をする場合、商品ページを見て内容に納得してほしいと思ったら「カートに入れる」ボタンを押すのが普通の流れだと思います。しかし、楽天の場合「カートに入れる」ボタンが html のフォームのデフォルトのボタンで凄く地味です。しかも周りに似たようなボタンもあって分かりづらいです。しかし、楽天ショップの標準機能ではカートボタンを変える事ができません。
出店側も買う側もかなりの利用者がいる楽天なのに、カート回りのカスタマイズが貧弱なのが困りものです。
しかし、数ある楽天ショップの中ではカートを入れるボタンに画像を利用している所もしばしば見かけます。楽天の標準機能にない事をどうやって実現しているのか?
目次
楽天の商品ページのカートボタンを画像にする
楽天の標準機能にないので、CSS で無理やりカートボタンを画像にしているのです。
カートボタンを画像にする事によって、カートボタンが人目でわかり多少はクリックされやすくなって販売促進にもつながるはずです。カートにどうやって入れたらいいかわからないという人もいなくなるでしょう。今回はその方法を紹介します。
いきなりですがまずは CSS を御覧ください。
input[value="買い物かごに入れる"]{ background:url("画像URL"); width:265px; height:55px; text-indent:-9999px; border:none; cursor:pointer; margin-top:8px; } input[value="買い物かごに入れる"]:hover{ opacity:0.8; }
各種解説
input に CSS を適用すると全部のボタンの画像が変わってしまいます。そこで識別するために[value="買い物かごに入れる"]を追加しています。こんな指定方法見たことない人もいるかもしれません。
通常要素に CSS を適用するにはクラスか ID を指定します。しかし、楽天のカートボタン付近の html ソースを見るとわかりますが、カートに入れるボタンにはクラスも ID も指定されていません。代わりに value が指定されています。
input タグの中でも value に「買い物かごに入れる」が指定されている input ボタンに CSS を適用するという指定方法になります。
background でボタンの画像を指定、width と height で画像の幅と高さを確保します。「cursor:pointer;」ではマウスポインタを画像の上に載せた時にポインタを指にします。margin でボタン周りの余白を指定して見やすくしましょう。
hover の擬似クラスでは、マウスポインタをボタン上に載せた時、画像を薄くする指定をしています。よくありますね。
cssファイルを商品ページに読み込ませる方法
css を書いたはいいが、どうやって商品ページに css を読み込ませればいいのかという話になります。通常は、link タグで外部 css を読み込ませますね。
読み込ませる場所は、楽天 RMS のデザイン設定の「ヘッダー・フッター・レフトナビ」という項目のヘッター部分に css を読み込ませる link タグを読み込ませれば OK です。以下の様なものです。
<link rel="stylesheet" href="style.css" type="text/css" media="screen" />
CSS は GOLD スペースにアップロードして絶対パスで指定しましょう。
2015年10月、全店舗カートボタン画像共通化へ
2015年10月、楽天全店舗のショッピングカートボタンが楽天独自のものに共通化されました。上の画像の赤いボタンがそうです。個人的には今更かと思う程の遅い対応です。
しかし、ショッピングカートボタンが標準の店舗のみ画像になるのなら良いのですが、ご丁寧に既に店舗でショッピングカートボタンを独自カスタマイズしている店舗までまるっと上書きする対応です。
CSS を調べてみると以下のようになっています。
div#rakutenLimitedId_aroundCart input.rCartBtn, div#rakutenLimitedId_aroundCart input.rCartBtn[type="submit"]{ background-image: url(http://image.rakuten.co.jp/com/img/rms/storefront/pc/page/btn01_212x68.png) !important; background-position: 0 0 !important; background-color: transparent !important; width: 212px !important; height: 34px !important; border-style: none !important; color: rgba(0,0,0,0) !important; text-indent: 200% !important; display: inline-block !important; white-space: nowrap !important; overflow: hidden !important; padding: 0 !important; margin: 10px 0 0 0 !important; border-radius: 3px !important; font-size: 100% !important; box-shadow: none !important; float: initial !important; filter: none !important; background-size: 100% !important; line-height: 1 !important; -webkit-transition: initial !important; transition: initial !important; vertical-align: initial!important; }
!important が使われています。これは、CSS を優先的に適用する設定です。その為、店舗独自でカスタマイズしていても楽天の CSS が優先的に適用されてカスタマイズが無効になってしまうのです。
楽天ショップでカートボタンを変更するなと言いたいのかと思いきや、変更が規約違反などという表記も見当たらないので楽天独自のカートボタンを更に上書きする方法を模索してみました。
2015年末版、カートボタンを画像にする方法
div#rakutenLimitedId_aroundCart input.rCartBtn, div#rakutenLimitedId_aroundCart input.rCartBtn[type="submit"]{
1行めのこの記述を
body div#rakutenLimitedId_aroundCart input.rCartBtn, body div#rakutenLimitedId_aroundCart input.rCartBtn[type="submit"]{
このように変更して各店舗の Gold スペースにアップしている CSS に追記します。この中に店舗独自のショッピングカートボタンのカスタマイズを記入します。
違いは body が追加されている所です。CSS はより細かくセレクタを指定している方を優先するという特性を利用しています。body を付ける事によって楽天側の CSS より細かくセレクタを指定しています。
おわりに
楽天ショップに携われている方で、ボタンが標準のままであるのならやってみる価値はあると思います。