SAP Hybris Commerce - 在线和离线目录的更改导致不同步

SAP Hybris Commerce - Change to both online and offline catalog causes desynchronization

我正在尝试在 Hybris 1811 中创建一个 cronjob,它会更新 Staged 和 Online 目录版本中某些产品的属性。

但是,即使我在目录的两个版本中对产品进行了完全相同的更改,产品也会在 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 中看起来不同步的情况下完成这项工作?

谢谢!

正确的做法是在Staged中修改,然后从Staged同步到Online。您不应该同时编辑两个目录版本。 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)