场景:
我在控制器中选择了PROMOTIONS产品选项,并且 它返回potencialPromotion,但是它没有值 该结构中的折扣仅显示消息(如 加速器将显示消息。)
我在Hybris 6.6中,我查找了 DefaultPromotionEngineService.evaluate 方法,因为它在购物车中使用,并且对于购物车,它返回促销操作,但是等效方法因为产品没有任何回报。
有人这样做吗?
尽管我知道这与推广引擎的灵活性背道而驰,但似乎是一个非常常规的要求。
我可以对消息使用正则表达式以获取折扣,但这是我不愿采取的方法,因为它的结局很差。...
请提出建议。
谢谢
答案 0 :(得分:0)
由于您之前没有提到它,所以我的回答是基于旧版促销,而不是促销引擎。如果可以在Promotion Engine中进行相同的操作,我将更新答案。
是的,OOTB没有提供给您PDP折扣价的服务。
我认为您可以做什么
覆盖 PromotionsPopulator 以获取折扣值并将其设置为promotionData。
if (fixedPricePromotion instanceof ProductFixedPricePromotionModel)
{
PromotionPriceRowModel promotionPriceRowModel = ((ProductFixedPricePromotionModel)source).getProductFixedUnitPrice();
//TODO: covert promotionPriceRowModel to promotionPriceData
//TODO: set to promotionData
}
ProductPromotionsPopulator 内部调用上述填充器,将ProductPromotionModel转换为数据。