EC CUBEで困ってしまったところをまとめてみた。

個人的にEC CUBEを使ってて気になった点を改造した。

カテゴリごとに表示を切り替えるという定番のカスタム。

<!--{if $arrSearchData.category_id == 1}-->
カテゴリ1の場合に表示する内容
<!--{elseif $arrSearchData.category_id == 2}-->
カテゴリ2の場合に表示する内容
<!--{elseif $arrSearchData.category_id == 3}-->
カテゴリ3の場合に表示する内容
<!--{elseif $arrSearchData.category_id == 4}-->
カテゴリ4の場合に表示する内容
<!--{elseif $arrSearchData.category_id == 5}-->
カテゴリ5の場合に表示する内容
<!--{elseif $arrSearchData.category_id == 6}-->
カテゴリ6の場合に表示する内容
<!--{else}-->
<!--{/if}-->

こんな感じで設定していけばそれぞれのカテゴリIDを指定して画像だとかなんだとかを設定できるよ。
もちろんスライダーなんかも。

マトリクス表示プラグインで困ったことになった件

なんか通常価格は元々税込みで入力したい、
そして販売価格は消費税抜きで入力したいということになった。

ということで、
/data/downloads/plugin/BbDetailMatrixView/templates/detail_matrix_view.tpl
を改造することにした。

<td>
&yen;<!--{if $arrProduct.price02_min_inctax == $arrProduct.price02_max_inctax}-->
<!--{$arrProduct.price02_min_inctax|number_format}-->
<!--{else}-->
<!--{$arrProduct.price02_min_inctax|number_format}-->~<!--{$arrProduct.price02_max_inctax|number_format}-->
<!--{/if}-->
</td>

に直して完成。簡単でした。

大きい画像をアップした時に自動で画像をリサイズしてくれる機能が適当な件

大きい画像をアップすると自動でリサイズしてくれるのはありがたいんだけど、品質があまり高くない模様。
これを解決するために、ちょっとカスタムします。

/data/module/gdthumb.php

この部分を探っていきます。

imageJpeg($dst_im, $dst_file);

で検索するときっとヒットすると思うので、

imageJpeg($dst_im, $dst_file, 90);

このように直します。

検証してないけど、これできっと画質がアップするはず。
これによりIJG 品質値(75)でリサイズされていたものを品質90に変更します。
90以上でもあんまり変わらないのかな?面倒なので検証しませんが。。

スマホのページで商品詳細のサブ画像がボケる件

data/Smarty/templates/smartphone/products/detail.php

ココらへんをいじっていきますね。

<li id="mainImage<!--{$smarty.section.cnt.index+1}-->">
                <!--{if $arrProduct[$lkey] != ""}-->
                    <a rel="external" class="expansion" href="<!--{$smarty.const.IMAGE_SAVE_URLPATH}--><!--{$arrProduct[$lkey]|h}-->" target="_blank">
                    <img src="<!--{$smarty.const.IMAGE_SAVE_URLPATH}--><!--{$arrProduct[$lkey]|h}-->" alt="<!--{$arrProduct.name|h}-->" width="<!--{$arrFile[$key].width/$sub_image_factor}-->" height="<!--{$arrFile[$key].height/$sub_image_factor}-->" /></a>
                <!--{else}-->
                    <img src="<!--{$smarty.const.IMAGE_SAVE_URLPATH}--><!--{$arrProduct[$lkey]|h}-->" alt="<!--{$arrProduct.name|h}-->" width="<!--{$arrFile[$key].width/$sub_image_factor}-->" height="<!--{$arrFile[$key].height/$sub_image_factor}-->" />
                <!--{/if}-->
                </li>

っていう風に変更しました。
これで、拡大画像が最初から表示されている状態になります。
なので、サブ画像としてサムネイル表示されていたものが置き換わりました。

これで少し重くなるのかなあと思ったんですが、そうでもないみたいですね。

お客様に送るメールテンプレートを追加したのにいざ送ろうとすると本文が真っ白

順番を絶対に間違えないように。間違えても治す方法はあるんだけど面倒なので割愛。

1)EC-CUBE管理画面の システム設定>マスターデータ管理に移動。

2)mtb_mail_template
を選ぶ。

3)追加のデータにIDと値を入力
ここでIDは現在使われていない数字を入れる。多分デフォルトでは6まで使われてるから7とかね。
値には今回は「発送のお知らせ」と入れました。
デフォルトでは発送のお知らせのメールが入ってないんだ。

4)EC-CUBE管理画面の システム設定>マスターデータ管理に移動。
mtb_mail_tpl_path
を選ぶ。

2)追加のデータにIDと値を入力
ここでIDは先ほど使った値を入力して下さい。
値には使いたいテンプレートのアドレスを入れてください。
今回は注文確認と同じ内容のテンプレートを使いまわすので
”order_mail.tpl” を使います。

これだけで基本情報管理>メール設定に移動
するとちゃんとテンプレート入力できましたー!!!!!!!!!

けど、いざ送ろうとするとメールの確認画面で本文が表示されない事になってしまった。
なので、

data/Smarty/templates/使ってるテンプレートファイル/mail_templates
のorder_mail.tplをコピーしてdeliv_mail.tplを作って、mtb_mail_tpl_pathから
設定しなおしたらなぜか動いた。
コピーしただけなのに。

帳票のデフォルトメッセージの変更方法

/data/class/SC_Fpdf.php と思ったんですがこれだけを変更しても何故か変更できなかったので
/data/class/pages/admin/order/LC_Page_Admin_Order_Pdf.php を変更したら変更できました。

ただ、文字が長すぎるとPDFそ生成すらできなくなるようです。

帳票のPDFが出力されなくなっちゃった場合は、これを疑ってみるべき。

いろんなページでログイン判定ができていない

商品一覧のページはログイン判定が元々搭載されていないので、サイドバーとかに
ログイン後しか表示しないものや、ログアウト後にしか表示しないものを設定したブロックを作ってもなんだか反映されないよ。

なので、
/data/class/pages/products
に、

    // ログイン判定
	$objCustomer = new SC_Customer_Ex();
	if ($objCustomer->isLoginSuccess() === true) {

	}

を追加しました。
147行目辺りです。
上記のコードは、

当サイトについて
/data/class/pages/abouts/LC_Page_Abouts.php

のページもやっておきましょう。

TOPページでも同じなので、
/data/class/pages/LC_Page_Index.php
に、

    /**
     * Page のアクション.
     *
     * @return void
     */
    function action() {
        $this->tpl_title = '';
        $objCustomer = new SC_Customer_Ex();
        $this->isLogin = $objCustomer->isLoginSuccess(true);
        
        // ログイン判定 
		  $objCustomer = new SC_Customer(); 
		  if($objCustomer->isLoginSuccess()) { 
		    $this->tpl_login = true; 
		  } 
    }

を追加しました

上記のコードは
お問い合わせ
/data/class/pages/contact/LC_Page_Contact.php
/data/class/pages/contact/LC_Page_Contact_Complete.php

特定商取引に関する表記
/data/class/pages/order/LC_Page_Order.php

プライバシーポリシー
/data/class/pages/guide/LC_Page_Guide_Privacy.php

に使えます。

コメントを残す