はじめに
以前から気になっていたOpenCartをインストールしてみた。
ちゃんとインストラーが付属していました。最近コマンドラインでinstallが多いので
苦手な方はよいかもしれません。
インストールした環境 php MySql Apacheはインストール済みの想定です。
Centos8.4
PHP 7.2.24
MySql 8
Apache/2.4.37
opencartをインストール
opencart-3.0.3.7.zipをダウンロードしてきて、解凍したuploadフォルダーの中身をサーバーのopencartへFTPで転送しました。
mysqlでデータベースを作成しておく
create database opencart;
直下の下記をリネームします。
config-dist.php -> config.php
パーミッションを変更します。0755 or 0777
chmod 0777
adminフォルダー直下の下記をリネームします。
admin/config-dist.php -> admin/config.php
パーミッションを変更します。0755 or 0777
chmod 0777
システムフォルダーのstorageをパーミッションを変更しておきます。0755 or 0777
cd system
chmod -R 0777 storage
画像フォルダーのimageをパーミッションを変更しておきます。0755 or 0777
chmod -R 0777 image
インストラー起動してみる
http://ドメイン名/opencartでアクセスすると下記のエラー
phpが7.2なのでチェックしているみたい・・・ ペーハー?
PH7.3+ Required
取り合ず下記を発見したのでとりあえずコメント
system/startup.php
// Check Version
if (version_compare(phpversion(), '7.3.0', '<') == true) {
# exit('PH7.3+ Required');
}
install/controller/install/step_2.php
private function validate() {
if (phpversion() < '7.3') {
# $this->error['warning'] = $this->language->get('error_version');
}
進んで行くと500エラーで止まってしまう。
mysql 8には対応していないようなので下記をコメント
install/model/install/install.php
# $db->query("SET @@session.sql_mode = 'MYSQL40'");
ついでに下記もコメントして追加。0000-00-00など存在しない日付でエラーになります。
system/library/db/mysqli.php
# $this->connection->query("SET SESSION sql_mode = 'NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION'");
$this->connection->query("SET SESSION sql_mode = 'NO_ZERO_IN_DATE,NO_ENGINE_SUBSTITUTION'");
失敗したので一度削除して、作り直し
drop database opencart
create database opencart;
上記でphp7.2,mysql8でもインストールできました。
下記で管理画面にアクセス、とりあえず表示できました。
http://ドメイン名/opencart/admin
起動時にstorageに移動を聞かれるので設定する。とりあえずテスト環境なのでopencartフォルダーにした。
ひょっとしたから system/storageは変更不要だったかもしれません。
注意)storageよく見るとテキストファイルで、エラーログなど含まれているので、公開される場所に置く場合、対処が必要な感じです。
日本語化
筆者はとりあえず、3系の日本語が有料だったので、2系のもので入れてみましたが、動作確認程度では、日本語で表示されました。
バージョン分の差分を追加すれば良さそうです。
ただ、2.0の無料のファイルは,ja-jpの表記でなく、japaneseフォルダーになっていたので、ja-jpフォルダーに変更。japanese.phpもja-jp.phpに変更しました。
言語ファイルは下記へコピーします。ここにpngでja-jp.pngで日本国旗をつくると幸せになれます。
ユーザー側
catalog/language
管理側
admin/language
筆者は。en-gbと、2.0の日本語をperlで変換バッチを作成して、差分を統合しておきました。
一部 %sなど使用している箇所 引数違いなどエラーがでるようなので修正が必要です。
Warning: sprintf(): Too few arguments in /opencart/catalog/controller/checkout/register.php on line 64
管理画面の日本語設定
下記画面で追加をクリック
下記のように設定
追記:locale: ja_JP.UTF-8,ja_JP,ja-jp,ja_jp,japaneseがいいかな
店舗設定のlocalで下記の箇所を修正します。
ユーザー画面の切り替え
カテゴリが英語・・・
カテゴリの登録に日本語を追加します。
修正結果
次に通貨を設定します。
結果,,あああ。消費税ね。。
次に消費税を設定します。
geo zoneで追加します。
次に税率 とりあず標準だけ、軽減税率も行けそうですね。
店舗設定でローションと通貨を設定します。
税クラスを登録します。こちらは、商品ごとに割りあえてクラスです。
各商品の税区分を上記で追加したものに変更します。軽減税率設定できそう。
ユーザ画面で確認します。税の50円つきました。
カートも問題なさそうです。
氏名のカタカナを追加してみる。決済でカナがいるものがあるので、テスト
カスタムフィールドがあるので試してみる。正規表現は適当に書いていてテストしてません。
追加されました。並び順は上から数えた値で良さそうです。
インフォメーション
下記に部分はインフォメーションで日本語を登録すると変更されます。
インフォメーションの管理画面
htaccessのリネーム
リネーム後動作しない場合は、中身を確認して、サーバーのバージョン等で合わせます。
.htaccess.txt -> .htaccess
タイムゾーンの変更
サーバ環境によってことなりますので注意してください
system/config/default.php
#$_['date_timezone'] = 'UTC';
$_['date_timezone'] = 'Asia/Tokyo';
管理画面のURL変更方法
adminがそのままだと、セキュリティ面で問題があるので変更
adminフォルダーをお好みの名前に変更して、admin/config.phpにある/adminディレクトリ記載がある部分を変更するれば大丈夫でした。修正箇所は3か所でした。
住所登録時の並び順・都道府県の英語・並び順
住所 1,住所 2,市区町村,郵便番号,国,都道府県の順
三重県,和歌山県,埼玉県・・・セレクトBOXの並び順がばらばら
opencart ver2では、エクステンションがあるよう、ver3で使用できるか不明
税計算について
ソース上では、round関数が出てくる。四捨五入?SQLは定義は decimal(15,4)
インストールしてわかった機能
ユーザートップページにおすすめ商品リスト(管理者が商品登録)、特価リスト(値引きされた商品)、最新リスト(最近登録された商品)、バナーが有るのがわかりました。
エクステンション(機能拡張)から有効無効にしてレイアウトで指定する必要があります。
送料、支払い設定も同様にエクステンション(機能拡張)からになります。送料は、重量、一律金額、商品毎、送料無料(小計以上の場合の設定)があるようです。
ほしい物リスト、商品比較などの機能もありました。
csv等のインポート・エクスポートは標準ではありませんでした。外部連携する場合、別途準備が必要です。
新着とblogはありませんでした。お問い合わせは項目は固定ですが、ありました。フォームビルダーみたいなものはなかったです。ただ、無料でエクステンション(機能拡張)があるようです。
継続課金もありましたが、どのような動作なのか試していません。。
値引きは。個数割引 10個かったらXXX円、(特価)値引きは商品単位で、ユーザーグループ毎で値引き後の価格設定できるのは確認しました。
さいごに
軽いです。ページ表示が快適です。ソースをみてみると、フレームワークは使っていますが、最小限のもので
速度重視の感じがしますね。ただ、SQL文など、記載が見られて、インジェクションなど不安がありますが。見たところエスケープはされています。
SQLはInnoDBとMyISAMが使い分けされていて、好感が持てます。。
カスタマイズするときは修正する側で意識しておく必要がありそうです。逆にカスタマイズしやすそうです。SQL文がわかるので
某国産のものも同サーバにいれてありますが、くらべものにならないぐらい早いです。。検索とか表示が。。
まだじっくりとソースみれてませんが。使えそうですね。某国産よりは、機能はちょっとおおい(決済、送料、手数料など国産がない)、Cs-CARTとかには機能的には落ちますが、無料でここまで機能があると
有料のマーケットプレイス(プラグイン・デザイン販売)があるようなのでなんとは、なりそうですね、あと決済、送料、手数料が国産製がないので注意が必要です。
とりあえず検証した時の日本語言語ファイル置いておきます。部分的に機械翻訳です。一部修正していたりするので、正規品を求める場合は、本家より購入してください。
SQLのデータ、インストールの翻訳も含んでいます。お好みでご使用ください。
追記
送料は、OpenCartのMARKETPLACEホームページ見ていたら、くろねこと佐川がOpenCart ver2.0があるの分かりましたが有料でした。
決済のルミーズもあるようですが、OpenCart ver1.5対応で有料でした。
どれもバージョン3のがないみたいですね・・
関連記事
OpenCartのエクステンションインストール&作成1
次の記事はこちらから
https://www.omakase.net/blog/2021/08/opencart-ext1.html
OpenCartのエクステンションインストール&作成2
記事はこちらから
https://www.omakase.net/blog/2021/08/opencart-ext2.html
OpenCartのエクステンションインストール&作成3
記事はこちらから
https://www.omakase.net/blog/2021/08/opencart-ext3.html
OpenCartのエクステンションインストール&作成4
記事はこちらから
https://www.omakase.net/blog/2021/08/opencart-ext4.html
OpenCartのエクステンションインストール&作成5
記事はこちらから
https://www.omakase.net/blog/2021/08/opencart-ext5.html