如何将多个 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 长期任职期间参与了一些大型电子商务/市场实施项目。