如何將多個 Mirakl 實例與單個 Adobe Commerce 多商店實例集成
已發表: 2022-03-26如何將多個 Mirakl 實例與單個 Adobe Commerce 多商店實例集成
介紹
Mirakl 市場平台可以與 Adobe (Magento) Commerce 平台集成,以創建一個端到端的在線市場。 Mirakl 提供了一個 Magento 連接器來加速涵蓋所有標準市場流程的集成過程。 此連接器允許您在 Mirakl 和 Magento 之間自動同步數據。 它還提供了一個示例前端模塊,演示如何自定義頁面以提供由 Mirakl 提供支持的 Marketplace 功能。
默認情況下,連接器旨在將單個 Mirakl 實例與單個 Magento 實例集成。 但是,對於多國部署,可能存在每個國家都有自己的 Mirakl 實例但單個 Magento 實例服務於具有多個店面的所有國家/地區的情況。 在這種情況下,必須覆蓋默認連接器行為,以便將每個 Mirakl 實例與其特定的 Magento 存儲實例集成。 我們已經在他們的 B2B 市場上為我們的一位客戶成功實施了這一點。 進行了以下更改以支持此方案。 有關多個 Mirakl 實例如何與單個 Adobe Commerce 多商店實例一起工作的更多詳細信息,請參閱圖 1.1。

全局配置更改:
必須在商店視圖級別為每個 Mirakl 實例配置單獨的 URL 和密鑰。 我們通過重寫 config helper 類以在商店視圖級別配置 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 實例的商店特定報價,反之亦然。
從 Q01 到 Q07,實施了七次 API 調用,以涵蓋 B2B 市場的完整報價功能。
價格、貨幣和區域設置
Magento 提供商店特定的區域設置和貨幣配置。 由於我們有多個 Mirakl 實例,每個實例都有自己特定的語言環境、貨幣和價格。
連接器助手配置類被覆蓋以設置商店特定的同步。
管理網格更改
管理網格相關的 Cron 作業進行了擴展和定制,以支持存儲特定的同步細節。 它適用於默認商店,但對於其他商店,必須擴展此部分以顯示商店特定的同步更新。
前端模塊
與麵包屑、PLP、PDP、迷你購物車、購物車、結帳、訂單歷史記錄、訂單詳細信息、報價創建和報價詳細信息頁面相關的前端組件經過定制以處理多商店功能。
包起來
成功實施策略的關鍵是能夠將 Magento 店面映射到特定的 Mirakl 實例。 我們使用商店 ID 作為識別與特定商店相關的數據的唯一方式。 與 Magento 和 Mirakl 之間的數據同步相關的所有連接器代碼都在這個多商店場景中受到影響。 除了報價流,我們不必編寫任何新類,擴展和定制幫助我們實現了目標。 我們的實現涵蓋了兩個 Mirakl 實例與一個 Magento 實例的集成。 但是可以擴展相同的設計以集成更多 Mirakl 實例。 雖然我們沒有看到任何性能問題,但隨著我們增加獨特店面的數量,性能是否受到影響仍有待探索,每個店面都有自己的 Mirakl 實例。
關於作者
Siddhartha Shankar 是 McFadyen Digital 的技術架構師。 他熱愛一切市場和技術。 作為一名狂熱的旅行者和音樂愛好者,他與妻子和六歲的女兒住在班加羅爾。 Sid 在 McFadyen Digital 長期任職期間參與了一些大型電子商務/市場實施項目。