EC-CUBE
4.0.5
サーバーOS
Linux xserver.jp
DBサーバー
MySQL 10.5.11-MariaDB-log
WEBサーバー
Apache
PHP
7.4.13

ファビコンを変更

<link rel="icon" href="/html/user_data/assets/img/common/favicon.ico">

FTPでダイレクトに置き換え

EC-CUBE
4.0.5
サーバーOS
Linux xserver.jp
DBサーバー
MySQL 10.5.11-MariaDB-log
WEBサーバー
Apache
PHP
7.4.13

コンテンツ管理>ブロック管理>ロゴ

logo.twig

<div class="ec-headerTitle">
    <div class="ec-headerTitle__title">
        <h1>
            <a href="{{ url('homepage') }}">
                {{ BaseInfo.shop_name }}
            </a>
        </h1>
    </div>
</div>

コンテンツ管理>CSS管理

/* カスタマイズ用CSS */
.ec-headerTitle .ec-headerTitle__title a {
    font-family: "Book Antiqua", Palatino, "Palatino Linotype", "Palatino LT STD", Georgia, serif;
    font-size: 32px;
    font-style: normal;
    font-variant: normal;
    font-weight: normal;
    color: #1F4E79;
}
.ec-headerTitle .ec-headerTitle__title a span {
    font-size: 37.34px;
    color: #2E75B6;
}

参考

[ JavaScript ] フォントサイズ変換(pt↔px)

EC-CUBE
4.0.5
サーバーOS
Linux xserver.jp
DBサーバー
MySQL 10.5.11-MariaDB-log
WEBサーバー
Apache
PHP
7.4.13

現象

Chromeのデバッガーで『Access to CSS stylesheet at ‘https://use.fontawesome.com/releases/v5.3.1/css/all.css’ from origin ‘https://xxx.jp’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.』というエラーが出る。
で、当然のことながらアイコンが出ない。

解決

/xxx.jp/public_html/.htaccess

SetEnvIf Origin "^https?://(www\.)?(fontawesome.com)$" ORIGIN=$0
Header set Access-Control-Allow-Origin %{ORIGIN}e env=ORIGIN

参考

外部サイト設置のリソース読み込み時に、「Access to font at ‘https://〇〇〇〇.com/style.css’ from origin ‘https://localhost/’ has been blocked by CORS policy」エラーの対応方法

eccubelogo

ここで、EC-CUBEに決済モジュールを組み込むときの手順を書いたんだけど、当然のことながら、テスト環境でのお話。
さて、テストはうまくいったから、さぁ本番というとき、決済会社からは以下のような書類が送られてきます。

  1. README.txt
  2. 本番環境登録情報
  3. モジュール用クライアント証明書(*.pem)
  4. 本番環境接続用モジュールのプロパティファイル(サンプル)

README.txtにはどういうことが書いてあるかというと、「本番用は試験環境と同じだからそれを使ってね」、「プロパティファイルだけは差替えてね」、「本番環境登録情報は各電文の共通ヘッダに設定すべき情報ですよ」、「説明書を見てね」、「わからなかったら問い合わせてね」ということです。
 

  1. まず、プロパティファイルを差替えます。
    試験環境と決済URL等が違うだけなので、試験環境用の決済URLを本番用に書き換えて、クライアント証明書ファイルパス(*.pem)も書き換えておきます。(ファイルももちろんコピーしておきます)
  2. このまま、クレジット決済をやってみるとエラーになります。
    「P002:認証情報が不正です。」というエラーです。なぜでしょうか。本番環境登録情報というやつをどこにも登録していないからですね。
  3. オーナーズストアで決済モジュールの設定を行います。
    kessai

    みんな、この辺のこと、スパッと気づくんでしょうかね。頭いいんですね。

ちゃんと共通ヘッダに情報がセットされたら、P002はでなくなると思います。

eccubelogo

EC-CUBEに決済モジュールを組み込むときの手順。
あまり公開しているサイトがないので、どうしてかなぁ?と思いつつ、もしかしたら守秘義務うんたらかんたらが関係あるかもしれないので、とりあえず、どこの会社の決済モジュール組込みかは特定しないで手順のみメモ。

  1. EC-CUBE OWNERS STOREの会員になる。そうすると、オーナーズストア認証キーが送られてくる。これが必要。
  2. オーナーズストアの決済サービスから自分が入れたい決済モジュールを選択。ダウンロード無料。
  3. EC-CUBE管理画面の『OWNERS STORE』で認証キー設定をしたうえで、購入商品一覧から自分が購入した決済モジュールを選択してダウンロード。続いて設定したいところだが、インストールが済んでないとダメなので後回し。
  4. ここからは、○○決済モジュールのインストール。cURL関数を使っているから、PHPで使えるようにしておけと。
  5. うちの php5.2.6-3ubuntu4.5 では curlが入っていなかったので、まずこれを入れる。PHPが –with-curl[=DIR] をつけたコンパイルしてあるかどうかは後で確認。
    # apt-get install php5-curl
    # /etc/init.d/apache2 restart
    
  6. これで PHPから cURL関数が使えるようになったかどうか、簡単なテストコードを書いてみる。
    
    

    ちゃんとログファイルにHTMLが書かれたので OKっぽい。(logディレクトリは、www-data:www-data にしておくか、777にしておかないと Permissionエラーになるよ)

  7. ○○決済モジュールで用意された PHP版モジュールをサーバへコピー。
    eccube-2.4.4/data/downloads/module/mdl_○○ の下にPHP版モジュールをごっそりと。オナ―はwww-data:www-data にしておかないとたぶんダメ。
  8. php.ini に include_path を追加する。(どこの php.ini を使用しているかは、phpinfo()のLoaded Configuration Fileを見ること)
    # e /etc/php5/apache2/php.ini
    include_path = ".:/usr/share/php:/usr/share/pear:/home/www/eccube-2.4.4/data/downloads/module/mdl_○○"
    
  9. ○○決済モジュールの接続モジュール用パラメータを設定(modenv_properties.php)

    # cd /home/www/eccube-2.4.4/data/downloads/module/mdl_○○
    # e modenv_properties.php
    
    ○○B2Bmodule.client_file_path=/home/www/eccube-2.4.4/data/downloads/module/mdl_○○/client_mdev_20090123.pem
    ○○B2Bmodule.ca_file_path=/home/www/eccube-2.4.4/data/downloads/module/mdl_○○/curl-ca-bundle.crt
    ○○B2Bmodule.log_output_path=/home/www/eccube-2.4.4/data/downloads/module/mdl_○○/connectmodule.log
    
  10. ここまで終わったら、以下の2ファイルのオナ―を変更しておきます。(○○決済モジュール設定時に、SPSモジュール連携用に新たに書き加えられた部分を削除するようです)
    /home/www/eccube-2.4.4/html/shopping/load_payment_module.php
    /home/www/eccube-2.4.4/html/mobile/shopping/load_payment_module.php
    
  11. EC-CUBE管理画面の『OWNERS STORE』で購入商品一覧から○○決済モジュールの『設定』を選択します。ここまでちゃんとやれれば、エラーなくOKがでるはず。

※ 以上は、トライ&エラーの経過を記録したもので、○○決済モジュールのインストールのアドバイスはできません。エラーがでたときは素直に決済会社のサポートに聞きましょう。

スーパー小っちゃなTipsなので、書くかどうか迷ったのですが、7月はブログ強化月間ですので(今決めました)、この手のことを書かないで何を書くということで書いておきます。
 
EC-CUBEの新着情報に、<a href=”hogehoge.com”>お得な情報</a>みたいなリンクを書こうと思っても、<や>が <、> に変換されてしまってリンクになりません。
危ないことされたら嫌だからというのはわかりますが、コメント欄みたいに誰が書くかわからないならいざ知らず、新着情報って管理画面からしか書けないし、ESCAPEしなくていいんじゃないの?ということです。

# e data/Smarty/templates/default/bloc/news.tpl

<!--{$arrNews&#91;data&#93;.news_comment|escape|nl2br}-->
          ↓
<!--{$arrNews&#91;data&#93;.news_comment|nl2br}-->

Smartyの escapeをとればいいということですね。
 
ついでにコレも。Smartyで var_dumpみたいなことをやるときはコレ。