とまと あんらいぷ…

エンジニアの活動記録とかつぶやきとか

GitHub

カテゴリ:使ってみたソフト の記事一覧

EC-CUBE ペイパル決済モジュールで決済処理中データが消える


PayPal支払いプラグインは、決済完了後、自動的に「入金済み」に変更される。

これを「決済処理中」に変更し、手動で注文確定メールを送る運用するために
決済完了後のステータスを「決済処理中」に変更する対応をすると、
数分に一回、オーダーデータが削除されるというトラブルが発生する。

原因


管理画面>パラメータ設定に
決済処理中ステータスのロールバックをするか(true:する false:しない)
PENDING_ORDER_CANCEL_FLAG

※これはDBの値になりますが
データキャッシュとしては
data>cache>mtb_constants.php
に作成されます。

というフラグがあり、これがデフォルトtrueになっている。
このフラグは、決済処理中ステータスが900秒たったら、勝手にキャンセルするという振る舞いをするので、
falseに変更する必要がある。

以上

EC-CUBE テンプレート内でコメント化する方法

Smartyのコメント化


EC-CUBEはテンプレートエンジンにSmartyを使っています。
Smartyのコメントは、

{* これはコメントです *}

こんな感じ。

EC-CUBEでは、

<!--{* ここはコメントです *}-->

こう書きます。

htmlコメントとは違って、出力されるhtmlにもコメント部分が出力されません。

何度も何度も調べなおしてたので、自身のブログにメモメモ・・・

EC-CUBEのWPPost:WordPress連携を導入(ロリポップサーバー)

EC-CUBEサイト内にWordPress記事を表示


EC-CUBE(2.13系)に、WpPostを導入し、設定を行ったので
その時の作業メモを残しておきます。

導入するのは、株式会社ギズモさんが出している、
WordPressとの連携プラグインです。

このプラグインは、EC-CUBEサイト内部にWordPressの記事を表示するというもの。
サイトはEC-CUBEで実装していて、ブログはWordPressで執筆しているところにはなんとも便利なプラグインです。
まずは株式会社ギズモさんに感謝です。

プラグイン導入は簡単にはいかない


EC-CUBE X WordPress連携プラグインWpPost こちらのプラグイン紹介ページにも書いていますが、
サーバーによって設定が異なったり、WAF(アプリケーションファイアーウォール)の設定が必要だったりします。

今回、はロリポップサーバーで導入しましたので、そのときに行った手順と、注意点を記載します。

WpPost導入手順


1.まず、WPプラグインモジュールをインストールする。
  バージョンは WPPost:WordPress連携 1.07

2.次に、オーナーズストア>プラグイン管理 メニューで
  WPPost:WordPress連携 を有効化する。
  プラグイン設定 メニューを開き、指定されているソースコードの変更を行う。
  WordPress側で修正が必要なソースコードは
  ・wp-config.php
  ・wp-includes/load.php
  この2ファイルだけです。

  詳しくはWpPostのインストールにすべて書いてます。

  ◆注意◆  
  WPのバージョンアップ時、ファイルが更新されてしまうので、その都度設定が必要となるらしい。
  ◆◆◆◆

3.プラグイン設定メニューを、そのサーバーに合わせた設定に変更する。
  PC CSSの設定もここで行う。
  
  ◆注意◆
  ロリポップサーバーは、WAF(アプリケーションファイアーウォール)を無効化しなければ、
  登録時エラーが発生する。
  プラグインの設定を行う場合は、ロリポップサーバーへログインし、WAFを一旦無効化したうえで
  設定を行う必要がある。
  WAFの設定変更は、5-10分ほどかかるのですぐには作業できません。
  ◆◆◆◆

4.サーバーのパーミッションを適宜変更する。
  基本的にはディレクトリは755、ファイルは644
  パーミッション設定が適切でない場合、Error 500が発生。
  サーバーログを確認し、パーミッション設定を適宜行うこと。

  パーミッションの設定を正しく行わないと、ほとんどのサーバーでINTERNAL Server Error(500)が出るような気がします。

5.1~4の設定完了後、管理画面より
  
  デザイン管理>PC>ブロック設定 から、「WpPost記事一覧」のデザイン変更を実施
  デザイン管理>PC>レイアウト設定 で、任意の場所にブロックを配置する。
  また、「WpPostポスト表示」「WpPostカテゴリ表示」のデザインを適宜変更する。

6.すべての設定完了後、ロリポップサーバーのWAF設定を元に戻す。

以上です。
サーバー側の設定でつまずかなければ、30分程度でできると思います。

.htacessでphp_valueやphp_flagのエラーが発生する

php_value エラーの対処法


EC-CUBEのテスト環境構築時お話です。
結論からいうと、このエラー、共有レンタルサーバーの場合、解決できません。
特にCPanelを展開しているサーバではこのphp_valueやphp_flagは使えないことが多いです。

httpd.conf でmod_php5.cのロードと、AllowOverride の設定をしないと動かないらしいのですが
httpd.conf ってのは専用サーバーじゃないと基本的にはいじれません。

対処法


一つは同様の機能をphp.iniで代用する。
もう一つは、EC-CUBEのテスト環境にのみに限って言うと、.htacess は無くてもシステムが動くので
コメントアウトしてOK
MODx とかでも同様に.htacess を消して大丈夫みたいですね。

とりあえずドはまりして時間を食う前に、コメントアウトしちゃってください。

EC-CUBE(2.13.1)テンプレートファイルにブロックを挿入(読み込み)する

テンプレートにブロック設定で作成したブロックをインクルード


EC-CUBEのバージョン2.13.1で、テンプレートファイルの中にブロックを挿入したい。

EC-CUBEは、バージョンによって定数のパス定義がちょろちょろと変わっているので
バージョン2.13.1より前のバージョンはちょっとわからないですが・・・

2.13.1の場合は以下のとおり

<!--{include file="`$smarty.const.SMARTY_TEMPLATES_REALDIR`/`
$smarty.const.TEMPLATE_NAME`/`$smarty.const.BLOC_DIR`customize.tpl"}-->

※改行は削除してください。

customize.tpl の部分を、作成したブロックのファイル名を指定することで表示可能。

$smarty.const.TEMPLATE_NAME を指定している理由は
テンプレートデザインを利用しているからで、
デフォルトデザインを利用している場合はそのまま

<!--{include file="`$smarty.const.USER_TEMPLATE_PATH`/default/bloc/customize.tpl"}-->

などでいけると思います。(未検証)

もしパスをミスっていたりすると、ページ表示時にはエラーにならず
コードそのものがhtml出力されません。

おかしいな?と思った場合は
システム設定 > EC-CUBE ログ表示 > エラーログファイル より
エラーログを読み込んだら
以下の様なエラーが出力されるのでご注意。

Warning(E_USER_WARNING): Smarty error: unable to read resource: "USER_TEMPLATE_PATHtemplatename/frontparts/bloc/customize.tpl" on [/home/users/main.jp/web/data/module/Smarty/libs/Smarty.class.php(1094)]

このコードは
商品詳細ページにブロックを表示させるために記載していますが
もしエラーログに include file そのものが未定義だというエラーが出てきている場合は
表示させようとしているページに include file の読み込みがされていないので、対象ページのオブジェクト内で
定義されるようインクルードが必要となります。


次のページ

FC2Ad