是否可以自定义店面以将购物车拆分为不同的订单?

2020-09-14 09:29发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我正在使用Hybris 6.3,...

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

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


我正在使用Hybris 6.3,我们为B2B实施生成了一个模块,我需要根据购物车中的产品,账单地址,付款,交货等将购物车内容分为不同的订单 共享相同的参数。

根据我们从客户那里收集到的要求,我们得出结论,在这里我们不需要采用寄售策略,因为该策略可以处理一个订单并将其拆分为运输和交付目的,相反,我们客户的需求是不同的产品 在购物车中按一组共享属性进行分组,并为每组产品生成订单。

到目前为止,我已经确定了负责下订单的类 DefaultCheckoutFacade ,该类包含以下方法:

  @Override
  公共OrderData placeOrder()引发InvalidCartException
  {
      final CartModel cartModel = getCart();
      如果(cartModel!= null)
      {
          如果(cartModel.getUser()。equals(getCurrentUserForCheckout())|| getCheckoutCustomerStrategy()。isAnonymousCheckout())
          {
              beforePlaceOrder(cartModel);
              最后的OrderModel orderModel = placeOrder(cartModel);
              afterPlaceOrder(cartModel,orderModel);
              如果(orderModel!= null)
              {
                  返回getOrderConverter()。convert(orderModel);
              }
          }
      }
      返回null;
  }

  

据我了解,我应该重写此方法,以根据需求中设置的标准生成不同的 CartModel ,并为每个 CartModel 下订单。 我修改了 CartModel 类,它是超类 AbstractOrderModel ,我猜想在上述方法中的 getCart()调用之后,我只需要 修改 CartModel 中的条目,并为我需要下达的每个订单调用方法 placeOrder(),但允许处理 CartModel 这样的对象?

或者,如果我需要将购物车分成不同的订单,是否应该以其他方式处理? 是否需要多个推车,但将其显示为一个应该做的事情? 是否应在OOTB Commercefacades扩展上进行这种修改? 有没有办法将其扩展到我们模块中的某个地方?

编辑

我开始阅读有关多个购物车的信息, 我需要什么,但是我还没有找到如何将条目保存到保存的购物车中的方法。 在此链接中,我可以看到如何保存购物车,方法saveCart 返回CommerceSaveCartResultData对象,方法saveCnd的getCartForCodeAndCurrentUser方法都收到一个CommerceSaveCartParameter,其中必须包含CartModel,如何生成此对象的实例以在CommerceSaveCartParameter中设置?

8条回答
Aaron 3364
2020-09-14 09:36

但是,为什么不写出托运的订单单据呢? 我不确定将订单转换为idocs的过程,因为我不与直接与sap交互的任何客户端一起工作,但是肯定有像转换器这样的东西,您可以重写并根据需要进行自定义吗?

您已经说过,托运货物与订单的结构/属性不同,但是它们属于订单的 部分,因此可以从订单中获取所需的任何属性。 它们只是订单中OrderEntries的集合。

一周热门 更多>