Hybris 将 OrderModel 转换为 CartModel

Hybris convert OrderModel to CartModel

我有以下需求:

任何用户都应该能够从我的 Account/Order 历史页面恢复任何订单到活动购物车的条目,所以我想知道是否有任何 OOTB 机制或将 OrderModel 转换为CartModel 或将订单中的条目合并到当前购物车。

是的,我们可以将订单模型转换为购物车模型。

有一个名为 DefaultCartService.java

的 OOB class

在自定义 class 或策略中调用以下方法

CartModel cartModel = cartService.clone(getTypeService().getComposedTypeForClass(CartModel.class),
            getTypeService().getComposedTypeForClass(CartEntryModel.class), order, keyGenerator.generate().toString());

详细方法如下:

参数:

orderType - 新创建的购物车类型

entryType - 新创建购物车的购物车条目类型

原始 - 原始订单

code - 创建购物车的代码

@Override
public CartModel clone(final ComposedTypeModel orderType, final ComposedTypeModel entryType,
                       final AbstractOrderModel original,
                       final String code)
{

    return (CartModel) getCloneAbstractOrderStrategy().clone(orderType, entryType, original, code, CartModel.class,
            CartEntryModel.class);
}

可以使用 CloneAbstractOrderStrategy.java

从订单中获取购物车条目(转换)
List<CartEntryModel> cartEntries = cloneOrderStrategy.cloneEntries(getTypeService().getComposedTypeForClass(CartEntryModel.class), orderModel)

因此,对于购物车的克隆订单,反之亦然,可以通过 CloneAbstractOrderStrategy.java.

来实现

请看一下 class 以便更好地理解!