EC-CUBEの小技:カゴに入れるボタンで精算画面に遷移しない方法

ECCUBEだけでなく、楽天等の一般的なECサイトでは、購入ボタンを押すと、すぐに精算させられそうになります。
商材によっては、そのほうがよかったりもするのですが、自作のECサイトとなれば、手間を取らせてさっさと精算されては困るという事情があるでしょう。

精算画面に遷移させると、時間にして3秒、1クリック分の労力。
これを省き、使いやすいECサイトを目指す小技を紹介します。

そういうわけで、前回作ったスクロールする買い物カゴと連携させるので、良かったらその分もお読みください。
この記事は最終更新日から1年以上が経過しています。

修正は商品詳細ページと商品一覧ページ関連のPHPの2箇所

4月4日 修正しました。
まずは商品一覧ページから
/data/class/pages/products/LC_Page_Products_List.php の189行目から

// 入力内容のチェック 
$arrErr = $this->lfCheckError($target_product_id, $this->arrForm, $this->tpl_classcat_find1, $this->tpl_classcat_find2);
  if (empty($arrErr)) {
    $this->lfAddCart($this->arrForm, $_SERVER['HTTP_REFERER']);
    SC_Response_Ex::sendRedirect(CART_URLPATH);
    exit;
       ↓以下のように変更
// 入力内容のチェック 
$arrErr = $this->lfCheckError($target_product_id, $this->arrForm, $this->tpl_classcat_find1, $this->tpl_classcat_find2);
  if (empty($arrErr)) {
      $this->lfAddCart($this->arrForm, $_SERVER['HTTP_REFERER']);
      //SC_Response_Ex::sendRedirect(CART_URLPATH);
      // exit;

次に商品詳細ページ
/data/class/pages/products/LC_Page_Products_Detail.php の160行目から

SC_Response_Ex::sendRedirect(CART_URLPATH);
exit;
   ↓以下のように変更
//SC_Response_Ex::sendRedirect(CART_URLPATH);
//exit;

以上です。
手元の環境でテストしてみて下さい。
ページがりロードされて、商品が一つ増えるはずです。

ちなみに、上記の修正がなぜああなのか、という説明はできません。
わからないのに弄っているのが、僕という状態ですので。

不満点と改善案

完成といっても、素人仕事なので不満がいくつかあります。

1.購入後、同ページを更新すると、商品が一個追加されてしまう。
2.カゴに入れた瞬間に、ガタつくような動きが買い手を不安にさせてしまう。
3.右側に中身の見える買い物カゴがあるとは言え、カゴに入ったという確かな表記が足りない。

自分としては、この3点を直したいとは思ってますが、やり方がわかりませんね。
改善後の姿は、想像はついているんです。

それが有名なオフィス用品のアスクルです。
オフィス用品 通販 – アスクル(askul)

ここで買い物してもらえばわかるとおもいますが、精算画面に遷移せず、カゴに商品を入れるとホワっと画像が出て安心させてくれ、尚且つ、なだらかに買い物が進められる。
理想です。
これと同じ機能がつけられれば、多少売り上げには貢献できると思うのですが、いかんせん腕が足りません。

おいおいわかってくるでしょう、とは思ってますが、知っている方がいましたら、どなたか教えて頂きたく、お願いしておきます。

以上です。
未完としておきます。

ブログ運営

株式会社ちょもらんま

https://qomolangma.jp