リアルコマース スタッフブログ

Real Commerce株式会社スタッフブログ

CLOSE

makeshop 「名入れ」とカートの数量についての仕様についての重要なポイント

makeshopのカートページの仕様について

チケット販売やジュエリー、アクセサリなどの販売で必要になる「名入れ」ですが、makeshopではこの名入れを利用する際、気を付けないといけない事があります。

名入れ商品を販売する全てのサイトで知っておかなければならない事ですので、ご確認ください。

makeshopでは、「名入れ商品をカートに入れた際、ユーザがF5やCtrl + R、もしくはブラウザでリロードした際、再度同じ商品を購入した事になる」というクソ仕様があります。(数量の修正とは異なりますので注意!)

更新を行った際にはブラウザに「フォームデータを再送信すると以前実行した検索、投稿や注文などの処理が繰り返されます」という風にアラートが出ます。

具体的には、「名入れ商品が1つカートに入っている状態でユーザがページを更新をすると、その名入れ商品が1つ自動でカートに追加されて2つになりますよ」。という意味なのですが、これはユーザにとってはとても不親切で、はっきり言って一般ユーザーには何のことだかさっぱり分からない表現だと思います。しかもよく考えればとても恐ろしいことを言っている事も分かりますよね。

更に都合が悪いことに、名入れ商品が複数個入っていた場合、仮に4個入ってる状況で、ユーザが4個を3個に減らして更新を行った場合、makeshopではその商品を「-1個購入」したと判断します。
このデクリメント(数を減らす)処理を繰り返した場合、合計金額がマイナスになってしまいます。

makeshopでは0円以下の購入は出来ない事になっていますので、結果的に合計金額が0円やマイナス円の商品は購入できないのですが、ユーザに対して不安を強く与えかねません。

キー操作で更新させないようにする

仕様のところはぐっと我慢して、単にブラウザでの更新操作を行わせなければ良いというのが、1つの解決方法ではないでしょうか。

つまり、F5やCtrl+Rなどの処理をさせず、ブラウザのツールバーを出さないようにするのが最良だとは思うのですが、ツールバーが出ないとそれはそれでまたユーザに不安を与えかねませんので、F5とCtrl+Rの動作を禁止します。

ブラウザの更新をさせないスクリプトはネット上探せば幾つも出てきます。

document.onkeydown = function (e){
	if(!e) e = window.event;
	if( (e.keyCode == 116) || (e.ctrlKey && (e.keyCode == 82)) ){
		if(e.preventDefault){
			e.preventDefault();
      
		}else{
			e.keyCode = 0;
			return false;
		}
	}
};

出典:http://hakuhin.jp/js/key_board.html

貼り付け場所は、管理画面→独自デザイン→内部ページ編集2→買い物かごページです。

htmlの一番下にペーストして、実際にF5で更新が出来なければOKです。
あとは、どうやったら修正ボタンをクリックしてくれるのかに集中してください。

この記事をシェアする