现状:未达起送量只弹窗提示(可继续结算)。本原型在购物车里加顺手买:未达标供应商卡片内展示该供应商销量前 5 的商品,点「+」直接加入购物车,加完实时重算「还差X件」,达标自动消失。
可交互:改数量 / 勾选 / 顺手买加购 / 查看更多推荐展开 / 点结算看弹窗。
① 触发条件是什么?—— 现成的,不用新开发。
现有接口 checkOrderReminder(storeId, items) 已经返回每个供应商的:
needReminder(是否未达标)、minQuantity / totalQuantity(起送件数 / 当前件数)、minAmount / totalAmount(起送金额 / 当前金额)。
购物车页右上角「还差6件」就是它算出来的,且加购 / 改数量后有 600ms 防抖自动重算(scheduleReminderRefresh)。
触发条件 = reminderMap[supplierId].needReminder === true,为 true 就展示顺手买,达标自动收起。
② 能直接加在购物车里吗?—— 能,成本很低。
购物车本来就按供应商分组存储,顺手买商品走普通加购接口:同一商品自动合并数量、天然落回对应供应商分组,加购后防抖重算还差件数,达标后横条自动消失。后端零新增接口 —— 顺手买商品列表复用现有商品分页接口(/store/store-commodity/page 已支持 supplierId 过滤)。
| 时机 | 触发条件 | 交互 |
|---|---|---|
| ① 购物车页加载 / 改数量 / 加购后 | needReminder = true |
未达标供应商卡片内出现「顺手买」横条,展示该供应商销量前 5 的商品:先显示第 1 个(行式排版与购物车商品一致),点「查看更多推荐」展开其余 4 个;点「+」直接加购;达标后横条变绿「已达标」并消失 |
| ② 点「结算」时 | 已勾选商品中存在未达标供应商 | 现有弹窗保留(返回 / 继续结算两按钮),文案提示可回购物车顺手买凑满,不拦截继续结算 |
reminderMap,未达标供应商卡片内渲染顺手买横条(新组件 cart-suishou-buy);商品取该供应商销量前 5;默认展示 1 个 + 「查看更多推荐」展开;加购后调 scheduleReminderRefresh()。orderBy=sales 排序参数(取前 5 用);checkOrderReminder 复用不动。