2020-08-25 21:30发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
在Hybris Commerce B2B结帐期间可以添加到订单中的最大项目数量是多少? 订单中按项目或项目总数有数量限制吗?
哈西卜。
你好哈西卜·米尔扎
我认为您需要对CartModel进行限制以限制订单数量。 但是据我所知,您在ProdutModel级别有一个字段,即MaxOrderQuantity。 这是在 DefaultCommerceAddToCartStrategy.java 中检查的,如果您尝试添加的内容不是 ProdutModel。 MaxOrderQuantity , CommerceCartModificationStatus.MAX_ORDER_QUANTITY_EXCEEDED em>被抛出。 我建议对此进行挖掘,并假设它应该自动运行。 请参阅下面的完整ootb逻辑。
DefaultCommerceAddToCartStrategy.java 受保护的字符串getStatusCodeForNotAllowedQuantityChange(final Integer maxOrderQuantity, 最后的Integer cartLevelAfterQuantityChange) { 如果(isMaxOrderQuantitySet(maxOrderQuantity)&&(cartLevelAfterQuantityChange.longValue()== maxOrderQuantity.longValue())) { 返回CommerceCartModificationStatus.MAX_ORDER_QUANTITY_EXCEEDED; } 其他 { 返回CommerceCartModificationStatus.NO_STOCK; } } /** *一定要加入购物车。 * * @param参数 *参数 * @返回购物车修改 * @引发CommerceCartModificationException *商业购物车修改例外 */ 受保护的CommerceCartModification doAddToCart(最终CommerceCartParameter参数)引发CommerceCartModificationException { CommerceCartModification修改; 最后的CartModel cartModel = parameter.getCart(); 最终的ProductModel productModel = parameter.getProduct(); 最后的长数量ToTo = parameter.getQuantity(); 最后的PointOfServiceModel deliveryPointOfService = parameter.getPointOfService(); this.beforeAddToCart(parameter); validateAddToCart(参数); 如果(isProductForCode(parameter).booleanValue()) { //因此,现在算出允许添加的最大值是多少(请注意,这可能是负数!) 最终的长实际的AllowedQuantityChange = getAllowedCartAdjustmentForProduct(cartModel,productModel,quantageToAdd, deliveryPointOfService); 最终整数maxOrderQuantity = productModel.getMaxOrderQuantity(); 最后的长cartLevel = checkCartLevel(productModel,cartModel,deliveryPointOfService); 最后的长cartLevelAfterQuantityChange = ActualAllowedQuantityChange + cartLevel; 如果(actualAllowedQuantityChange> 0) { //我们可以将商品添加到购物车 最后的CartEntryModel entryModel = addCartEntry(parameter,actualAllowedQuantityChange); getModelService()。save(entryModel); 最终的字符串statusCode = getStatusCodeAllowedQuantityChange(actualAllowedQuantityChange,maxOrderQuantity, QuantityToAdd,cartLevelAfterQuantityChange); 修改= createAddToCartResp(参数,statusCode,entryModel,actualAllowedQuantityChange); } 其他 { //不允许添加任何数量,甚至可能要求减少数量 //没做什么! 最终的字符串状态= getStatusCodeForNotAllowedQuantityChange(maxOrderQuantity,maxOrderQuantity); 修改= createAddToCartResp(参数,状态,createEmptyCartEntry(参数),0); } } 其他 { 修改= createAddToCartResp(参数,CommerceCartModificationStatus.UNAVAILABLE, createEmptyCartEntry(parameter),0); } 返回修改; }
请在添加到购物车期间分析此逻辑。 甚至您也可以通过全局限制数量而不是产品级别来限制此逻辑。 因此,仅供参考。
如果您有访问权限,请查看以下链接,这可能会对您有所帮助:
主题 p>
是的,我显示的代码是ootb,这是功能性功能。 因此,对系统性能或安全性没有任何影响。 您可以使用它。 如果有帮助,请接受答案。
最多设置5个标签!
你好哈西卜·米尔扎
我认为您需要对CartModel进行限制以限制订单数量。 但是据我所知,您在ProdutModel级别有一个字段,即MaxOrderQuantity。 这是在 DefaultCommerceAddToCartStrategy.java 中检查的,如果您尝试添加的内容不是 ProdutModel。 MaxOrderQuantity , CommerceCartModificationStatus.MAX_ORDER_QUANTITY_EXCEEDED em>被抛出。 我建议对此进行挖掘,并假设它应该自动运行。 请参阅下面的完整ootb逻辑。
请在添加到购物车期间分析此逻辑。 甚至您也可以通过全局限制数量而不是产品级别来限制此逻辑。 因此,仅供参考。
如果您有访问权限,请查看以下链接,这可能会对您有所帮助:
主题 p>
是的,我显示的代码是ootb,这是功能性功能。 因此,对系统性能或安全性没有任何影响。 您可以使用它。 如果有帮助,请接受答案。
一周热门 更多>