Hybris Commerce中的最大订单数量

2020-08-25 21:30发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

在Hybris Commerce B2B结帐期间可以添加到订单中的最大项目数量是多少? 订单中按项目或项目总数有数量限制吗?

哈西卜。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

在Hybris Commerce B2B结帐期间可以添加到订单中的最大项目数量是多少? 订单中按项目或项目总数有数量限制吗?

哈西卜。

付费偷看设置
发送
2条回答
一只江湖小虾
1楼-- · 2020-08-25 21:58

你好哈西卜·米尔扎

我认为您需要对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);
 }


 返回修改;
 }

 

请在添加到购物车期间分析此逻辑。 甚至您也可以通过全局限制数量而不是产品级别来限制此逻辑。 因此,仅供参考。

如果您有访问权限,请查看以下链接,这可能会对您有所帮助:

主题

能不能别闹
2楼-- · 2020-08-25 22:06

是的,我显示的代码是ootb,这是功能性功能。 因此,对系统性能或安全性没有任何影响。 您可以使用它。 如果有帮助,请接受答案。

一周热门 更多>