Magentoの基本機能 〜 エクステンションとテーマによる機能拡張

今回はMagentoを使う上で欠かせないエクステンションとテーマによる機能拡張について取り上げます。

エクステンションとテーマについて

エクステンションは、他のアプリケーションでは「プラグイン」「アドオン」などと呼ばれていることがあります。概して同じ意味なので、そちらの表現に慣れている方は読み替えていただいても構いません。要は機能拡張をするモジュールのことです。

テーマは他のアプリケーションでもほぼ同じ呼び方をされていると思います。要はサイトの見た目を整えるためのテンプレートやCSS、JS、画像がセットになったものです。

Magentoは1系の頃からエクステンションやテーマによる拡張を前提とした設計になっていたため、かなり早い段階からサードパーティによる市場が成立しました。この考え方は現在のMagento2系にも引き継がれて、より利用者にとって利便性の高い仕組みに改められています。

簡単になったエクステンションやテーマのインストール・アップデート

現在のMagentoはパッケージ管理システム「composer」を全面的に採用しています。エクステンションやテーマのパッケージはもちろんのこと、Magento自体もcomposerを使用してバージョン管理されています。

Magento公式のMarketplaceで購入したエクステンションやテーマは、有償・無償を問わずMagentoの管理画面から簡単にインストール・アップデートできるようになりました。Magento1ではMagento Connect Manager経由のインストール・アップデートは無料のエクステンションに限定されていたことを思うと、大きく改善されたといえるでしょう。(厳密には有償エクステンションをMagento Connect Manager経由でインストール出来ないわけではなかったのですが、大半の開発元が非対応でした)

また、管理画面からではなく、Linuxのシェル経由でcomposerコマンドを実行しても同じようにインストール・アップデート・アンインストールができます。composerコマンドを使う場合はpackagistやGithub等で公開されているモジュールやライブラリを指定することもできるので、Magento公式のMarketplace以外の場所で配布されているエクステンションやテーマも利用することができます。

Marketplaceでエクステンションを買ってみよう

公式のMarketplacceでエクステンションを購入する場合、以下のものが必要になります。

  • Magento公式サイトのアカウント
  • クレジットカードあるいはPayPalアカウント

Magento公式サイトのアカウントがない場合は先に登録しておいてください。PayPalで支払われる場合はPayPalのアカウントも同様に必要です。(さくらのクラウドのスタートアップスクリプトで環境を作った方は当然お持ちだと思います!)

さて、購入する場合は、購入したいエクステンションやテーマのページで商品をカートに入れます。

あとは購入手続きをするだけです。エクステンションによってはMagento Open SourceとMagento Commerceで費用が変わるものがありますが、それは必要に応じて選択すればよいでしょう。

購入が完了すると、通知メールが届きます。このあたりは普通のECサイトと同じですね。

購入したエクステンションをインストールするには

購入したエクステンションをインストールする場合、3通りのやり方があります。

  1. Magentoの管理画面からインストールする
  2. コマンドラインからcomposerコマンドでインストールする
  3. app/codeディレクトリにファイルを配置する

1つ目と2つ目の方法の場合は同じ結果が得られます。Webブラウザから操作するか、コマンドで行うかの違いだけです。

管理画面からインストールする

購入したエクステンションを管理画面からインストールする場合は、「システム>Webセットアップウィザード」にアクセスします。

Extension Managerを選ぶと、現在インストールされているエクステンションやMagento本体のモジュールの状態をチェックします。この処理は環境によってはしばらく時間がかかるので、気長に待ってください。

チェックが終了すると、インストール済みのエクステンションと設定済みのアカウントに紐付いている未インストールのエクステンションが出てきます。インストールする場合はそのエクステンションを選んで、次に進みます。

現在の構成との整合性をMagentoが確認し、エクステンションをインストールしてくれます。このときデータベースへのアップデートや各種処理を自動で行ってくれます。環境によっては時間がかかるのでここでも気長に待ってください。

なお、インストール中はサイトがメンテナンスモードになります。予めメンテナンス予告をしておくと良いでしょう。インストールが終わったらMagentoの管理画面に戻ります。エクステンションのマニュアルなどを参考に機能にアクセスしてみてください。

コマンドラインからインストールする

コマンドラインからエクステンションをインストールする場合は、composerによるモジュール管理と同じ方法が使えます。

  • composer.jsonに追記して、composer updateを実行する
  • composer requireコマンドを実行する

どちらの方法を使ってもインストールできますが、composerコマンドを使う場合はエクステンションのパッケージ名を知っている必要があります。Marketplaceで購入した場合はパッケージ名がわからないかもしれないので、事前に調べておくほうが良いでしょう。

composer update(あるいはcomposer require)が完了したら、あとは以下のコマンドを実行していきます。

  1. php bin/magento maintenance:enablee
  2. php bin/magento module:enable エクステンション名
  3. php bin/magento setup:upgrade
  4. php bin/magento setup:di:compile
  5. php bin/magento setup:static-content:deploy <言語>
  6. php bin/magento maintenance:disable

productionモードの場合は全部きちんと終わらないとサイトが動作しないので、できれば事前に検証する環境で確認するほうが良いでしょう。developerモードの場合はsetup:di:compileは不要ですが、時々productionモードにした際にエラーが出るモジュールがあるので注意しましょう。

app/codeディレクトリにファイルを配置する

この方法は自社でしか使わないモジュールを配置するために設けられているものですが、「同じ方法を用いてインストールするように」と、多くのエクステンションベンダーがインストールガイドに書いています。ただし、composerのようにPHPのバージョンや関連するエクステンション・ライブラリの依存関係を自動解決することができないので、依存関係については自分であらかじめ調べて解決しておく必要があります。

この方法を使う場合は、単純にapp/codeディレクトリ下に

ベンダー名/エクステンション名

でディレクトリを作成し、その中にエクステンションを構成するコードを全て配置します。あとはcomposerのときと同じく、所定のコマンドを順番に実行します。

エクステンションやテーマを導入する際の注意点

Magentoの動作モードに気をつけよう

Magentoの動作モードがproductionである場合、developerや標準モード以上に気をつけるポイントが増えます。例えばproductionモードの場合は、

  • pub/static以下のコンテンツは自動生成されない
  • テーマは自動的に認識されない
  • setup:di:compileは必須

ということがあります。パフォーマンス向上と引き換えにproductionモードはこういった手順を踏まないと正しく動作しません。

事前に予想しにくい「競合」

Magento1の時代から存在する問題として、「エクステンションやテーマの競合」というものがあります。具体的にはそれぞれ単独では正しく動作するエクステンションやテーマが、同じ環境に同居すると動作不良を起こす、というものです。同じ開発元のエクステンションやテーマの場合は問題がないことが多いのですが、開発元が異なる場合には頻繁に発生します。

競合を事前に予想することはなかなか難しく、導入後に発覚することがほとんどです。ですからエクステンションを新たに導入する際には検証用の環境を予め用意しておくことが不可欠です。

ライセンスの問題

導入予定のエクステンションのライセンスには注意しましょう。無償なのか、テストと本番用は別なのか。あるいはMagento上のデータ構成によってライセンス費が変わるのか。予想以上にライセンス費が跳ね上がるものもあるので、導入前に調べておくことを強くオススメします。