go2parkのブログ

go2parkのブログ

日記と仕事関係、Webサーバー構築のお話などなど

Amebaでブログを始めよう!

MagentoでPHP7を使うときの備忘録

MagentoでPHP5を使い続けたいけど、7にするとスピードがかなり上がるらしい。

そこでPHP7で使うときの変更点をまとめて自分用に残してます。

(Magento1.9以前のバージョン用)

 

1. Layout.phpの修正

 PHP7を使うときは`$callback`の扱いが少し変わっているので、変更が必要なところがあります。変更するファイルは

app/code/core/Mage/Core/Model/Layout.php

になります。

ここで

$out .= $this->getBlock($callback[0])->$callback[1]();

となっているところを

$out .= $this->getBlock($callback[0])->{$callback[1]}();

に変更します。

※まずここを変えないとインストール画面すら表示されません。

 

2. Mysql4.phpの修正

次に

app/code/core/Mage/Install/Model/Installer/Db/Mysql4.php

を修正します。

->fetchPairs('SHOW VARIABLES');
return (!isset($variables['have_innodb']) || $variables['have_innodb'] != 'YES') ? false : true;

->fetchPairs('SHOW ENGINES');
return isset($variables['InnoDB']) && ($variables['InnoDB'] == 'DEFAULT' || $variables['InnoDB'] == 'YES');

に変更します。

Magentoでクレジット決済で一番手っ取りばやいのが、「Paypal」です。
Paypalのビジネスアカウントまたはプレミアムアカウントを取得すれば、PaypalのAPI User Name等の情報が取得できます。
他のクレジット決済代行会社と違って、月額の手数料は必要ありません。
ただひとつ問題が・・・私は少しはまっていました。
やはり海外製というのが問題なのでしょうが、何も設定せずにやるとチェックアウト画面で「PayPal gateway has rejected request.」とはじかれます。
ただ商品のページなどにPaypalチェックアウトアイコンを表示させた場合は問題ないのです。この場合、送料など無しで決済されてしまうので、送料無料商品であればいいのですが、やはりチェックアウト画面から送料込で決済してもらいたいですよね。
解決方法としてネットをうろうろ探した結果、ありましたよハンガリーに・・・・
ハンガリーも通貨が0以下ないのかな??
で修正個所は2か所です。
lib/Zend/Currency.php
の中の74行目あたり

'precision' => 2,
となっているところを
'precision' => 0,
に変更

もう一か所は
app/code/core/Mage/Core/Model/Store.php
の中の944行目あたり
return round($price, 2);
となっているところを
return round($price, 0);
に変更

これで問題なく動くようになります。
余談ですが、Paypalでお客様にユーザー登録させずにクレジット決済してもらう場合は、
Magentoのシステム→設定→支払方法→PayPal Payment Solutions→エキスプレス・チェックアウト→Basic Settings - PayPal Express Checkout→Advanced Settings→PayPalゲストチェックアウト有効
を「はい」にして有効にしてください。これであなたのサイトのお客はわざわざPaypalに登録せずにクレジット決済が可能です。
何でもないことなんですが、オープンソースのEコマースソフトはいくつかあれど、Wordpressのようにみんなが導入しやすいようにならないものかと・・・・・・
でもその業界で飯食っている人たちも多いので複雑なんでしょうけどね。
書籍でも情報が少ない・・・
数字だけで見るとものすごく敷居が下がった世界なんですよ。Eコマは
VPSも数百円/月だし、独自ドメインも数百円/年だし・・・・
その上Eコマースソフトウェアは無料だし・・・・
Paypal使えばクレジット決済できるし。。。
どーして普及しないんでしょうか。普及したらMakeshopとかいろんな業界の人が打撃をうけるんだろうけど、そろそろそんな時代になってきていると思うんです。
ちなみにアマゾンでZen Cartで検索すると3冊・・・・EC-CUBEで5冊・・・・
私のおススメするMagentoなんか1冊ですよ・・・しかもほとんどの本が古い。2012年はほとんど出版されてません。
ちなみにアメリカンのAmazonでZen Cartを検索すると87件、Magentoで64件です。
ちょっと違いが大きいですね。
というわけで、日本にもっとオープンCMSを普及させよう委員会を立ち上げたいんですが誰か参加する人いるかなw