我们在免费礼物方面遇到了一些奇怪的问题。
调用ProcessBasket-RemoveLineItem
后,保留在购物篮中的ProductLineItem
中的FreeGift
标记从true更改为false。
看起来问题出在 InvalidateBasketCalculation
管道(来自 bc_basket)中,在 ProcessBasketInvalidation-SetBasketInvalidationStatus
中调用。
最佳答案
产品是否为免费赠品的信息存储在购物篮计算结果的CompulatedItems
中。通过调用管道 ProcessBasket-RemoveLineItem
,购物篮计算结果将被标记为无效(正如您正确地发现这是由管道 InvalidateBasketCalculation
完成的)。因此,现有的 CompulatedItems
将被删除,因为它们可能不再正确(请注意,这是 ICM 7.10.5.5 中引入的最新更改;如果您使用的是旧版本此问题可能还有其他原因)。因此,此时产品是否是免费礼物的信息就会丢失。
要解决此问题,只需通过调用管道 ProcessBasket-Calculate
再次触发购物篮计算即可。
关于intershop - ProductLineItem FreeGift 发生了我们意想不到的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56480090/