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 以便更好地理解!
我有以下需求:
任何用户都应该能够从我的 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 以便更好地理解!