我有以下要求:
任何用户都应该能够从“我的帐户/订单历史记录”页面将任何订单的条目还原到活动购物车,因此我想知道是否有任何OOTB机制或将OrderModel转换为CartModel或将条目从订单合并到当前购物车的方法。
发布于 2021-04-01 17:43:29
是的,我们可以把订单模型转换成购物车模型。
有一个名为DefaultCartService.java的OOB类
在自定义类或策略中调用以下方法
CartModel cartModel = cartService.clone(getTypeService().getComposedTypeForClass(CartModel.class),
getTypeService().getComposedTypeForClass(CartEntryModel.class), order, keyGenerator.generate().toString());下面是详细的方法:
参数:
orderType -新创建的购物车类型
entryType -新创建购物车的购物车入口类型
正本-原始订单
代码-创建的购物车代码
@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.可以实现cart的克隆顺序,反之亦然。
为了更好的理解,请看一看这门课!
https://stackoverflow.com/questions/66890571
复制相似问题