Magentoの特徴

2022年11月8日

イントロダクション

Magento(マジェント)は、世界トップクラスのオープンソースEコマース(電子商取引)プラットフォームです。「多言語対応」「多通貨対応」が可能な越境ECサイトを構築できます。越境ECサイトを構築し、ネットショップを運営するために必要十分な機能が一通り搭載されています。カスタマイズ性とデザイン性に優れており高機能なECサイトを短期間で構築できます。

2007年に最初のMagento Community Edition(以後CE)バージョン1、その後2015年に後継のバージョン2(Magento2 CE)がリリースされました。さらにその後2018年にAdobe社に買収されました。買収後はAdobe社がSaaS型サービス形態でMagento2CEにEコマースで要求される包括的な高機能ツールを追加搭載したMageto2EE “Adobe Commerce"が提供されました。
2022年時点で、Magentoを使って自社のECショップを公開したい場合、
・無償版のオープンソース版Magento2CE “Magento Open Source"を使う
(=自社管理のサーバーへセットアップして運用する)
・有償版Mageto2EE “Adobe Commerce"を使う
(=Adobe社提供のSaaSサービスを契約して運用する)
の2つの選択肢があります。

当サイト(マゲラボ)では 無償版のオープンソース版Magento2CE “Magento Open Source" の活用情報について取り扱います。

MagentoCEのおすすめポイント

筆者のMagentoCEを用いたショップ構築・運営経験からMagentoのメリットを感じている点は下記になります。

豊富な機能

Magentoは無償版(Magento Open Source)であっても標準機能は豊富です。
・ストア運営側が商品を棚に並べて(商品在庫数設定、商品詳細ページ作成)、送料や税率を設定する。
・お客様が商品を見つけて(検索、カタログ)、カートに入れて、支払手続きをする。
・ストア運営側で受注データを確認して、入金管理、商品発送を行う。
といったECストアの基本的な一連の作業に関わる機能は全て用意されています。これらは日本のASP型のECショップと遜色ないものと思います。
さらに高度な機能として、大手Amazonや楽天などで一般的となったお客様レビュー機能、ショップ会員登録機能、割引クーポン管理機能、電子書籍などのダウンロード商品販売、セールスレター配信、店頭受け取り、複数のお届け先指定などの機能も標準機能で用意されています。
この標準機能の中から各ショップで使いたい機能を選択して構成することができます。

多言語&多通貨の標準機能対応

Magentoでは多言語(例えば日本語サイトと英語サイト)、多通貨(例えば、JPYとUSD)を1つのシステムで複数サイト(=マルチサイト)として運用公開する仕組みが標準機能で備わっています。これは日本限定ではなくグローバルにECストア販売していきたい商材を取り扱っているストアオーナーにとっては大きなメリットです

圧倒的なカスタマイズ性

Magentoはオープンソースであるため、理屈で言えばすべての機能自由にカスタマイズ可能です。
ECサイトの見た目はもちろん、アプリケーションの細かな機能仕様面においても、Webエンジニアであれば誰でもカスタマイズ調整ができてしまいます。
ECストアは、堅調に売上ストアが成長してくると社内から改善施策のアイディア、競合ショップとの差別化、お客様からの要望に答える機能要件が必ず出てきます。この時ASP型ECプラットフォームだとできることが限定的になります。いっぽうオープンソースのMagentoは自由にカスタマイズができるのでこれは大きなメリットです。
自社エンジニアで対処してもよいし、国内、国外問わずMagentoを扱えるエンジニア・ITベンダー・ソフトウェアハウスを選定して外注することもできます。
将来渡ってプラットフォームを乗り換えることなく自社ストアを小さく初めて大きく育てることができます。これは大きなメリットです。

ちなみに、Magento2の主な技術要素は下記となります。
・HTML/CSS/LESS
→ページの見た目デザインの定義に一般的なCSSならびにLESS(Leaner CSS)が使われてます。
・PHP
→アプリケーションは主にPHPで書かれています。
・Knockout.js
→主に購入手続きページでKnockoutJSライブラリが使われています。
・jQuery
→一部ページでjQueryライブラリが使われています。
・Zend framework
→一部のPHPクラスは"Zend framework"のクラス定義を継承しています。
・Symfony
→一部のPHPクラスは"Symfony"のクラス定義を使用しています。
・MySQL(MariaDB)
→アプリケーション内のデータはMySQL(MariaDB)でレコード管理されます。
・Elasticsearch
→商品のキーワード検索にElasticsearchが使われます。

これら技術領域について経験があるのであればカスタマイズ作業の際アドバンテージになると思います。

制限のないデータベースアクセス

phpMyAdminなどのデータベース管理ツールでMagentoのデータベースのレコードを直接確認することができます。またSQLクエリに制限がないので、複雑な条件でデータの件数集計やデータのCSVエクスポートができます。
筆者の経験として実際の運用現場で、会員データや売上データをMagentoの標準機能で用意されていない細かな条件指定で集計するのはとても便利でした。ASP型やSasS型のプラットフォームの場合、集計や検索などはサービス提供側が用意した条件に限定されます。データベースのレコードを直接参照できない・複雑な条件でのSQLクエリ集計ができないケースがほとんどです。

Adobe公式Marketplaceの利用

Adobe公式のMarketplaceでは、世界中のエンジニアによって開発されたMagentoを機能拡張するエクステンション(無償・有償)が公開されています。販売促進にフォーカスした拡張機能やバックヤード側管理系のもの、ショップの外観のテーマなど。Marketplaceで購入手続きをしてComposerを使って手軽に自社ストアへエクステンション導入できる仕組みが用意されています。
これらエクステンションはAdobe審査ならびに品質チェックを通らないと公開できない仕組みになっているため、安全性の高い品質が担保された拡張エクステンションを手軽に導入することができます。

活発なバージョンアップデート

Magento2のメインプログラムはおおよそ四半期ごとに新バージョンがリリースされています。
これらバージョンアップのリリース内容は、セキュリティ上の問題へ修正対処と新機能の追加です。
セキュリティ上の問題が放置されることなく迅速に修正パッチが提供され、また新たな機能を使う選択肢も増えます。
Composerによるアップデート管理する仕組みが提供されており、モジュール間の依存関係も自動チェックされ管理しやすいものとなっています。

疎結合なモジュール構成

Magento2のアーキテクチャは、ソフトウェアの依存関係を最小限に抑える事を前提とされています。各モジュールは、他モジュールと密接に関連するのではなく、疎結合になるように構成され依存関係が最小限に抑えられています。
このことにより、Magento本体のプログラム更新によるトラブルが極力回避できるように、導入エクステンションモジュール間のコンフリクト不具合が回避できるように、工夫されています。