我想了解哪些促销是应用在促销引擎上的产品,以便在它们之间分配产品的价格,并将它们发送到ERP。
当我们看海布里语中的getPromotionResults(order).时,有一种叫做promotionService的方法它返回PromotionOrderResults对象。在这个对象中,两个方法与我的例子有关,getAppliedProductPromotions()和getAppliedOrderPromotions()。如果我没有错过它,我就无法在这些方法的结果中看到产品信息来进行推广。另外,我通过promotion.getAppliedOrderPromotions().get(0).getAllAttributes()查看了所有属性,但是我不能拥有它们。
在促销中,我如何知道产品信息和折扣金额?
发布于 2018-08-30 09:42:53
你要找的方法是
PromotionOrderResults#getAppliedProductPromotions()
这将返回所有应用于订单条目/产品的促销活动,您可以通过PromotionOrderEntryConsumed PromotionResult#getConsumedEntries()导航到产品。
发布于 2021-09-24 00:11:08
我有办法得到免费赠送的产品.通常是这样的
Set promotionResultModels = cart.getAllPromotionResults();
if (!Objects.isNull(promotionResultModels))
{
Iterator resultsIterator = promotionResultModels.iterator();
while (resultsIterator.hasNext())
{
PromotionResultModel promoResultModel = (PromotionResultModel) resultsIterator.next();
Iterator var6 = promoResultModel.getActions().iterator();
while (var6.hasNext())
{
AbstractPromotionActionModel action = (AbstractPromotionActionModel) var6.next();
if (action instanceof RuleBasedOrderAddProductActionModel)
{
String freeGiftProductCode = ((RuleBasedOrderAddProductActionModel) action).getProduct().getCode();
}
}
}
}但是在我的场景中,这是免费礼品促销,不确定基于包的促销是否有类似的属性。根据产品实际上激发了促销,我仍然在寻找一种方法来获得它。我做过的最贴切的事情是:
((RuleBasedOrderAddProductActionModel) action).getRule().getRuleContent()然而,这是海布里生成的代码,其中有RAO和产品代码被埋没在该字符串中。所以我需要写一个丑陋的脚本解析器来找到代码。
让我知道如果你发现了第二部分,产品触发的广告,我仍然在寻找它。
https://stackoverflow.com/questions/51867041
复制相似问题