客户是经营 3 家线下服装小店 + 1 个微信小商店的个体商户,此前依赖 Excel 记录库存,存在「库存更新不及时导致超卖」「多店铺库存调配混乱」「无法统计滞销品」等问题,需一套轻量化系统解决以下核心诉求:
实时同步多渠道库存(线下 3 店 + 微信小店);
快速录入 / 出库商品,支持扫码操作;
自动统计库存预警(低库存 / 临期商品);
生成简单的库存报表(滞销 / 热销商品排行)
1. 需求拆解与优先级排序(第 1 周)
与客户通过微信 / 电话沟通,梳理出「必须实现」和「可后续迭代」的功能,形成《需求文档(PRD)》,明确:
核心痛点:库存同步、扫码操作、预警提醒(优先级 P0);
次要需求:复杂报表、多用户角色(优先级 P1,首期简化实现)。
绘制简易原型图(用 Figma 快速制作),确认页面流程:登录→商品列表→库存操作→预警页面→报表页面。
2. 技术方案设计(第 1 周同步进行)
(1)前端方案
框架选择 Vue 3:兼顾开发效率与轻量性,适合小项目快速迭代;
UI 组件库用 Vant UI:自带适配 PC / 平板的响应式样式,减少自定义 CSS 工作量;
核心插件:
vue-qrcode-reader:实现扫码功能,支持调用设备摄像头或扫码枪输入;
xlsx:处理 Excel 导入 / 导出,满足商品批量操作需求;
echarts:绘制简单报表图表(销量排行、库存占比)。
(2)后端方案
用 Node.js(Express):开发速度快,与前端技术栈(JavaScript)一致,减少跨语言沟通成本;
接口设计:采用 RESTful 风格,核心接口包括:
商品接口:GET /api/goods(列表)、POST /api/goods(新增)、PUT /api/goods/:id(编辑);
库存接口:POST /api/stock/in(入库)、POST /api/stock/out(出库)、GET /api/stock/warning(预警列表);
报表接口:GET /api/report/sales(销量排行)、GET /api/report/unsold(滞销商品)。
(3)数据库设计(核心表结构)
goods(商品表):id(主键)、name(商品名)、category_id(分类 ID)、spec(规格)、cost_price(成本价)、sell_price(售价)、image_url(图片地址)、expire_date(保质期)、create_time(创建时间);
stock(库存表):id(主键)、goods_id(商品 ID)、shop_id(店铺 ID)、quantity(当前库存)、warning_threshold(预警阈值);
stock_record(库存操作记录表):id(主键)、goods_id(商品 ID)、shop_id(店铺 ID)、type(类型:入库 / 出库)、quantity(数量)、operator_id(操作人 ID)、create_time(操作时间);
shop(店铺表):id(主键)、name(店铺名)、address(地址);
user(用户表):id(主键)、username(用户名)、password(加密密码)、role(角色:老板 / 店员)。