我如何根据阔叶树中的位置获得多个建议零售价?
How can I have multiple MSRP based on location in broadleaf?
我需要根据客户位置制定多个 MSRP。我计划在 "product-option" 中添加每个产品都可用的 "location" 字段,因此每个产品都会根据位置提供一个 SKU。而且我不希望用户选择这个选项,它应该是默认选择的。
这样做是否正确,或者请提出更好的实现方法。
我认为这取决于您的定价考虑因素有多短暂。如果定价将根据费率 table(或类似的东西)定期更改,您可以使用动态定价服务,这将允许您根据您认为的任何业务规则以编程方式更改定价重要的。从注册您自己的 DynamicSkuPricingFilter(即扩展 AbstractDynamicSkuPricingFilter - 请参阅 DefaultDynamicSkuPricingFilter)开始,并提供对您的定价确定很重要的任何属性。然后,将您自己的 DynamicSkuPricingService 实现(请参阅 DefaultDynamicSkuPricingServiceImpl)注册到 return 正确的定价。我还会考虑使用位置信息扩展 DiscreteOrderItemImpl,以便您在相关位置的购物车中有记录。
否则,如果您想拥有更永久的数据结构和明确的管理员用户意图来维护此定价,那么我会建议一个新的实体结构,将简单的位置和价格与您的默认 sku 相关联。您应该能够使用 @AdminPresentation 注释在管理员中自然地维护它。例如,考虑一个新的管理员注释的 "LocationPrice" 实体集合,来自 SkuImpl 的自定义扩展。然后,您仍会使用上面的动态定价建议,但您的决定将基于此维护的数据。我认为这在框架中比尝试使用选项和多个 skus 更自然。
最后,我假设您使用的是 Broadleaf 的社区版本。我们通常使用功能更丰富的商业 PriceList 模块来满足此类需求。
我需要根据客户位置制定多个 MSRP。我计划在 "product-option" 中添加每个产品都可用的 "location" 字段,因此每个产品都会根据位置提供一个 SKU。而且我不希望用户选择这个选项,它应该是默认选择的。
这样做是否正确,或者请提出更好的实现方法。
我认为这取决于您的定价考虑因素有多短暂。如果定价将根据费率 table(或类似的东西)定期更改,您可以使用动态定价服务,这将允许您根据您认为的任何业务规则以编程方式更改定价重要的。从注册您自己的 DynamicSkuPricingFilter(即扩展 AbstractDynamicSkuPricingFilter - 请参阅 DefaultDynamicSkuPricingFilter)开始,并提供对您的定价确定很重要的任何属性。然后,将您自己的 DynamicSkuPricingService 实现(请参阅 DefaultDynamicSkuPricingServiceImpl)注册到 return 正确的定价。我还会考虑使用位置信息扩展 DiscreteOrderItemImpl,以便您在相关位置的购物车中有记录。
否则,如果您想拥有更永久的数据结构和明确的管理员用户意图来维护此定价,那么我会建议一个新的实体结构,将简单的位置和价格与您的默认 sku 相关联。您应该能够使用 @AdminPresentation 注释在管理员中自然地维护它。例如,考虑一个新的管理员注释的 "LocationPrice" 实体集合,来自 SkuImpl 的自定义扩展。然后,您仍会使用上面的动态定价建议,但您的决定将基于此维护的数据。我认为这在框架中比尝试使用选项和多个 skus 更自然。
最后,我假设您使用的是 Broadleaf 的社区版本。我们通常使用功能更丰富的商业 PriceList 模块来满足此类需求。