Home > EC-CUBE Archive

EC-CUBE Archive

ブロックを条件分岐で表示させる

カテゴリーidが1もしくは詳細ページなどの商品idが2のときにブロックを表示させたい場合、ブロックを下記のようにする。

<!--{if $category_id == "1"or $arrProduct.product_id == "2"}-->
 ブロックの内容
 <!--{/if}-->


保護中: ブログの記事を新着情報に表示させる

この投稿はパスワードで保護されています。表示するにはパスワードを入力してください:


EC-CUBEのバージョン管理

EC-CUBEを以前のバージョンから次のバージョンにアップデートしようとしても、変更されたファイルがわからないので何かいい方法がないか探していた。

EC-CUBE開発コミュニティで、「TortoiseSVN」を使うと便利だと教えていただいたので早速ダウンロードしてインストールしてみたが使い方がさっぱりわからん :cry:

「TortoiseSVN」のダウンロードはここから

インストールの方法はいろんなサイトで説明されているのでここでは省きます。


さらにググりまくってやっと使い方(といっても一部だけど)を発見。

「TortoiseSVN」の使い方を発見したページはここ

EC-CUBE2.3.2から2.3.3の差分ファイルを抽出するには、

  1. 差分ファイルを保存するフォルダを用意
  2. そのフォルダ上で右クリックして「TortoiseSVN」メニューから「ログを表示」。
  3. ログが出るので、比較したいリビジョンを選ぶ。Ctrlキーを使って、2つだけ選ぶ。
  4. 右クリックして、「リビジョンを比較」。
  5. 比較結果が出るので、エクスポートしたいファイル選択する(通常は全部選択)。
  6. 右クリックして、「選択をエクスポート」。
  7. エクスポート先を指定して、できあがり。

これでなんとディレクトリ構造をキープして差分のファイルが保存されていた。

これはすごい!

EC-CUBE に PayPal 支払を追加する

参考サイト

PayPal決済導入方法←かなり詳しいです。1部のコードでエラーが出たので下記サイト参考にして修正しました。

EC-CUBEにPAYPAL支払いを組み込む

まず、PayPal のビジネスアカウントを取得している必要があります。

PayPalのサイト

■PayPal側の設定

[マイアカウント]→[個人設定]→[販売の設定-ウェブサイト決済の設定]ページを表示。

  • ウェブサイト決済の自動復帰

    自動復帰:オン

    ウェブサイト決済の自動復帰

    復帰URL:

    http://ショップURL/html/shopping/complete.php

  • 支払いデータ転送:オン
  • 暗号化ウェブサイト決済

    暗号化されていないウェブサイト決済の受領拒否:オフ

  • PayPalアカウントオプションサービス:オフ
  • 連絡先電話番号:オフ
  • 高速チェックアウトの設定

    giropayおよび銀行振替による支払いのサポート:オフ

と設定して保存。

[マイアカウント]⇒[個人設定]⇒[販売の設定-言語のエンコード]

  • ウェブサイトの言語:日本語
  • [詳細オプション]

    エンコード方式:UTF-8

    PayPalから送信されたデータと同じエンコード方式を使用しますか(IPN、ダウンロード可能なログ、メールなど)?

    はい

[マイアカウント]⇒[個人設定]⇒[販売の設定-支払い受領設定]

  • クレジットカード利用明細上の名前を適宜設定

■EC-CUBE側の設定

/data/class/pages/shopping/LC_Page_Shopping_Confirm.phpの

148行目:// 決済方法により画面切替

155行目:}

// 決済方法により画面切替
if($payment_type != "") {
$_SESSION["payment_id"] = $arrData['payment_id'];
header("Location: " . URL_SHOP_MODULE);
}else{
if($arrData['payment_id'] == ※1 payment_id) {
// 設定変更行して下さい ↑ if($arrData['payment_id'] == payment_id) {
$paypalURL = "https://www.paypal.com/j1/cgi-bin/webscr?cmd=_xclick&" ;
$paypalURL .= "business=" . "PayPalアカウントのメールアドレス" . "&" ;
// 設定変更行して下さい ↑$paypalURL .= "business=" . "paypalアカウントのメールアドレス" . "&" ;
$paypalURL .= "lc=JP&item_name=" . "※2 商品名" . "&" ;
// 設定変更行して下さい ↑ $paypalURL .= "lc=JP&item_name=" . "商品名" . "&" ;
$paypalURL .= "invoice=" . $order_id . "&" ;
$paypalURL .= "currency_code=JPY&no_shipping=1&no_note=1&" ;
$paypalURL .= "shipping=" . $arrData['deliv_fee'] . "&" ;
$paypalURL .= "amount=" . ($arrData['payment_total']-$arrData['deliv_fee']) . "&" ;
$paypalURL .= "email=" . $arrData["order_email"] . "&" ;
$paypalURL .= "first_name=" . urlencode(mb_convert_encoding($arrData["deliv_name02"], "UTF-8",CHAR_CODE)) . "&" ;
$paypalURL .= "last_name=" . urlencode(mb_convert_encoding($arrData["deliv_name01"], "UTF-8", CHAR_CODE)) . "&" ;

// 郵便番号から市町村を得る

$city = $objQuery->get("mtb_zip", "city", "zipcode=" . $arrData["deliv_zip01"] . $arrData["deliv_zip02"]) ;

$paypalURL .= "address1=" . urlencode(mb_convert_encoding(str_replace($city, "", $arrData["deliv_addr01"]), "UTF-8", CHAR_CODE)) . "&" ;
$paypalURL .= "address2=" . urlencode(mb_convert_encoding($arrData["deliv_addr02"], "UTF-8", CHAR_CODE)) . "&" ;
$paypalURL .= "city=" . urlencode(mb_convert_encoding($city, "UTF-8", CHAR_CODE)) . "&" ;
$paypalURL .= "zip=" . $arrData["deliv_zip01"] . "-" . $arrData["deliv_zip02"] . "&" ;
$paypalURL .= "night_phone_b=(" . $arrData["order_tel01"] . ")" . $arrData["order_tel02"] . "-" . $arrData["order_tel03"] ;

header("Location: " . $paypalURL);
} else {
header("Location: " . URL_SHOP_COMPLETE);
}
}

に入れ替え。

※1.支払い方法の選択をPayPalを選んで、テスト注文をして、注文ステップ途中の「お支払方法の指定」の画面でソースを見るとそれぞれの決済方法に「value="x"」と数字のIDが振られているので、そのxの部分を記載。

※2. ショップで当たり障りのない商品名を入れる。(雑貨ショップであれば「雑貨」など…)

EC-CUBE2.3.3

PHP 4.3.9

PostgreSQL 7.4.17

で動作確認済み。

EC-CUBEのPayPal決済導入方法

EC-CUBE構築TIPSというサイトにPayPal決済導入方法のカスタマイズが載っています。

こちらは、PayPal決済を導入に参考になるサイトです。


EC-CUBEのカスタマイズ ギフト包装・のし対応

ギフト包装・のし対応にカスタマイズ方法を書いたサイトです。

使用バージョン:EC-CUBE 2.1.2

http://d.hatena.ne.jp/yuhei_kagaya/20080822/1219392083

EC-CUBEでFCKeditorを使う

商品登録ページの詳細-メインコメントの部分を、WYSIWYG編集できるようにFCKeditorを使えるようにする。

EC-CUBE 2.3.0

まず、こちらのサイト

AjaxなWYSIWYGエディタ、FCKeditor 2.6 日本語版をリリースしたよ。

から FCKeditor_2.6_ja.zip をダウンロードし、解凍してから fckeditor ディレクトリをアップロード。
(アップロードする場所は html/fckeditor)

/data/Smarty/templates/default/admin/main_frame.tpl の39行目あたりに下記の3行目の部分を挿入。

<script type="text/javascript" src="<!–{$TPL_DIR}–>js/css.js"></script>
<script type="text/javascript" src="<!–{$TPL_DIR}–>js/file_manager.js"></script>
<script type="text/javascript" src="<!–{$smarty.const.URL_DIR}–>/fckeditor/fckeditor.js"></script>

/data/Smarty/templates/default/admin/products/product.tpl に

<script type="text/javascript">
$(function(){
var oFCKeditor = new FCKeditor( 'main_comment' ) ;
oFCKeditor.ReplaceTextarea() ;
oFCKeditor.ToolbarSet = 'EC-CUBE' ; //ツールバーの設定
});
</script>

を追加。

html/fckeditor/fckeditor.js 下記のように適宜修正。

var FCKeditor = function( instanceName, width, height, toolbarSet, value )
{
// Properties
this.InstanceName    = instanceName ;
this.Width            = width            || '100%' ;
this.Height            = height        || '300' ;// 初期設定は200
this.ToolbarSet        = toolbarSet    || 'EC-CUBE' ;// ←ツールバーセットの指定
this.Value            = value            || ” ;
this.BasePath        = FCKeditor.BasePath ;
this.CheckBrowser    = true ;
this.DisplayErrors    = true ;

this.Config            = new Object() ;

// Events
this.OnError        = null ;    // function( source, errorNumber, errorDescription )
}

そして、50行目あたり

FCKeditor.BasePath = '/fckeditor/' ;

FCKeditor.BasePath = '/html/fckeditor/' ;

に修正。

html/fckeditor/fckconfig.js の45行目あたりでスキンの指定をする。(これはスキンを変更したいときだけ)

FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/silver/' ;

137行目あたりにツールバーセットを追加。(下記はEC-CUBE用にシンプルにしてみたサンプル)

FCKConfig.ToolbarSets["EC-CUBE"] = [
['Source'],
['Bold','Italic','Underline','StrikeThrough'],
['OrderedList','UnorderedList'],
['JustifyLeft','JustifyCenter','JustifyRight'],
['Table','Rule','Smiley'],
['TextColor'],
['FitWindow'],
'/',
['FontFormat','FontSize'],['RemoveFormat'],
// No comma for the last row.
] ;

これでOK!

EC-CUBE 注文を削除してもマイページの購入履歴に残ってしまう

EC-CUBEで注文のキャンセルが入った時に、受注管理画面で削除してもマイページにログインして確認すると購入履歴に出てきます。

この不具合の解決策がカゴラボ的EC-CUBE開発ブログにありました。こちらでの説明は1.3.x~1.4.x向けの対策なので、その記事を参考にしながら2.0.1用に修正した。

引用

受注管理からキャンセル処理をした場合、データベースの「dtb_order」テーブルの「status」カラムに”3”が記録されます。受注のステータスに関しては、/data/conf/conf.php で設定されています。
一方、マイページのトップ(/html/mypage/index.php)で購入履歴が出てくるようになっていますが、この場合の条件には「削除フラグが立っていない」と「customer_idが何であるか」だけで、statusが何であるかは全く影響されません。
なので、この条件の中に「statusが3以外の時にだけ、購入履歴として出す」を入れれば良いことになります。

ということで、2.0.1用に読み直してみると、
data/class/pages/mypage/LC_Page_Mypage.php の92行目

$where = "del_flg = 0 AND customer_id=?";

$where = "del_flg = 0 AND customer_id=? AND status <> 3";

data/class/pages/mypage/LC_Page_Mypage_History.php の72行目

$where = "del_flg = 0 AND customer_id = ? AND order_id = ? ";

$where = "del_flg = 0 AND customer_id = ? AND order_id = ? AND status <> 3";

に修正することで回避できた。

次は受注管理の売り上げ集計にも残らないようにしないといけない。

EC-CUBE 携帯(モバイル)サイトへのリダイレクトの不具合

EC-CUBEのトップページが、http://[サイトのドメイン]/html/ だとすると、携帯からそのURLにアクセスすると、

http://[サイトのドメイン]/html/html/mobile/ と余分なディレクトリ(html)が入り存在しないディレクトリににアクセスしてしまい、モバイルサイトが表示されなかった。

これはうちだけの問題かなぁ・・・。

【回避策】

http://[サイトのドメイン]/html/require.php の98行目の

. SC_Utils_Ex::sfRmDupSlash($url . URL_DIR . "mobile/" . $path));

. SC_Utils_Ex::sfRmDupSlash($url . URL_DIR . "/../mobile/" . $path));

に修正することでうまくいった。

EC-CUBE Google Analytics を SSL なページで使う

EC-CUBEに Google Analytics のデータ取得スクリプトを埋め込むと、SSLがかかったページに移動するとブラウザー(Firefox)のロケーションバーに色がつかず、壊れた鍵マークがつく。

これを回避する策がこれだ

 <script type="text/javascript">
if (location.protocol == 'https:'){
document.write("<script src=¥"https:¥/¥/ssl.google-analytics.com¥/urchin.js¥" type=¥"text¥/javascript¥"><¥/script>");
}else{
document.write("<script src=¥"http:¥/¥/www.google-analytics.com¥/urchin.js¥" type=¥"text¥/javascript¥"><¥/script>");
}
</script>
<script type="text/javascript">
_uacct = "xx-xxxxxx-x";
_udn="none";
_ulink=1;
urchinTracker();
</script>

これを footer 部に入れてやればいい。

下記サイトで紹介されていた。

「Google Analytics を HTTPS(SSL)なページで使う」を少し改造する。

Home > EC-CUBE Archive

Return to page top