本文档详细介绍了商城电商平台内的购物车系统。它涵盖了商品如何添加到购物车、购物车商品如何管理、促销活动如何应用于购物车商品,以及购物车如何与订单处理系统集成。有关订单处理本身的信息,请参阅订单处理。
购物车系统允许用户添加商品、更新数量、修改商品规格、查看包含促销信息的购物车内容,并进入结算流程。对于已登录用户,购物车会跨会话持久化,并实施逻辑删除以维护订单历史记录。
来源:mall-portal/src/main/java/com/macro/mall/portal/service/OmsCartItemService.java mall-portal/src/main/java/com/macro/mall/portal/controller/OmsCartItemController.java
来源:mall-portal/src/main/java/com/macro/mall/portal/controller/OmsCartItemController.java mall-portal/src/main/java/com/macro/mall/portal/service/impl/OmsCartItemServiceImpl.java
代表用户购物车中商品的实体。
| 字段 | 类型 | 描述 |
|---|---|---|
| id | 长期 | 主键 |
| productId | 长期 | 商品 ID 引用 |
| productSkuId | 长期 | 商品 SKU ID 引用 |
| memberId | 长期 | 拥有此购物车商品的会员(用户)ID |
| quantity | 整型 | 此商品的数量 |
| price | BigDecimal | 添加时商品的价格 |
| productPic | 字符串 | 产品图片 URL |
| productName | 字符串 | 产品名称 |
| productSubTitle | 字符串 | 商品副标题/描述 |
| productSkuCode | 字符串 | SKU 编码 |
| memberNickname | 字符串 | 会员昵称 |
| createDate | 日期 | 商品添加到购物车的日期 |
| modifyDate | 日期 | 商品最后修改日期 |
| deleteStatus | 整型 | 逻辑删除标志(0=活动,1=已删除) |
| productCategoryId | 长期 | 产品类别 ID |
| productBrand | 字符串 | 产品品牌 |
| productSn | 字符串 | 产品序列号 |
| productAttr | 字符串 | JSON 格式的产品属性 |
OmsCartItem 的扩展,包含促销信息。
| 字段 | 类型 | 描述 |
|---|---|---|
| (所有 OmsCartItem 字段) | ||
| promotionInfo | 字符串 | 适用促销的描述 |
| promotionType | 整型 | 应用的促销类型 |
| reduceAmount | BigDecimal | 价格减少金额 |
| realStock | 整型 | 实际可用库存 |
| integration | 整型 | 奖励的积分 |
| growth | 整型 | 奖励的成长值 |
代表购物车中具有其属性和 SKU 信息的商品的域对象。
来源:mall-portal/src/main/java/com/macro/mall/portal/domain/CartProduct.java mall-portal/src/main/java/com/macro/mall/portal/domain/CartPromotionItem.java
来源:mall-portal/src/main/java/com/macro/mall/portal/controller/OmsCartItemController.java32-41 mall-portal/src/main/java/com/macro/mall/portal/service/impl/OmsCartItemServiceImpl.java38-55
来源:mall-portal/src/main/java/com/macro/mall/portal/controller/OmsCartItemController.java51-57 mall-portal/src/main/java/com/macro/mall/portal/service/impl/OmsCartItemServiceImpl.java81-92
购物车系统提供全面的购物车商品 CRUD 操作
来源:mall-portal/src/main/java/com/macro/mall/portal/service/OmsCartItemService.java mall-portal/src/main/java/com/macro/mall/portal/controller/OmsCartItemController.java
购物车与促销系统集成,以应用折扣和特别优惠
OmsPromotionService.calcCartPromotion() 方法将普通购物车商品转换为包含促销详情(如减少金额和促销描述)的 CartPromotionItem 对象。
来源:mall-portal/src/main/java/com/macro/mall/portal/service/OmsPromotionService.java mall-portal/src/main/java/com/macro/mall/portal/service/impl/OmsCartItemServiceImpl.java81-92
购物车支持选择和修改商品规格(SKU)
来源:mall-portal/src/main/java/com/macro/mall/portal/controller/OmsCartItemController.java71-88 mall-portal/src/main/java/com/macro/mall/portal/service/impl/OmsCartItemServiceImpl.java114-129
| 端点 | 方法 | 描述 |
|---|---|---|
/cart/add | POST | 添加到购物车 |
/cart/list | GET | 获取购物车商品列表 |
/cart/list/promotion | GET | 获取包含促销信息的购物车商品 |
/cart/update/quantity | GET | 更新商品数量 |
/cart/getProduct/{productId} | GET | 获取商品规格以更改属性 |
/cart/update/attr | POST | 更新商品属性/规格 |
/cart/delete | POST | 删除指定的购物车商品 |
/cart/clear | POST | 清空购物车所有商品 |
来源:mall-portal/src/main/java/com/macro/mall/portal/controller/OmsCartItemController.java
购物车系统通过以下方式与商品管理系统集成
来源:mall-portal/src/main/java/com/macro/mall/portal/dao/PortalProductDao.java mall-portal/src/main/resources/dao/PortalProductDao.xml
购物车与促销系统集成以提供折扣价格
来源:mall-portal/src/main/java/com/macro/mall/portal/service/OmsPromotionService.java mall-portal/src/main/java/com/macro/mall/portal/domain/PromotionProduct.java
购物车系统为订单处理系统提供输入
有关完整的订单处理流程,请参阅订单处理。
购物车实施逻辑删除机制
deleteStatus = 1,而不是从数据库中移除deleteStatus = 0 以仅检索活动购物车商品来源:mall-portal/src/main/java/com/macro/mall/portal/service/impl/OmsCartItemServiceImpl.java104-111 mall-portal/src/main/java/com/macro/mall/portal/service/impl/OmsCartItemServiceImpl.java131-138
系统通过 JacksonConfig 类配置 JSON 序列化,以从 API 响应中排除 null 字段,这有助于减小有效负载大小并提高可读性。
来源:mall-portal/src/main/java/com/macro/mall/portal/config/JacksonConfig.java