カテゴリー別アーカイブ: EC-CUBE

EC-CUBE2.13系でページにブロックを読み込む

デザイン管理>PC>ページ詳細設定で編集するec-cubeの「ページ」に
作成したブロックをインクルードしたくて、できたのでメモ。

▼ページ詳細の中の好きな場所に

<!--{include file=`$smarty.const.TEMPLATE_REALDIR`frontparts/bloc/xxx.tpl}-->

これをいれればOK。「xxx.tpl」のところはブロックのファイル名にしてください。

 includeの記述はバージョンによって異なるみたい。

EC-CUBEで「複数のお届け先」機能を無効に

EC-CUBEのデフォルト機能「複数のお届け先」。これが、送料無料のときどうするかとかいろいろやっかい。
ならいっそこの機能を解除してしまえばいいじゃない。

管理画面から簡単に設定できる。

管理画面に入り、【システム設定】>【パラメーター設定】へ

USE_MULTIPLE_SHIPPING】のパラメーター値を【false】にするだけ。

20140607

以上

 

 

EC-CUBEでスマホ切り替えとかいらない場合

EC-CUBEはスマホでアクセスした場合自動でテンプレートがスマホ用に切り替わりますが、PCサイトをレスポンシブにしてたり、スマホでもPCサイトで見せたかったりする場合の対処方法。

【data/class/SC_Display.php】を編集

▼140行目あたり

    /**
     * 端末種別を判別する。
     *
     * SC_Display::MOBILE = ガラケー = 1
     * SC_Display::SMARTPHONE = スマホ = 2
     * SC_Display::PC = PC = 10
     *
     * @static
     * @param          $reset boolean
     * @return integer 端末種別ID
     */
    public static function detectDevice($reset = FALSE)
    {
        if (is_null(SC_Display_Ex::$device) || $reset) {
            $nu = new Net_UserAgent_Mobile();
            $su = new SC_SmartphoneUserAgent_Ex();
            if ($nu->isMobile()) {
                SC_Display_Ex::$device = DEVICE_TYPE_MOBILE;
            } elseif ($su->isSmartphone()) {
                SC_Display_Ex::$device = DEVICE_TYPE_SMARTPHONE;
            } else {
                SC_Display_Ex::$device = DEVICE_TYPE_PC;
            }
        }

↑ここで振り分けが行われているので、全部PC版で見せるなら
▼こんな感じにいらない部分をコメントアウト(//)しちゃう。

    /**
     * 端末種別を判別する。
     *
     * SC_Display::MOBILE = ガラケー = 1
     * SC_Display::SMARTPHONE = スマホ = 2
     * SC_Display::PC = PC = 10
     *
     * @static
     * @param          $reset boolean
     * @return integer 端末種別ID
     */
    public static function detectDevice($reset = FALSE)
    {
        if (is_null(SC_Display_Ex::$device) || $reset) {
            $nu = new Net_UserAgent_Mobile();
            $su = new SC_SmartphoneUserAgent_Ex();
//           if ($nu->isMobile()) {
//                SC_Display_Ex::$device = DEVICE_TYPE_MOBILE;
//            } elseif ($su->isSmartphone()) {
//                SC_Display_Ex::$device = DEVICE_TYPE_SMARTPHONE;
//            } else {
                SC_Display_Ex::$device = DEVICE_TYPE_PC;
//            }
        }

これでOK。

 

 

EC-CUBEの有料テンプレートレビュー

高いお金だしてテンプレートを買うべきかどうか悩んでいる方のために。

使ったことのある有料テンプレートのレビューを書いていきます~

でも基本的にはテンプレートって使わないほうがいいと思う。
いちばんの理由はプラグインと競合してしまうことが多いから!!

EC-CUBE初心者の完全に個人的な意見ですが、いいとこ・悪いとこ書いていきたいと思うのでちょっとでも参考になれば。

 

EC-CUBEレスポンシブWebデザインテンプレート  No.L0082

EC-CUBEレスポンシブWebデザインテンプレート No.L0082(2.13.0~2.13.1)

お値段なんと173,100円!

▼いいとこ

・いまどきのシャレオツなレスポンシブデザインをさくっと適用できます。
EC-CUBEってデフォルトのテンプレートがアレなので、お洒落なテンプレはやっぱり惹かれます。

・人気No.1らしい!(2014.05現在)

・レスポンシブなのでワンソースなので、スマホ版とか分けて作らなくてOK!楽!

・ボタン類がかわいい

・商品一覧がキレイ。

・そのまんま、なんのカスタマイズもしないで使うならいいプラグイン。

▼わるいとこ

・プラグイン競合多すぎ

カート周りなどもデフォルトとソースが違いすぎて、対応していないプラグインが多すぎる・・・
↓使えなかった主なプラグイン

のし対応プラグイン(無料) 
● 商品オプションプラグイン(37800円) 
● お届け先ごと送料無料プラグイン(2.13系)リンク先なし

↑こんな感じで結構よく使うプラグイン、特にカートから決済に進むステップで使うプラグイン系がダメ。
なぜならソースがデフォルトと違うから。カートの中身のページが特にHTMLの構造がデフォルトと異なりエラーでやすい。
プラグインの中身を自分で直せれば大丈夫なんだけど、大変。

・プラグインと競合してももちろんサポート範囲外。

17万も払っても「サポート範囲外です」とやさしい声で言われるだけ★
これは・・・仕方がないのか。。

ちなみに上記の「商品オプションプラグイン(37800円)」は、テンプレとぶつかったと言ったら無償で手直ししてくれました。すばらしい対応。神さま。

・カスタマイズするなら結局コードかかなきゃ

グローバルナビつけたり、バナー入れたり、なんかページ作ったりとカスタマイズすればするだけもちろん手間がかかる。
カスタマイズした部分のコードはあたりまえだけど自分でHTMLとCSS書いてレスポンシブ化しないといけない。
つまりレスポンシブサイトを作れる技術が必要。
そして、そんな技術があるのならこのテンプレートは不要。

▼結論

不要。

 

とっても辛口になってしまいましたが、実際使ってみての感想です。
今回はクライアント様がこのテンプレを購入していたため、仕方なく使いましたがも通常の工数の3倍以上かかった気がする・・・

でも、なんのカスタマイズもせずそのまま使いたいって方、あと、デザインは苦手だけどプラグインとか必要ないぐらいガリガリプログラミングできるって方にはいいかもです。

 

 

 他のテンプレートも随時(買ったら)レビュー予定。
でもたいして変わらないんだろうな~~なんて、テンプレート恐怖症な今日このごろです。

  5/30追記:
知人より、「そのテンプレート決済系モジュールともぶつかるよ」との情報をいただきました。
決済モジュールと競合するって・・・やばいじゃん。。
(決済サービスの会社さんのほうで修正してくれてなんとかなったそうです。)

 

EC-CUBEで郵便番号のDB登録がぜんぜんうまくいかないよ

何回やっても途中で止まってしまう・・・
タイムアウトしてしまう・・・どうしても住所自動入力のDB登録ができない!!

そんなときはプラグインに頼るのが一番。無料です。

ajaxzip3連携 for EC-CUBE 2.13

2.12系はこちら⇒ajaxzip3連携

0513

メリットもあるよ

ec-cubeの管理画面からのDB登録だと、郵便番号が変わるたびにDBを最新版に更新しなければならないのですが、このプラグインを使えば 最新化作業がまったく必要なし。

なのでDB登録よりこっちのほうが実はおすすめです。

 

 

 

 

 

EC-CUBEの住所自動入力のための初期設定

管理画面⇒基本情報管理⇒郵便番号DB登録

それかプラグインで対応←おすすめ

▼自動登録をクリック

0512ec-c

 

▼待つ

0512-ec

 

以上。

結構時間かかるときもあるけど、多分大丈夫。

どうしてもダメなときは

自動登録や手動登録といろいろ試してもどうしてもダメだ~って時には
プラグイン使ってしまうって手も。

というか、こっちのほうがおすすめ。

ajaxzip3連携 for EC-CUBE 2.13

2.12系はこちら⇒ajaxzip3連携

 

EC-CUBE管理画面で何かすると403エラー

解決:原因はWAF設定

サーバー側の「WAF設定」が原因でした。。
ちなみにサーバーはロリポップです。
コンパネにログインし、「WEBツール」⇒「WAF設定」で該当ドメインを無効にして解決。
(5~10分時間かかります。)

 

WAF設定とは

 http://lolipop.jp/waf/

ロリポップさんの上記ページによると、

WAF(ウェブアプリケーションファイアウォール)は、不正なアクセスによるサイトの改ざんや情報漏洩を防ぐ機能です。 不正なアクセスをブロックしあなたのサイトを守ってくれます。

とのこと。

とても素敵な機能ですが、なんかec-cubeとぶつかっちゃってたみたいですね。

 

 

EC-CUBEで管理画面のパスワード忘れ・・・

しばらく放置していたらすっかり管理画面へのログインパスワードを忘れてしまった・・・

パスワードをお忘れの方はこちら・・・みたいなのがあればいいのに。

手順1:LC_Page_Admin_Index.phpをいじる

data/class/pages/admin/LC_Page_Admin_Index.phpです。

※手順4で必ず戻してください!!忘れちゃダメ!!

▼70行目ぐらいに以下の記述があるので、

        switch ($this->getMode()) {
            case 'login':
                //ログイン処理
                $this->lfInitParam($objFormParam);
                $objFormParam->setParam($_POST);
                $this->arrErr = $this->lfCheckError($objFormParam);
                if (SC_Utils_Ex::isBlank($this->arrErr)) {
                    $this->lfDoLogin($objFormParam->getValue('login_id'));

▲私の環境だと74行目のこの1行を

▼以下のように修正

                if (!SC_Utils_Ex::isBlank($this->arrErr)) 

半角の「!」を入れるだけです。

 

手順2:アップロードして管理画面にアクセス

ログインフォームではIDもPWも適当に好きな文字を打ちます。
何入れてもログインできてしまうのです

2014-05-02_043518

手順3:ログインしたらパスワードを変更。

「システム設定」⇒「メンバー管理」

2014-05-02_043637

編集をクリックしてIDを確認してPWを再設定。

手順4:phpファイル戻しておく。

ログインできたことに浮かれてそのまま作業してはダメ。

手順1で行った修正を戻して、アップロードしておく。
忘れちゃダメ。

手順5:一応確認

心配性なので以下確認。

●ログイン画面から適当なID/PWでログインできないか
⇒入れちゃったら手順4をもう一度。

●手順3で再設定したID/PWでログインできるか
⇒できなかったら手順1からやりなおし。

 

めんどくさかった。ID/PWは忘れないようにちゃんと管理。

 

 

detail.tpl内で、商品の属するカテゴリ毎に条件分岐

EC-CUBEであるカテゴリに属する商品の商品詳細ページ(detail.tpl)でカテゴリ毎の条件分岐を行いたい

▼第一階層のカテゴリ(いちばんでかいカテゴリ)で分岐

<!--{if count($arrRelativeCat) > 0}-->
  <!--{if $arrRelativeCat.0.0.category_id == 8}-->
  カテゴリID8に属する商品詳細の場合に表示する内容
  <!--{else}-->
  それ以外
  <!--{/if}-->
<!--{/if}-->    

▼最終層のカテゴリ(いちばんちいさいカテゴリ)で分岐

<!--{if count($arrRelativeCat) > 0}-->
  <!--{assign var="num" value=$arrRelativeCat[0]|@count}-->
  <!--{assign var="num2" value=`$num-1`}-->
  <!--{if $arrRelativeCat.0.$num2.category_id == 20}-->
    いちばん小さいカテゴリID20に属する商品の場合に表示する内容
  <!--{elseif $arrRelativeCat.0.$num2.category_id == 25}-->
    いちばん小さいカテゴリID25に属する商品の場合に表示する内容
  <!--{else}-->
    それ以外
  <!--{/if}-->
<!--{/if}-->

参考サイト⇒http://ec-cube.nakweb.com/blog/947.html

ブロック内でif分岐

EC-CUBEのブロック内でif分岐をする方法をメモ

▼TOPページだけ表示させたい

<!--{if $smarty.server.PHP_SELF=="/index.php"}-->
表示させたい内容
<!--{/if}-->

▼else

<!--{if $smarty.server.PHP_SELF=="/index.php"}-->
TOPで表示したい内容
<!--{else}-->
その他のページで表示したい内容
<!--{/if}-->

▼TOP以外だけ表示させたい

<!--{if $smarty.server.PHP_SELF != "phpファイルのパス"}-->
TOP以外だけ表示させたい内容
<!--{/if}-->

▼まとめ

<!--{if $smarty.server.PHP_SELF == "phpファイルのパス(/products/detail.phpとか)"}-->

表示させたい内容

<!--{else}-->
その他ページで表示したい内容
<!--{/if}-->