一、立项背景和目标
随着健康日化消费线上化趋势的加剧,用户对口服、外用、美妆及日用健康类产品的线上选购需求日益旺盛。为打破线下渠道的时空限制,打造品牌专属的私域流量阵地,同时为用户提供便捷、透明的一站式购物体验,我们立项开发了特漪商城小程序。项目旨在构建一个集产品展示、交易转化与用户运营于一体的垂直电商平台,高效传递品牌价值,提升用户粘性与销售转化效率。
二、核心功能模块介绍
小程序围绕用户消费全流程,搭建了五大核心模块:
首页模块:作为流量入口,集成品牌形象展示、搜索栏、分类导航、活动 banner 及商品推荐。用户可快速定位口服、外用、化妆品、日用等六大系列产品,直观获取主推商品与活动信息。
商城模块:核心交易阵地,提供全品类商品详情、规格选择、用户评价及收藏分享功能,完整呈现产品卖点,支持直接下单或加入购物车。
购物车模块:整合待购商品,支持批量勾选、数量修改、一键结算,自动计算优惠与订单金额,简化下单流程。
微视频模块:通过短视频形式展示产品场景与用户反馈,实现 “内容种草 - 直接下单” 的闭环转化,增强用户信任度。
个人中心模块:提供订单管理、地址维护、优惠券、收藏夹及售后入口,为用户提供一站式服务支持,提升留存与复购意愿。
三、业务流程与功能路径
用户核心业务流程清晰高效:进入小程序后,可通过首页搜索或分类导航快速找到目标商品,查看详情后加入购物车或直接下单;结算时自动应用优惠,完成支付后可在个人中心查看订单状态与物流信息;收货后可评价或申请售后。同时,微视频模块与首页活动持续引导用户二次消费,形成完整的消费闭环。
1、本项目采用前后端分离的微服务架构,后端基于 SpringBoot 构建高可用、易扩展的服务体系,前端为微信小程序端。整体遵循 “高内聚、低耦合” 的设计原则,按业务领域拆分模块,通过 Redis 实现热点数据缓存与分布式锁,解决商品库存、购物车的高并发访问问题;MySQL 作为主数据库,负责商品、订单、用户等核心业务数据的持久化存储;RabbitMQ 作为消息中间件,实现订单创建、支付结果通知等异步解耦,保障系统峰值流量下的稳定性;同时通过 Spring 事件监听机制,实现订单创建后库存扣减、消息推送等业务逻辑的解耦处理,提升系统响应效率。
2、本人主要负责购物车模块、订单创建模块、支付对接模块的设计与开发,具体成果如下:
购物车模块:基于 Redis 实现用户购物车数据的存储与管理,支持商品添加、删除、批量勾选、数量修改等功能,实现 1000+ 并发用户的购物车数据秒级响应,缓存命中率达 98% 以上,有效降低了数据库访问压力。
订单创建模块:实现了订单创建的核心流程,包括商品库存校验、订单数据组装、库存扣减、订单状态初始化等逻辑,通过分布式锁与消息队列保障库存扣减的原子性,避免超卖问题;模块上线后,订单创建成功率从 92% 提升至 99.8%,峰值下单处理能力达 500 单 / 分钟。
支付对接模块:完成了与第三方支付渠道的对接,实现支付请求生成、支付结果回调处理、订单状态更新、支付超时关闭等全流程逻辑,通过消息队列异步处理支付结果通知,避免回调超时问题;模块上线后,支付回调处理成功率达 100%,订单支付完成后状态更新延迟控制在 200ms 以内。
3、难点 1:订单创建时的库存超卖问题
问题:高并发场景下,多个用户同时下单同一商品时,易出现库存扣减不一致,导致超卖。
解决方案:采用 Redis 分布式锁控制库存扣减的并发访问,同时在订单创建后通过 MQ 异步执行库存扣减,结合数据库乐观锁进行二次校验,确保库存数据一致性,上线后未再出现超卖问题。
难点 2:支付回调重复通知导致的订单状态异常
问题:第三方支付平台重复发送支付回调,可能导致订单状态被重复更新,出现数据不一致。
解决方案:通过 Redis 缓存支付回调流水号,实现幂等性校验,重复请求直接拦截;同时使用 Spring 事件监听机制,将订单状态更新、用户通知等逻辑解耦,避免回调处理超时导致的订单状态异常。
难点 3:购物车数据与商品主数据的一致性问题
问题:商品信息(价格、库存)更新后,购物车中缓存的商品信息未同步,导致用户结算时出现价格不一致。
解决方案:在用户结算时实时拉取商品最新价格与库存信息,与购物车数据进行对比校验,若存在差异则提示用户更新购物车;同时通过 MQ 监听商品信息变更事件,异步更新购物车中对应商品的缓存数据,提升用户体验。