惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
The Last Watchdog
The Last Watchdog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
T
Troy Hunt's Blog
L
LINUX DO - 最新话题
C
Check Point Blog
T
Threat Research - Cisco Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
罗磊的独立博客
V
Vulnerabilities – Threatpost
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
J
Java Code Geeks
Apple Machine Learning Research
Apple Machine Learning Research
大猫的无限游戏
大猫的无限游戏
S
Security @ Cisco Blogs
IT之家
IT之家
T
The Exploit Database - CXSecurity.com
The GitHub Blog
The GitHub Blog
D
Docker
Engineering at Meta
Engineering at Meta
AWS News Blog
AWS News Blog
S
Security Affairs
U
Unit 42
P
Palo Alto Networks Blog
V
Visual Studio Blog
Y
Y Combinator Blog
D
DataBreaches.Net
Forbes - Security
Forbes - Security
阮一峰的网络日志
阮一峰的网络日志
美团技术团队
Security Latest
Security Latest
aimingoo的专栏
aimingoo的专栏
Simon Willison's Weblog
Simon Willison's Weblog
A
Arctic Wolf
博客园_首页
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
H
Hacker News: Front Page
博客园 - 司徒正美
博客园 - Franky
宝玉的分享
宝玉的分享
TaoSecurity Blog
TaoSecurity Blog
Latest news
Latest news
Scott Helme
Scott Helme
MongoDB | Blog
MongoDB | Blog
量子位
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
C
Cisco Blogs
P
Privacy International News Feed
Application and Cybersecurity Blog
Application and Cybersecurity Blog

人人都是产品经理

为什么你的产品找不到差异化?90%的失败都卡在第一步上(下) – 人人都是产品经理, 3年从30万到1300万用户、获2200万美元融资,这个AI教育产品用“抽卡”破解了获客难题 – 人人都是产品经理, 园区招商系统怎么做才能真正帮到去化?我加了这一个功能,推广链接转发400次阅读过万 – 人人都是产品经理, AI大事件:OpenAI发完网络安全模型又搞药物研发,小鹏汽车要抓”DeepSeek时刻” – 人人都是产品经理, 电商不是卖货,是一场更残酷的产品经理实战 – 人人都是产品经理, 没想到,活动营销又回来了! – 人人都是产品经理, 为何All-in海外KOC:一场关于AI时代窗口期的豪赌 – 人人都是产品经理, 重新理解企业的内部协作 – 人人都是产品经理, 苹果的 AI 战略到底是什么? – 人人都是产品经理, 医疗智能体·第2讲——合规护城河:等保、PIPL与HIPAA的架构实战 – 人人都是产品经理, 向量知识库五步法:从“答非所问”到“精准回复” – 人人都是产品经理, 鸿蒙PC三方库构建总指挥HPKBUILD(sha)库为例 – 人人都是产品经理, 何时该用LLM?AI产品经理的LLM设计指南 – 人人都是产品经理, 医疗信息领域的需求方、决策方、准入方以及关注点(二) – 人人都是产品经理, 即梦涨价:一场被误读的「傲慢」 – 人人都是产品经理, 面试AI PM必答题:Hermes和OpenClaw的区别,如何讲清楚业务价值 – 人人都是产品经理, AI的下一张船票:世界模型——AI产品经理必须理解的技术拐点 – 人人都是产品经理, 小红书做GEO,怎么让AI信你?记住这 3 个重要信息 – 人人都是产品经理, 5 家印度 AI 初创公司,看看印度 AI 再做什么 – 人人都是产品经理, AI项目跨团队协作:产品技术业务如何不打架 – 人人都是产品经理, Agentic Workflow(智能体工作流):让AI从”答案生成器”变成”数字员工” – 人人都是产品经理, lycium_plusplus 项目全景解读:OpenHarmony 三方库构建的“大管家” – 人人都是产品经理, 从爆单救火到前置履约:两套预采策略,把生鲜大促履约效率拉满 – 人人都是产品经理, 什么时候该补货?我用一轮数据做了一个决定 – 人人都是产品经理, 从“机械兜底”到“动态分流”:AI客服重复进线治理的4大底层逻辑 – 人人都是产品经理, 抖音拼效率,红书拼洞察 – 人人都是产品经理, 全民狂欢与退潮——为什么龙虾这波热潮冷却得如此之快? – 人人都是产品经理, Stripe押注!MPP重塑全球支付 – 人人都是产品经理, 小红书GEO:AI引用你的内容,不是因为你对,而是因为你看起来可信 – 人人都是产品经理, 前百度副总裁押注办公Agent,日韩付费爆发,Manus迎来强劲对手 – 人人都是产品经理, 企事业单位数字化的业务供需本质 – 人人都是产品经理, 医疗智能体·第1讲——医疗信息化重构:从“辅助软件”到“自主智能体”的范式转移 – 人人都是产品经理, 粉丝量就是空气!!! – 人人都是产品经理, 用户说“薯片碎了”,机器回“要买吗?”:意图识别的翻车与破局 – 人人都是产品经理, RAG召回准确率从75到90 我做对了这三件事 – 人人都是产品经理, AI大事件:Anthropic改收费、OpenAI发安全版、手术机器人纳入医保、阿里发布”秒悟” – 人人都是产品经理, Chrome 推出 Skills 新功能,Agent 重塑上网方式 – 人人都是产品经理, GitHub前创始人拿了a16z的1700万美元,做Agent时代的Git – 人人都是产品经理 拷贝或克隆其他 Flutter OH 项目到本地后无法运行 – 人人都是产品经理, 优惠券设计:优惠券创建 – 人人都是产品经理, 不用死磕文档!AI 助手 1 小时搞定飞书 CLI 安装 + 配置 + 知识库 – 人人都是产品经理, 用小龙虾做竞品分析报告:从2天到20分钟,我是怎么做到的 – 人人都是产品经理 用小龙虾做市场分析报告:搞懂这3个公式,市场规模不再靠猜 – 人人都是产品经理, 你早就在做 Harness 工程,只是不知道它叫这个名字 – 人人都是产品经理, Think Long就够?你可能想多了! – 人人都是产品经理, 货代SRM实战:供应商准入怎么做,才能让资源池不是通讯录而是可交付网络? – 人人都是产品经理, 如何做好用户调研?详解基本技巧 – 人人都是产品经理, 木鸟、途家、美团对打,平台春天行动开“卷” – 人人都是产品经理, 入职才发现公司不靠谱?小红书从业者求职避坑指南 – 人人都是产品经理, 美国 AI 三巨头联手封堵,中国 AI 突围之路在何方 – 人人都是产品经理, 小红书,放在需求对面的镜子 – 人人都是产品经理, AI 会带来大规模失业吗? – 人人都是产品经理, 从出单到补货前,我第一次犹豫:该不该放大? – 人人都是产品经理, Flutter 三方库鸿蒙化适配:5 种高效检查方式,快速判断是否需要适配 – 人人都是产品经理, 从做产品进阶拿结果:医美机构产品经理转岗科室运营经理 – 人人都是产品经理, 阿里HappyHorse,一场关于“Token经济”的阳谋 – 人人都是产品经理, To B AI:客户留存落地的观察与思考 – 人人都是产品经理, AI产品的“生命线”——数据采集、标注、清洗的产品化设计 – 人人都是产品经理, 谈谈AI Agent(二):当“孩子”能自己“体验世界”时,你该学什么? – 人人都是产品经理, UI/UX设计师的3层能力进阶,前两层让你活下来,第三层…才是真正的分水岭 – 人人都是产品经理, 2分钟 → 30秒,效率提升75%:B端产品经理如何用「规则枷锁」驯服AI幻觉? – 人人都是产品经理, 还没来得及学OpenClaw,来了个更猛的:Hermes Agent – 人人都是产品经理, AI日报:宇树机器人跑出10m/s刷新世界纪录 – 人人都是产品经理, 一文说透基金互金如何用情绪价值引导用户决策做转化 – 人人都是产品经理, 当浏览器开始替你”看”网页:AI 浏览器正在亲手拆掉它脚下的那张网 – 人人都是产品经理, 0代码,一天时间我Vibe Coding了个网站 – 人人都是产品经理, Hermes 和 OpenClaw 之争,Agent 的能力应该“装上去”还是“长出来”? – 人人都是产品经理 视频生成的“桌子”,字节Seedance 2掀完,阿里快乐马掀 – 人人都是产品经理, 从听不懂到完全信任:我的 Codex 深度产品体验 – 人人都是产品经理, 当虚拟偶像有了北京户口,与真人偶像还有什么区别? – 人人都是产品经理, 会说,远远比会做更重要 —— 对 SBTI 爆火现象的五层观察 – 人人都是产品经理, AI产品经理必看:当“搭环境”比“选模型”更重要,你的认知还在2024年吗? – 人人都是产品经理, 2026年AI产品商业化核心逻辑:从功能demo到规模化营收的3个必破卡点 – 人人都是产品经理, 京东围绕供应链,卷起裤腿下场的那些事儿 – 人人都是产品经理, SBTI一夜刷屏:它赢在了“太会说人话” – 人人都是产品经理, 折扣零售的真相:不是便宜,而是价值感! – 人人都是产品经理, 和甲方吵了一架,最后加钱做了——我学到的ToB产品经理生存法则 – 人人都是产品经理, 和几位小红书操盘手聊了8小时,干货全在这 – 人人都是产品经理, 智谱GLM-5.1登场,开源模型首超Opus4.6!!! – 人人都是产品经理 Anthropic收入凭什么反超OpenAI,终于有人把这事说清楚了 – 人人都是产品经理, 史上最有故事感的技术报告——Claude最强模型Mythos 7个极其精彩的细节 – 人人都是产品经理, 模型不是壁垒,Harness 也不是 – 人人都是产品经理, 抖音本地生活业务思考21 – 人人都是产品经理, Superpowers:145k Star的AI编码框架,到底是什么来头? Superpowers:145k Star的AI编码框架,到底是什么来头? – 人人都是产品经理, OpenAI 的路走错了,Anthropic Harness 解法启示:模型需要实践专科生 – 人人都是产品经理, 画原型图的前一步:设计站点地图 – 人人都是产品经理, 给 DeepSeek 的最后一封催更信 – 人人都是产品经理, 手把手教你用 Claude Code 搭建 AI 营销团队:5 个 Agent、12 项技能,独立完成研究、写作、设计全流程 – 人人都是产品经理, 你以为大模型在学语言?不,它在重新发明语言学 – 人人都是产品经理 所谓Skill,不过是AI时代的工业垃圾 – 人人都是产品经理, 聊一聊内容传播的几个方法 – 人人都是产品经理, 当平台开始吃掉生态:从 OpenClaw 被封杀,读懂 Anthropic 的这盘棋 – 人人都是产品经理, 你装了 10 个 AI 插件,Obsidian 还是一个文件夹 – 人人都是产品经理 关于AI智能体架构演进的系统性思考:从单体试水到多体协同的重构 – 人人都是产品经理, 当“人”变成Skill,我们又该何去何从? – 人人都是产品经理 Mythos 事件:前沿 AI 治理的意外实验 – 人人都是产品经理, 货代CRM:信用与风险管理怎么做,才能把坏账风险拦在放货之前? – 人人都是产品经理, 从HR收集自拍照到员工自助录入——我见证了园区人脸识别从”不可用”到”真好用”的全过程 – 人人都是产品经理 千问闯关AI混沌期:阿里画靶,吴嘉张弓,马云射箭? – 人人都是产品经理,
电商系统购物车模块设计
pemg的笔记 · 2025-04-22 · via 人人都是产品经理

在电商系统中,购物车模块是用户购买流程的核心环节,其设计的合理性直接影响用户体验和销售转化率。本文将深入探讨电商系统购物车模块的设计要点,供大家参考。

一、概述

在电商系统中,购物车是核心模块之一,用户在浏览商品过程中,可将心仪商品添加到购物车,待浏览完毕后统一结算购买。所以一份合理高效的购物车设计,对于提升用户体验、促进销售转化、降低运营成本等方面都有着至关重要的作用。

由于购物车属于核心模块,为讲的更清晰,所以针对购物车会拆分几期来讲解

本期针对商品加入购物车、购物车中移除商品、更新购物车中的商品数量、商品库存不足、失效商品等场景输出产品解决方案

二、功能设计与实现方案

2.1 商品添加到购物车

1、结构设计

  • 商品唯一标识:商品ID、SKU ID
  • 值为商品对象:数量、添加时间、状态(正常/失效)等字段
  • 排序:商品列表按添加/更新时间倒序排列(最新操作置顶)

2、添加逻辑

1)查询商品在购物车是否存在

用户点击 “添加到购物车” 按钮时,系统首先通过商品ID和SKU ID查询购物车数据结构中是否存在该商品

  • 已存在:数量+1,更新添加时间为当前时间(用于置顶排序),将该商品移动到购物车列表顶部
  • 不存在:新增条目(新增商品),数量=1,加入时间=当前时间,并置顶,将该商品移动到购物车列表顶部

2)更新总价格:

同时实时计算购物车的总价等信息,如:单价×数量

3) 存储:

  • 登录用户:将购物车数据存入Redis
  • 未登录用户:数据缓存在浏览器,用户登录后合并到Redis(有些电商必须登录才可以加入购物车,这个根据实际业务去处理)

3、示例:

用户首次添加商品A(ID=1001),数量为1,购物车新增条目,并顶部显示该商品。用户再次添加同一商品A时,数量变为2,商品A继续置顶。

2.2 购物车中移除商品

1、移除方式:

  • 支持单删:点击删除按钮
  • 批量删除:勾选后批量操作

2、移除逻辑

1)单个移除:

  • 当用户点击 “从购物车中移除” 按钮时,前端传递需删除的商品ID/SKU ID
  • 后端根据商品ID、SKU ID、用户标识在购物车数据结构表中查找对应的商品
  • 匹配后从购物车数据结构表中删除对应的商品。
  • 更新购物车的总价、商品总数等相关信息并重新排序剩余商品

2)批量移除:

  • 用户可选择多个商品进行批量删除,前端传递需删除的商品ID/SKU ID列表
  • 后端遍历购物车数据结构中被选中的商品,逐个进行删除操作
  • 更新购物车的总价、商品数等相关信息并重新排序剩余商品

3、异常处理

  • 若删除失败(如网络异常),提示用户并回滚操作

4、示例

  • 用户勾选5件商品批量删除,系统遍历移除后返回剩余列表

2.3 更新购物车中的商品数量

1、数量增加 / 减少

1)增加数量:

  • 用户点击增加数量按钮时,系统在购物车数据结构中找到对应商品,将其数量加 1,并相应更新购物车总价等信息
  • 同时要实时检查库存是否充足,若库存不足则给出相应提示并限制数量增加

2)减少数量 :

  • 用户点击减少数量按钮时,系统在购物车数据结构中找到对应商品,将其数量减 1,并相应更新购物车总价等信息
  • 若数量减至 0,则报错提示用户号是否要删除该商品或最小保留1(这点按实际需求处理即可)

2、实现逻辑说明

1)输入校验:

  • 用户修改数量时,校验输入值是否合规:1≤ 数量 ≤库存
  • 若输入数量超过库存,弹窗提示“库存不足,当前最大可购买X件”
  • 若输入数量小于1,弹窗提示“至少保留1件”或 “是否要删除该商品”(按自己实际需求处理)

2)更新逻辑:

  • 根据商品ID和SKU ID找到对应的商品。
  • 查询库存服务校验上限,查询商品状态等
  • 若商品合规:更新数量并重新计算总价;
  • 若商品异常:返回错误码(如库存不足,如已下架),禁止修改数量并提示。

3、交互设计:

  • 输入超过库存时,前端自动修正为最大库存值并提示“库存不足,当前最大可购买X件”。

4、示例:

  • 用户将商品的数量从3改为8,但库存仅剩6,系统自动修正为6,并提示“库存不足,最多可购买6件”。

2.4 商品库存不足处理

1、场景处理

1)加购时库存不足:

当添加商品到购物车时,若库存不足,系统自动修正为最大库存值并提示“库存不足,当前最大可购买X件”,达到限制该商品的添加数量,使其不能超过库存数量

2)已加购后库存不足

已加购的商品出现库存不足时,系统需更新购物车数据结构中该商品的状态为 “库存不足”,在购物车页面将其置灰且不可勾选,并显示 “缺货” 提示,同时禁止将其加入结算

2、实现逻辑说明

1)购物车实时校验:

每次打开或刷新购物车时,需调用库存服务校验商品可用库存

2)数量变更时库存实时校验:

  • 前端限制:输入框仅允许输入≤库存的数值。
  • 后端校验:每次数量更新时,调用库存服务检查可用库存

3)库存不足时:

  • 前端禁用“数量+”按钮,显示剩余库存
  • 用户直接输入数量,自动修正为最大库存值并提示“库存不足,当前最大可购买X件”
  • 若商品已加入购物车但库存不足,标记为“缺货”,置灰且不可结算

2.5 失效商品处理

1、场景处理

1)已售罄商品 :

已加入购商品售罄时,系统需将其在购物车数据结构中的状态标记为 “售罄”,在购物车页面将其置灰且不可勾选,并显示 “已售罄” 提示,同时禁止将其加入结算

2)下架商品 :

已加入购商品下架时,系统需将其在购物车数据结构中的状态标记为 “已下架”,在购物车页面将其置灰且不可勾选,并显示 “已下架” 提示,同时禁止将其加入结算

3)区域限制 :

已加入购商品存在购买区域限制,当不在其销售区域内时,系统需将其在购物车数据结构中的状态标记为 “不在配送区域”,并显示 “不在配送区域” 提示,同时禁止将其加入结算

2、实现逻辑说明

1)处理流程:

  • 定时任务:定期扫描购物车中的商品状态,更新失效商品信息,可调用商品服务检查状态(如每小时扫描一次)
  • 实时校验:用户进入 或 刷新购物车页面时进行二次校验

2)标记状态:

根据处理结果,将商品状态设为“失效”,并记录原因(如“已下架”)

3)界面提示:

  • 失效商品置灰,显示具体原因,如“已下架”“不在配送区域””“已售罄”等交互文案
  • 提供“移除失效商品”一键清理功能
  • 结算时自动移除失效商品,并提示用户

3、示例:

  • 用户购物车中的商品因下架被标记为失效,系统对该商品提示“已下架”,并将其置灰且不可勾选

2.6 异常处理机制

1、移除商品失败:

如网络错误,前端重试机制 +提示“删除失败,请重试”,并保留原数据

2、更新数量时库存不足:

自动修正为最大库存 + 提示“库存不足,当前最大可购买X件”;且前端限制输入,后端返回错误码,阻止操作。

3、商品失效:

实时更新状态,禁止结算并提示用户。

4、批量操作冲突:

如同时修改数量和删除,使用事务确保操作原子性,失败时回滚。

5、区域限制变更:

如地址修改,重新校验购物车商品,动态更新可售状态

三、案例说明

案例1:商品添加与置顶排序

用户依次添加

  • 商品A:添加时间10:00
  • 商品B:添加时间10:05
  • 商品A:再重新添加时间10:10

购物车列表顺序为:

  • 商品A:数量2,时间10:10
  • 商品B:数量1,时间10:05

案例2:存在失效商品

用户在购物车中有以下商品:

  • 商品A:库存10,正常
  • 商品B:已下架
  • 商品C:配送区域限制

交互:

  • 用户打开购物车,系统调用商品服务校验:
  • 商品B标记为“已下架”,商品C标记为“不支持配送”。
  • 用户尝试结算时,系统拦截并提示:“2件商品不可结算,请移除”。
  • 用户点击“移除失效商品”,仅保留商品A进入结算页。

四、设计思路(很重要)

首先,商品添加到购物车需要考虑到两种情况:已存在和首次添加;以及置顶需要考虑到维护一个时间戳或者顺序字段,按最新操作排序。

接下来需要考虑到更新商品数量,需要检查库存是否足够问题,以及失效商品处理场景,比如下架、售罄、区域限制等

移除商品时,需要考虑到单删和批量删除,要确保数据结构中正确找到对应的条目并删除

最后把这些点整合成一个结构化的思路。如数据结构设计、核心流程、异常处理、存储方案等。输出一份最佳的产品解决方案

作者:pemg的笔记 公众号:pemg的笔记

本文由 @pemg的笔记 原创发布于人人都是产品经理。未经作者许可,禁止转载

题图来自 Pixabay,基于CC0协议

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务