将数据与SaaS数据导出同步
当您安装需要数据导出的Adobe Commerce服务(如“目录服务”、“实时搜索”或“产品推荐”)时,将安装SaaS数据导出模块的集合以管理数据收集和同步过程。
SaaS数据导出会持续将产品数据从Adobe Commerce实例移动到Commerce Services平台,以使数据保持最新。 例如,产品推荐需要最新的目录信息才能准确地返回具有正确名称、定价和可用性的推荐。 有关监视同步进程的详细信息,请参阅查看和管理同步进程。
下图显示了SaaS数据导出流程。
适用于Adobe Commerce的
当目录数据在Adobe Commerce中更改时,同步将经过这些阶段。
- 实体更改检测 - Magento的Mview系统检测订阅的数据库表(例如,
catalog_product_entity)中的行更改,并将条目写入changelog表。 - 信息源索引 — 信息源索引器读取更改日志,从源表加载实体数据,并组合信息源项目。
- 数据收集和转换 — 在馈送架构
et_schema.xml中注册的提供程序收集字段数据。 - 哈希去重 — 为每个馈送项计算内容哈希。 跳过自上次导出后散列未发生更改的项目,因此仅传输修改后的数据。
- HTTP提交 — 馈送项目将作为经过身份验证的HTTP POST批次发送到Adobe SaaS馈送引入服务。
- 状态持续存在 - API响应状态将回写到每个项目的信息源表。
- 失败重试 — 计划的cron作业会自动重试导出失败的项。
同步模式
SaaS数据导出有两种模式来处理实体馈送:
-
立即导出模式 — 在此模式下,将在单个迭代中收集数据并立即将其发送到Commerce服务。 此模式可加快将实体更新交付到Commerce服务的速度,并减小信息源表的存储大小。
-
旧版导出模式 — 在此模式下,将在单个进程中收集数据。 然后,cron作业将收集的数据发送到连接的商务服务。 在数据导出日志条目中,使用旧模式的馈送被标记为
(legacy)。
同步类型
SaaS数据导出支持三种同步类型:完全同步、部分同步和重试失败的项同步。
完全同步
将Adobe Commerce实例连接到Commerce服务后,执行完全同步以将实体馈送数据从Adobe Commerce发送到连接的服务。
部分同步 partial-sync
通过部分同步,SaaS数据导出会自动将Commerce应用程序中的更新(例如产品名称更改或价格更新)发送到连接的商务服务。
为了使部分同步正常工作,Commerce应用程序需要以下配置:
- 通过cron作业启用任务计划
- 所有SaaS数据导出索引器均在
Update by Schedule模式下配置。
重试失败的项目同步 retry-failed-items-sync
重试失败项目同步使用单独的进程来重新发送由于同步过程中出现的错误(例如应用程序错误、网络中断或SaaS服务错误)而未能同步的项目。 resync_failed_feeds_data_exporter组中的*_resend_failed_items cron作业每5分钟自动处理一次此操作。
计划的cron作业
以下cron组按固定计划自动执行管道。
indexindexer_update_all_viewsindexindexer_reindex_all_invalidresync_failed_feeds_data_exporter*_resend_failed_itemscommerce_data_exportsaas_data_exportercommerce_data_exportcleanup_deleted_feed_items馈送提交和HTTP错误处理 feed-submission-and-http-error-handling
馈送项目会通过HTTP POST以经过身份验证的gzip压缩的JSON批次形式提交。 下表显示了HTTP响应代码如何映射到导出状态和重试行为。
var/log/saas-export-errors.log。除了HTTP级失败之外,应用程序级错误(如本地处理失败或网络中断)也计划由*_resend_failed_items cron作业自动重试。
从Commerce管理员的Data Feed Sync Status页面中监视每个馈送的状态。