割とよくあるAdobe Commerce / Magento Open Sourceの誤解

今回は、Adobe Commerce / Magento Open Sourceを使用するプロジェクトで要件定義段階やFit & Gapの際によく出てくる話題を紹介したいと思います。
なおこの記事は2023年末時点のものです。また、Adobe Commerce / Magento Open Sourceを誹謗中傷する意図はありません。
解決策・対処法があるものについてはきちんと触れています。同様の問題はShopwareやOroCommerceにも存在します。

ローカライズ関係

最初はローカライズ関係です。
Magento1.0のリリース時点から抱えている問題は現在でも完全に解決はしていません。
ですが、きちんと手順を踏めば対処可能な状況にはなっています。

日本語ロケールと都道府県データ

標準状態では日本語ロケールは付属していません。都道府県データも同様です。
長年、標準付属になってほしいなとは思っていますが、今のところは任意で導入するものとなっています。

対処方法

以下のパッケージを導入します。
日本語ロケールについては、なぜか他のベンダーからもリリースされていますが、日本人によるメンテナンスという意味では下記URLから最新が手に入ります。

フリガナ

顧客データや住所データ、注文関係に必要なフリガナは、標準状態にはありません。
日本語化エクステンションで一連のデータに対して正しく扱える機能を提供しています。
フリガナ自体が日本語でしか使わないものなので、致し方ない面はあります。

対処方法

以下のパッケージを導入します。
日本語化エクステンションはcomposerやマーケットプレイスで提供していないため、インストールする場合はapp/code/CommunityEngineeringディレクトリを作成したうえで導入してください。

Adobe Commerceでは

Adobe Commerce限定ではありますが、管理画面から顧客や顧客住所の属性を追加定義できます。
ただし、追加定義した属性が自動的に注文関係に反映されるということはありません。反映したい場合は別途カスタマイズが必要です。

住所表記順

標準状態では欧米式の住所・氏名の並び順になっています。
日本式の表記にする場合は、日本語化エクステンションの導入が必要です。

なお、購入画面の住所フィールドの並び順については別管理になっています。
弊社製の有償エクステンションなどで調整できるようになりますが、標準ではシステム全体で1つの並び順しか指定できません。

対処方法

以下のパッケージを導入します。
なお、多言語サイト構築時には要件に沿った微調整が必要になることがあります。

日本円の端数処理

標準状態では日本円の表記は何語であっても小数点以下が付きます。
端数の丸め処理は「小数点以下2桁で四捨五入」一択となっており、

  • 切り上げ
  • 切り捨て
  • 四捨五入

を事業者の要望で選択できません。
このあたりの処理についても、日本語化エクステンションで対応をしています。
(全ての事案のご要望にお応えできているか?といわれると微妙なので是非フィードバックを頂きたいところです)

対処方法

以下のパッケージを導入します。
日本円を想定して作成している関係上、他の通貨を含める場合は微調整が必要になります(例:台湾ドル、ハンガリー・フォリント)

PDFの問題

MagentoフレームワークのPDF出力機能では、別途フォントファイルが必要です。本来のPDFではフォントの埋め込みは不要なのですが、MagentoフレームワークのPDF出力機能ではフォントファイルのPDFへの埋め込みが不可欠です。
標準では英文フォントしか付属しておらず、日本語や中国語などは正しく出力できません。
日本語化エクステンションでは日本語フォントを含めた調整を行っています。中国語やハングルなどで出力されたい場合は別途対応するフォントの入手が必要です。

対処方法

以下のパッケージを導入します。
新たにフォントを追加したい場合は、CommunityEngineering/FontIpaなどを参考に実装する必要があります。

インボイス制度

日本国内で開発されている製品でも対応の必要があった制度ですが、Adobe Commerce / Magento Open Sourceでは下記の記事の通り対応用のエクステンションが用意されています。
もちろん日本国内向けに販売をしないのであれば不要です。

対処方法

以下のパッケージを導入します。
実装が合わない場合は微調整を行うか、完全に個別対応する必要があります。

国内の決済・配送業者との連携

標準機能で用意されている連携としては、

  • PayPal(Braintree)
  • DHL
  • FedEX
  • UPS
  • USPS

のみです。決済はPayPalのみ。残りは全て配送業者です。
それ以外のあらゆる国の決済代行・配送業者との連携は標準には含まれていません。当然日本国内も同様です。
構築時の要件に基づいて、既製のエクステンションを導入するか独自開発するかを選択することになります。

標準にない機能・仕様

ここからは標準機能で用意されていない機能を取り上げていきます。
いずれも要件定義の段階で話題にのぼることが多いものです。

注文明細の部分キャンセル

時折ご要望をいただくことがありますが、残念ながら標準機能の注文キャンセル処理は明細単位や数量変更でのキャンセルを扱えません。
注文のキャンセルは全て「全キャンセル」となります。
明細単位での変更や数量変更については「注文編集」機能で新しい注文データとして起こし直す必要があります。

注文番号を保持したままの注文編集

Adobe Commerce / Magento Open Sourceの標準機能では、注文を編集する場合に必ず編集前の注文番号に枝番が付きます。
編集前の注文番号を再利用することはできません。

また、編集後の注文が確定したあとには編集前の注文はキャンセルされます。
管理画面では編集前のデータをたどることができるため、複数回の編集がどのような経緯で行われたかを知ることが可能です。

一部出荷(明細分納・数量分納)時の追加送料

送料の金額の計算は注文確定時に行われます。この時点で支払方法によっては金額が動かせなくなることがあります。
一部出荷時に発生する追加送料については、販売側の負担にならざるを得ません。

また、商品によって出荷場所や配送業者が異なるような場合は特に注意が必要です。
Adobe Commerce / Magento Open Sourceでは配送業者が発番する送り状番号(追跡番号とも言います)を配送データに関連付ける機能があります。
この機能では複数枚の送り状番号を登録できます。ただし、Adobe Commerce / Magento Open Source上に存在しない配送方法・業者の場合は下図のように「カスタム値」を選択して配送方法・会社名を都度指定する必要があります。

送り状番号の入力

「カスタム値」を選んだ場合は配送状況を確認するページへのリンクは表示されません。
購入者側が自分で探す必要があります。

継続課金・サブスクリプション

Magento1.xの時代にはベータ版としてPayPal Express Checkoutを利用した機能が標準バンドルされていました。
現在のAdobe Commerce / Magento Open Sourceでは削除されているため、継続課金・サブスクリプションを実現したい場合には別途のカスタマイズが必要になります。

個別のデータに対する管理者権限管理

大規模な事業者の事案では時折見られる要望です。
残念ながら個別のデータを対象とした管理者の権限管理機能は用意されていません。

Adobe Commerceでは

Adobe Commerceの場合は、管理者の権限をウェブサイトやストアビューのレベルで制限できます。
ですが、同じウェブサイトやストアビューの範囲内で個別のデータに対する各種権限を設定することはできません。

削除フラグ

こちらも時折いただくご要望ですが、残念ながらAdobe Commerce / Magento Open Source上のデータには「削除フラグ」という概念はありません。
CMSページや商品の「有効・無効」はありますが、「削除」ボタンを押すとデータベースから物理的にデータが消えます。

確認画面

  • お問い合わせ
  • 会員登録
  • 会員情報編集(住所も)
  • 購入画面

といった箇所には「確認画面」はありません。
購入画面の場合は、支払方法選択ステップに規約同意などの誤操作防止用機能が用意されていますが、独立した確認画面はありません。

業務システム連携

標準ではあらゆる業務システムとの連携機能は用意されていません。
全てカスタマイズ要件となり、既製のエクステンションまたは独自開発が必要です。

誤解されやすい機能

誤解や拡大解釈されやすい機能・仕様についてまとめました。
Adobe Commerce / Magento Open Sourceの管理画面を多用しなければあまり問題ではないかも知れません。

管理画面の一覧機能にある「エクスポート」ボタン

エクスポートボタン

  • 顧客一覧
  • 注文一覧

などに用意されている「エクスポート」ボタンですが、この機能はよく誤解を受けます。
この機能は

その時点で表示されている一覧の情報をそのままCSVやスプレッドシートで出力する

機能です。
注文情報全体や、ある特定の連携先に合わせた構成のデータを出力する機能ではありません。
単に今見えている一覧の列構成のままにデータを出力してきます。
Magento1.xの時代からこの機能は実装されていますが、できれば原文を「Export grid data as」などにできれば誤解も減るのではないかと思うことがあります。。

インポート・エクスポート機能

標準機能としてインポート・エクスポート機能が用意されていますが、その対象は

  • 価格
  • 商品
  • 顧客
  • 顧客住所
  • 倉庫の在庫数

に限定されています。

  • 注文情報
  • カテゴリ
  • プロモーション定義

などをCSVで入出力する機能は標準では用意されていません。

反対にWeb APIには各種エンドポイントが用意されています。
2.3系以降では非同期・バルクAPIも追加されていますので、コア開発者としてはそちらを利用してほしいという意図なのでしょう。

Adobe Commerceでは

最近のAdobe Commerce向けにはAdobe I/O EventsとAdobe App Builderを組み合わせたカスタムWebhookを構築する方法も整備されはじめているので、外部システムへデータを連携する際には候補に入れてもよいでしょう。データ件数や頻度が多い場合にはCSVでの入出力よりもモダンな実装が可能だと思われます。

ニュースレター配信機能

一見使えそうな機能ですが、以下の制限があります。

  • 配信対象者全体(ストアビュー別)に対し、一括の送信しかできない
  • 各種条件による対象者絞り込み機能はない
  • 5分おきに最大3件の配信キューに対し、20件ずつしかメール送信できない
  • 購読解除はゲスト購読者の場合、配信されたニュースレター上の解除リンクからしかできない
  • ゲスト購読者にはメールアドレス以外の情報が存在しない

メール配信については単位時間あたりの配信件数だけでなく、対象者の抽出や開封率計測といった機能が提供されている外部の配信サービスを利用されることを強くおすすめします。

Adobe Commerce Cloudでは

Adobe Commerce Cloudの場合はメール送信件数の上限値が存在します。
この値を超過した場合、通常の注文メールなども送信できなくなる恐れがあり、サイト運営に多大な影響を及ぼします。
配信件数の多いニュースレター配信については別のサービスの利用が必要です。
(Adobe側に確認したところ、「非推奨」との回答を正式に頂きました)

レポート機能

Magento1.x時代からほとんど進歩していない機能です。
正直な話、この機能に期待するくらいであれば、各種データを外部システムに取り出して分析したほうが無難です。

Adobe Commerceでは標準な機能

以下のような機能はAdobe Commerceでは標準機能として用意されています。
Magento Open Sourceでもサードパーティ製エクステンションの導入やカスタマイズなどで実現可能です。

  • ポイント
  • ストアクレジット
  • フォローアップメール
  • 顧客セグメント
  • コンテンツステージング
  • 管理者操作ログ
  • 注文一覧のアーカイブ機能
  • RMA機能

まとめ

Adobe Commerce / Magento Open Sourceには様々な機能が標準で搭載されています。
しかし、その全てが実用に耐えるものであるかと言われればそうではありません。
また、元々が北米・欧州を主戦場として開発・成長してきた関係上、北東アジアやアラブ圏向けの対応は未だ十分であるとは言い難い状況です。
とはいえ不足している部分はカスタマイズでかなりの領域が対処可能です。

ぜひ、Adobe Commerce / Magento Open Sourceを検討される際は、最初にMagento Open Sourceの標準を試されることをおすすめします。