ProductLineItem FreeGift会在我们不希望的地方进行更改

时间:2019-06-06 14:51:34

标签: intershop

免费礼物给我们带来一些奇怪的问题。

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

问题似乎出在InvalidateBasketCalculation中的ProcessBasketInvalidation-SetBasketInvalidationStatus管道(来自bc_basket)中。

enter image description here

1 个答案:

答案 0 :(得分:2)

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

要解决此问题,只需调用管道ProcessBasket-Calculate再次触发篮子计算。