EC-CUBEのカスタマイズ

EC-CUBEは、オープンソースで配布をされていて、大変人気のあるECサイト(ネット通販サイト)構築パッケージとして有名なパッケージですので、今更、詳しい説明は不要と言えるほど多くのサイトで利用をされています。

一般的なPHPプログラムですので、カスタマイズをすれば自由に使えるのですが、「簡単にECサイトを作りたい」ということでEC-CUBEを選択された方の中には、PHPが分からない方も多いのではないのでしょうか。

しかし、簡単なカスタマイズであれば、それほど難しいことはありません。

そこで、今回はわずか2つではありますが、EC-CUBEのカスタマイズをとしてニーズがありそうな項目についてご紹介したいと思います。

商品リストページ・商品詳細ページのURLを静的URL化する

googleクローラはパラメータ化されたURLをちゃんと認識してくれるようになっていますが、運用をしていく中で、EC-CUBEから他のシステムに入れ替えた場合などは、URLが変更になる可能性があります。

せっかくクローラがキャッシュしてくれたものがリセットされてしまうのは、サイト運営にとってマイナスになります。

そこで、どのようなシステムになった場合でも、同一のURLとなるように、商品一覧ページや商品詳細ページを、静的URL表記へと変えておきましょう。

修正するファイル:/.htaccess

下記の内容を追記します。

RewriteEngine on

RewriteRule ^list\/([0-9]+)\.html$ /products/list.php?category_id=$1

RewriteRule ^products\/([0-9]+)\.html$ /products/detail.php?product_id=$1

これで、/list/5.html へアクセスすると、/products/list.php?category_id=5 のリストページが表示されることになります。
また /products/3.html へアクセスすると、/products/detail.php?product_id=3 の商品詳細ページが表示されます。

RewriteRule の後の ^list/ や ^products/ は任意の文字にする事が出来ますので、他のディレクトリとして設定することも可能です。

 

売り上げ集計の「キャンセルデータ」を集計しない方法

EC-CUBEでは、管理画面で売り上げをキャンセルした場合でも、売り上げ集計には反映されないという仕様のようです。

検索をすると「dtb_bat_order_daily」「dtb_bat_order_daily_age」「dtb_bat_order_daily_hour」の3つのテーブルの情報を消去することで集計情報がリセットされるようなので、集計が始まるときに自動的にテーブル情報を削除して、売り上げ集計の情報に矛盾が生じないようにします。

修正するファイル:/data/class_extends/admin/total/LC_Page_Admin_Total_Ex.php

修正前

function process() {

parent::process();

}

修正後

function process() {

$objQuery = new SC_Query();

$objQuery->delete(“dtb_bat_order_daily”);

$objQuery->delete(“dtb_bat_order_daily_age”);

$objQuery->delete(“dtb_bat_order_daily_hour”);

parent::process();

}

EC-CUBEは、カスタマイズすることで、様々な機能を追加することが出来ますし、プラグインで拡張が可能ですので、このようにプログラムを触ることなどはないかも知れませんが、ご参考になれば幸いです。

コメントを残す

このページの先頭へ