intershop - ProductLineItem FreeGift 发生了我们意想不到的变化

标签 intershop

我们在免费礼物方面遇到了一些奇怪的问题。

调用ProcessBasket-RemoveLineItem后,保留在购物篮中的ProductLineItem中的FreeGift标记从true更改为false。

看起来问题出在 InvalidateBasketCalculation 管道(来自 bc_basket)中,在 ProcessBasketInvalidation-SetBasketInvalidationStatus 中调用。

enter image description here

最佳答案

产品是否为免费赠品的信息存储在购物篮计算结果的CompulatedItems中。通过调用管道 ProcessBasket-RemoveLineItem,购物篮计算结果将被标记为无效(正如您正确地发现这是由管道 InvalidateBasketCalculation 完成的)。因此,现有的 CompulatedItems 将被删除,因为它们可能不再正确(请注意,这是 ICM 7.10.5.5 中引入的最新更改;如果您使用的是旧版本此问题可能还有其他原因)。因此,此时产品是否是免费礼物的信息就会丢失。

要解决此问题,只需通过调用管道 ProcessBasket-Calculate 再次触发购物篮计算即可。

关于intershop - ProductLineItem FreeGift 发生了我们意想不到的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56480090/

相关文章:

java - 您如何/在哪里搜索计算机/项目上已安装的 java 库?

java - Intershop 对象接线如何工作

intershop - 如何告诉页面缓存忽略某些 URL 参数

exception - 尝试更新 ProductPO 自定义属性时出现 OCAException

intershop - 7.9 中自定义 URLRewrite 规则的问题

Intershop:有没有办法从 ISML 的属性文件中读取值?

database - 如何在Intershop7.9中为自定义对象创建数据库表

java - Intershop 代码部署工作流程