我瀏覽了Broadleaf commerce v2.2文檔/教程,特別是定製添加項目工作流和動態定價模塊。Broadleaf Commerce - 動態定價
我想在將產品添加到購物車時爲其動態定價。
我是正確的思維 - 當一個產品必須重新定價可以有這樣做的兩種方法:?
Customizing Add Item Workflow using Activity - 更新做訂單定價的任何修改由定價撤消模塊。因此,這種方法不起作用。
這可以說明:
方法1:
class DynamicPricingActivity extends BaseActivity{
....
@Override
public ProcessContext execute(ProcessContext context) throws Exception {
CartOperationRequest request = ((CartOperationContext) context).getSeedData();
updatePhonePrice(request.getOrder());
return context;
}
....
}
方法2:
有關於Dynamic Pricing Configuration說明問題。
如何調用方法
MyDynamicSkuPricingServiceImpl # getSkuPrices()
?(在文件中提到,當用getPrice()方法被調用,我的文檔,但getSkuPrices中提到(配置一切
MyDynamicSkuPricingServiceImpl#getSkuPrices()
會被調用)永遠不會被隱式調用)
已更新 - 我發現如果在DynamicPricingFilter
中HashMap pricingConsiderations爲空,則DynamicPricingService#getSkuPrices()
將不會被調用。因此,對於dynamicPricingService工作,它必須有一個非空的HashMap,它會被調用implicitly.Not知道爲什麼它需要...
如何更新產品的附加定價到購物車沒有堅持這個價值的數據庫?
修訂
我能夠添加動態定價,而不必在數據庫堅持價值:
DiscreteOrderItem orderItem = orderItemService.createDynamicPriceDiscreteOrderItem(orderRequest, pricingConsiderations);
orderItem.setRetailPrice(new Money("623.34"));
orderItem.setSalePrice(new Money("888.888"));
orderItem.setPrice(orderItem.getSalePrice());
cart.addOrderItem(orderItem);
cart = orderService.save(cart, true);
然而,車總被設置爲零售價值:623.34。我如何得到正確的總數(888.888)?