OpenCart3のインストール

らら
らら

はじめに

以前から気になっていた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よく見るとテキストファイルで、エラーログなど含まれているので、公開される場所に置く場合、対処が必要な感じです。

opencart01

日本語化

筆者はとりあえず、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

管理画面の日本語設定

下記画面で追加をクリック

opencart02

下記のように設定

追記:locale: ja_JP.UTF-8,ja_JP,ja-jp,ja_jp,japaneseがいいかな

opencart03

店舗設定のlocalで下記の箇所を修正します。

opencart04

opencart05

ユーザー画面の切り替え

opencart06

カテゴリが英語・・・

opencart07

カテゴリの登録に日本語を追加します。

opencart08

修正結果

opencart09

次に通貨を設定します。

opencart10

opencart11

結果,,あああ。消費税ね。。

opencart12

次に消費税を設定します。

geo zoneで追加します。

opencart13

opencart14

次に税率 とりあず標準だけ、軽減税率も行けそうですね。

opencart15

opencart16

店舗設定でローションと通貨を設定します。

opencart17

税クラスを登録します。こちらは、商品ごとに割りあえてクラスです。

opencart18

opencart19

各商品の税区分を上記で追加したものに変更します。軽減税率設定できそう。

opencart20

ユーザ画面で確認します。税の50円つきました。

opencart21

カートも問題なさそうです。

opencart22

氏名のカタカナを追加してみる。決済でカナがいるものがあるので、テスト

カスタムフィールドがあるので試してみる。正規表現は適当に書いていてテストしてません。

opencart23

opencart24

追加されました。並び順は上から数えた値で良さそうです。

opencart25

opencart26

インフォメーション

下記に部分はインフォメーションで日本語を登録すると変更されます。

opencart27

インフォメーションの管理画面

opencart28

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-3.0.3.7_japanese

追記

送料は、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

関連記事