複数の Mirakl インスタンスを単一の Adobe Commerce Multi-Store インスタンスと統合する方法
公開: 2022-03-26複数の Mirakl インスタンスを単一の Adobe Commerce Multi-Store インスタンスと統合する方法
序章
Mirakl マーケットプレイス プラットフォームは、Adobe (Magento) Commerce プラットフォームと統合して、エンド ツー エンドのオンライン マーケットプレイスを作成できます。 Mirakl は、Magento コネクタを提供して、すべての標準的なマーケットプレイス プロセス フローをカバーする統合プロセスを高速化します。 このコネクタを使用すると、Mirakl と Magento の間でデータを自動的に同期できます。 また、Mirakl を利用した Marketplace 機能を提供するためにページをカスタマイズする方法を示すフロントエンド モジュールの例も提供します。
デフォルトでは、コネクタは単一の Mirakl インスタンスを単一の Magento インスタンスと統合するように設計されています。 ただし、複数の国にロールアウトする場合、国ごとに独自の Mirakl インスタンスがあるが、単一の Magento インスタンスが複数のストアフロントを持つすべての国にサービスを提供するという状況が発生する可能性があります。 このシナリオでは、各 Mirakl インスタンスを特定の Magento ストア インスタンスと統合するために、デフォルトのコネクタ動作をオーバーライドする必要があります。 B2B マーケットプレイスでクライアントの 1 人にこれを実装することに成功しました。 このシナリオをサポートするために、次の変更が加えられました。 複数の Mirakl インスタンスが単一の Adobe Commerce マルチストア インスタンスでどのように機能するかについて詳しくは、図 1.1 を参照してください。

グローバル構成の変更:
各 Mirakl インスタンスのストア ビュー レベルで個別の URL とシークレット キーを構成する必要があります。 これは、構成ヘルパー クラスをオーバーライドして、ストア ビュー レベルで API エンドポイントを構成することで実現しました。 同期スクリプトの処理を担当する Console クラスは、パラメーターとして渡されるストア ID に基づいてストア ビュー固有の同期スクリプトを処理するようにオーバーライドされました。
分類の同期:
Magento から Mirakl への分類法の同期は、Mirakl H01 API 呼び出しを使用して実現されます。 この API は、Magento カテゴリを Mirakl にエクスポートするために呼び出されます。 ただし、マルチストアの実装では、各 Magento ストアフロントが分類法を特定の Mirakl インスタンスのみにエクスポートするようにする必要があります。 関連する Mirakl コネクタ ヘルパー クラスをオーバーライドして、Mirakl インスタンスを特定の Magento ストアフロントにマップすることで、これを実現しました。
製品の輸入:
タクソノミーの同期と同様に、製品のインポートでも、Mirakl インスタンスから Magento の特定のストアフロントへのマッピングが必要です。 以下
これを実現するために、次のコンポーネントがオーバーライドされました。
- ストア ID が cli コマンドの一部として渡されたそれぞれのストア ビューにデルタ製品をインポートするためのコマンド クラス。
- 製品のインポート プロセス中にストア ID を設定するために使用されるインターセプター プラグインでは、ルート カテゴリを設定する必要がありました。
オファーのインポート
OF51F API は、Mirakl オファーを Magento にインポートするために使用されます。 複数店舗の実装では、店舗固有のオファーをインポートするために、オファー インポート同期スクリプトをオーバーライドする必要があります。
OOTB テーブルは、ストア ID でオファーをマップするように変更されました。カスタム Cron ジョブは、パラメーターとして渡されたストア ID に基づいてストア固有のオファーのインポートに対応するために作成されました。
属性のインポート:
Mirakl コネクタは、PM01 API 呼び出しを使用して、Magento から Mirakl に製品属性をエクスポートします。 マルチストアの実装では、同期スクリプトをオーバーライドして、特定の Magento ストアの属性がマッピングされた Mirakl インスタンスのみにエクスポートされるようにしました。
属性値リストのインポート:

Mirakl コネクタは、VL01 API 呼び出しを使用して、属性値リストを Magento から Mirakl にエクスポートします。 マルチストアの実装では、同期スクリプトをオーバーライドして、特定の Magento ストアの値リストがマップされた Mirakl インスタンスのみにエクスポートされるようにしました。
ショップ輸入:
Mirakl ショップは、S20 API を使用して Magento にインポートされます。 マルチストアの実装では、S20 同期スクリプトをオーバーライドして、ストア固有のショップ情報を Mirakl からマッピングされたストア ビューに同期します。
出荷情報
Mirakl コネクタには、出荷情報をインポートして Magento データベースに保存するための特定の Cron ジョブはありません。 値は、配送料が表示されるユーザー ジャーニーのさまざまなポイントで SH01/SH02 を使用して取得されます。
PLP、PDP、カート、チェックアウト、注文履歴、注文詳細ページなどのさまざまなポイントで配送料を取得するために、フロントエンド モジュールが拡張およびカスタマイズされました。 ストア固有のリクエストに基づいて、マッピングされた Mirakl インスタンスから配送料が取得され、表示されました。
注文の同期
OR01 API は注文の作成に使用され、OR11 API は Mirakl と Magento 間の注文ステータスの同期に使用されます。
次のページは、ストア固有の実装に対応するために拡張およびカスタマイズされました。
- 注文確認ページ
- 注文履歴ページ
- 注文詳細ページ
注文フローが変更され、ストア固有の注文がマップされた Mirakl インスタンスにエクスポートされるようになりました。 Mirakl コネクタと Magento コア クラスは、それぞれの Mirakl インスタンスでの注文作成をカバーするようにカスタマイズされました。 フロントエンド モジュールが拡張され、注文履歴ページと注文詳細ページでストア固有の注文ステータス表示に対処するためにオーバーライドされました。
見積もりの作成と同期
Mirakl コネクタは、B2B 見積シナリオを実装していません。 コネクタ機能を拡張して、Magento からマップされた Mirakl インスタンスへ、およびその逆へストア固有の見積もりを作成、更新、同期するための新機能を導入しました。
B2B マーケットプレイスの完全な見積もり機能をカバーするために、Q01 から Q07 までの 7 つの API 呼び出しが実装されました。
価格、通貨、ロケールの構成
Magento は、ストア固有のロケールと通貨の構成を提供します。 複数の Mirakl インスタンスがあったため、それぞれに固有のロケール、通貨、および価格がありました。
ストア固有の同期を設定するために、コネクタ ヘルパー構成クラスがオーバーライドされました。
管理グリッドの変更
管理グリッド関連の Cron ジョブは、ストア固有の同期の詳細をサポートするために拡張およびカスタマイズされました。 デフォルト ストアでは正常に機能しますが、追加のストアでは、ストア固有の同期更新を表示するためにこのセクションを拡張する必要がありました。
フロントエンド モジュール
ブレッドクラム、PLP、PDP、ミニ カート、カート、チェックアウト、注文履歴、注文の詳細、見積もりの作成と見積もりの詳細ページに関連するフロントエンド コンポーネントは、マルチ ストア機能を処理するためにカスタマイズされました。
要約
実装戦略を成功させる鍵は、Magento ストアフロントを特定の Mirakl インスタンスにマッピングできるようにすることです。 特定の店舗に関連するデータを識別する一意の方法として、店舗 ID を使用しました。 Magento と Mirakl 間のデータ同期に関連するすべてのコネクタ コードは、このマルチ ストア シナリオで影響を受けました。 見積フローを除いて、新しいクラスを作成する必要はなく、拡張とカスタマイズによって目標を達成することができました。 私たちの実装は、2 つの Mirakl インスタンスと 1 つの Magento インスタンスの統合をカバーしていました。 ただし、同じ設計を拡張して、より多くの Mirakl インスタンスを統合できます。 これによるパフォーマンスの問題は見られませんでしたが、それぞれ独自の Mirakl インスタンスを持つ一意のストアフロントの数を増やしたときにパフォーマンスが影響を受けるかどうかは、調査する必要があります.
著者について
Siddhartha Shankar は、McFadyen Digital のテクニカル アーキテクトです。 彼は市場とテクノロジーのすべてを愛しています。 熱心な旅行者で音楽愛好家でもある彼は、妻と 6 歳の娘と一緒にバンガロールに滞在しています。 Sid は、McFadyen Digital での長い勤務期間中、高額な e コマース/マーケットプレイスの実装プロジェクトに参加してきました。