131120-eccube

 オープンソースのeコマース「EC-CUBE」の管理画面「受注登録」のテンプレートを変更しても変わらないという問題があったので、その原因と対策を下記に明記しておきます。

 先日、「EC-CUBE」の改造依頼がありました。改造内容はいろいろあったのですが、その中に管理画面の改造がありました。場所は管理画面内で受注情報を管理している「受注管理」の中の編集画面「受注登録」のページです。アドレスは

http://(ドメイン)/admin/order/edit.php

になります。

 この受注管理のテンプレートは

/data/Smarty/templates/admin/order/edit.tpl

となり、このテンプレートの改造を行いました。できればこの部分の改造は行いたくなかったのですが、諸事情により変更しました。

 改造はローカル環境を作って、その中で改造を行い、完成したあと、既に稼働している環境へ改造ファイルをアップロードしました。その後、確認のため各ページを見ていくと、上記で変更した受注登録ページが変わっていません。

「あれ?」

と思い、もしかしたらアップロード忘れかと思ってもう一度アップロード。しかし、変わりません。その時「ふと」気がついたのが、EC-CUBEはテンプレートエンジン「Smarty」を使っています。Smartyではページの表示を高速化するためにキャッシュ機能があり、そのキャッシュが残っているのでは?と思って「/data/Smarty/templates_c/」ディレクトリ内ののファイル群を削除しました(ディレクトリの削除は行いません。詳細な方法は各自で確認願います)。

「よし、これでいいだろう」

と思って受注登録ページを確認すると・・・やっぱり変わっていません。その後、いろいろ確認したもののやっぱり原因がつかめないことから、ダメ元でグーグル先生に聞いてみました。

 その結果、原因は稼働しているEC-CUBE側だけに入っているカード決済モジュール「ペイジェント決済モジュール」が原因でした。このモジュールには受注登録のテンプレートが入っていて、このモジュールが入るとそのテンプレートを参照するようになっています。そのテンプレートの場所は

/data/downloads/module/mdl_paygent/templates/admin/order_edit.tpl

です。その為、こちらのテンプレートを同じように改造。こちらの改造もやりたくはないですが、致し方なく行いました。

 それにしてもテンプレートの場所が通常の場所と違うというのは如何なものでしょうか?これでは「テンプレート」としての意味がなさないと思うのですが・・・。まぁ、仕様と言われればそれまでなのですが・・・。変なの!

Netsphere Engineering

EC-CUBE 実践カスタマイズ

価格¥2,728

順位406,585位

株式会社クオーレ, 手塚 俊, 明山 圭輔, ほか

発行技術評論社

発売日2011/12/27

Amazonを開く

Supported by amazon Product Advertising API