过去两年我陆续做了三个多商户小程序项目,从最初踩坑无数到后来能在一周内跑通 MVP,中间积累了不少经验。这篇文章不聊虚的,直接讲多商户小程序到底要做什么功能、技术架构怎么选、以及独立开发者最容易忽略的几个坑。
什么是多商户小程序
简单说,就是一个小程序里入驻了多个商家,用户可以在平台内浏览不同店铺的商品、下单、支付,平台方负责抽成和结算。它和单商户商城的本质区别在于:数据要按商户隔离,但流量和入口是共享的。
典型代表就是各类本地生活平台、垂直行业商城。对独立开发者来说,这类项目客单价高、复购需求强,是比较值得投入的方向。
核心功能模块拆解
1. 多角色权限体系
至少要有三种角色:平台管理员、商户、普通用户。商户只能看到自己店铺的数据,平台能看到全量数据。这块建议用 RBAC 模型,在用户表里加一个 role 和 merchant_id 字段,接口层统一做数据过滤。
// 商户数据隔离中间件示例
function merchantScope(req, res, next) {
if (req.user.role === 'merchant') {
req.scope = { merchantId: req.user.merchantId };
} else if (req.user.role === 'admin') {
req.scope = {}; // 平台管理员不限制
}
next();
}2. 商户入驻与审核
- 商户提交资料:营业执照、店铺名称、logo、联系方式
- 平台审核:通过/驳回,驳回要填原因
- 审核通过后自动创建商户账号并分配初始权限
这里有个坑:营业执照图片上传要走小程序的文件上传接口,注意 wx.uploadFile 的单次大小限制,大图建议先压缩再传。
3. 商品与店铺管理
每个商户独立管理自己的商品库,包括上下架、库存、规格、价格。平台侧需要能看到全平台商品,并支持强制下架违规商品。数据库设计上,商品表必须带 merchant_id 索引,否则后期查询会非常慢。
4. 订单与分账
这是多商户最复杂的部分。用户下单后,钱先到平台账户,再按比例分给商户。微信支付的分账功能可以解决这个问题,但需要商户号资质。如果没有分账权限,就只能走线下结算,平台定期给商户打款。
建议:早期项目直接用平台统一收款+手动结算,等单量上来再接入微信分账,能省掉大量资质和对接成本。
5. 营销工具
优惠券、拼团、秒杀这些功能,多商户场景下要区分是平台券还是店铺券。平台券全平台通用,店铺券只能在该商户使用。核销时要做归属判断,否则很容易出现跨店抵扣的 bug。
技术架构建议
后端我推荐 Node.js + MySQL + Redis 的组合。Node 处理高并发订单比较顺手,Redis 用来做库存扣减和分布式锁。小程序端用原生开发或者 uni-app 都行,如果只做微信端,原生性能更好。
关键点在于接口层要做统一的数据权限校验,不要在每个业务接口里重复写过滤逻辑,否则商户越权访问是迟早的事。
几个容易踩的坑
- 商户 ID 泄露:接口返回数据时不要带内部 merchant_id,用脱敏后的店铺编号代替
- 库存超卖:多商户共享库存的场景少,但秒杀时还是要用 Redis 预扣减
- 审核状态同步:商户提交资料后,小程序端要轮询或走订阅消息通知,别让商户一直等
- 提现风控:商户提现要设置最小金额和频次限制,防止刷单套现
总结
多商户小程序开发的核心不是功能有多花哨,而是数据隔离做得够不够干净、结算流程够不够清晰。把权限和订单这两块打扎实,剩下的功能都是锦上添花。如果你正准备接这类项目,建议先花两天把数据模型设计好,后面能省掉一半的返工时间。
评论 (0)
还没有评论,快来抢沙发吧~