首页 > 解决方案 > SAP Hybris Commerce - 更改在线和离线目录会导致不同步

问题描述

我正在尝试在 Hybris 1811 中创建一个 cronjob,它更新了分阶段和在线目录版本中某些产品的属性。

但是,即使我在目录的两个版本中对产品进行了完全相同的更改,该产品也会在 Backoffice 中的版本之间被标记为不同步。

当我仅在在线目录中进行更改时,产品不会取消同步,但是从暂存到在线的任何同步都会覆盖更改的内容。

代码:

productStaged = productService.getProductForCode(stagedCatalog, productCode);
productOnline = productService.getProductForCode(onlineCatalog, productCode);

if (productStaged != null) {
    productStaged.setMargin(margin, locale);
    modelService.save(productStaged);
}

if (productOnline != null) {
    productOnline.setMargin(margin, locale);
    modelService.save(productOnline);
}

有没有办法使这项工作成为可能,而不会导致产品在 Backoffice 中看起来不同步?

谢谢!

标签: javahybrissap-commerce-cloud

解决方案


正确的方法是在 Staged 中进行更改,并从 Staged 同步到 Online。您不应该同时编辑两个目录版本。理想情况下,在线是只读的。

要同步项目列表,请查看 CatalogSynchronizationService API: https://help.sap.com/doc/02d5152884b34821a06408495ba0b771/1905/en-US/de/hybris/platform/catalog/synchronization/CatalogSynchronizationService.html#performSynchronization(java. util.List,de.hybris.platform.catalog.model.SyncItemJobModel,de.hybris.platform.catalog.synchronization.SyncConfig)


推荐阅读