一、项目背景与痛点
生鲜门店、果蔬便利店、小型农贸商户日常经营中,多采用手工记账、Excel台账管理进销数据,生鲜商品保质期短、损耗率高,传统管理模式弊端突出:
- 人工记账效率低、数据易错:入库、销售手写登记,盘点耗时巨大,数量、成本核算经常出错;
- 无库存自动预警机制:生鲜临期、缺货无法自动提醒,缺货丢单、临期变质损耗严重;
- 采购与销售数据割裂:采购成本、售价无统一归集,无法精准核算单品毛利、门店总利润;
- 供应商信息零散:供货商联系方式、历史供货价无系统化存档,比价、对账繁琐;
- 缺少经营数据看板:无法按日/月统计销量、热销品类、亏损商品,经营决策缺少数据支撑。
针对生鲜行业经营痛点,基于Python+Django4.2搭建轻量化生鲜进销存系统,实现供应商管理、采购入库、库存管控、前台销售、临期预警、经营统计全流程闭环,区别往期考试、图书、天气、日志、访客、网盘、OAuth登录、聊天室等所有项目,新增商贸进销存赛道。
二、核心目标与定位
核心目标:实现供应商建档→商品分类→采购入库→库存实时更新→前台开单销售→库存扣减→临期预警→损耗登记→毛利统计全链路数字化,替换手工台账,管控生鲜损耗、精准核算经营利润。
项目定位:中小型生鲜实体店专用进销存,原生Django MVT架构,无需前后端分离;划分管理员、采购员、收银员三类权限,各司其职;适配社区果蔬店、农贸小摊、生鲜便利店落地使用。
设计理念:采购销售全链路留痕、库存动态管控、临期自动预警、经营数据量化,降低生鲜损耗、提升门店经营管控能力。
三、整体技术方案
3.1 系统架构概览
本系统采用分层架构设计,各模块间数据流清晰,职责明确。整体架构如下图所示:
3.2 数据流转说明
正向业务流(商品流转):
- 采购入库 → 库存增加 → 前台销售 → 库存减少
- 系统自动追踪每个商品的入库时间、保质期、当前库存量
逆向业务流(异常处理):
- 损耗登记 → 库存扣减 → 数据统计
- 临期预警 → 促销处理 → 减少损失
数据统计流:
- 所有业务操作 → 数据聚合 → 经营看板
- 实时计算成本、毛利、周转率等关键指标
3.3 技术栈详解
后端框架
- Python 3.11:主开发语言,性能优异,生态丰富
- Django 4.2:全功能Web框架,提供ORM、Admin、认证等核心组件
- MySQL 8.0:关系型数据库,存储结构化业务数据
核心算法
- 日期计算算法:基于
datetime模块,实现商品保质期自动判定- 临期预警(保质期剩余≤30%)
- 过期自动下架(保质期已过)
- 聚合查询引擎:Django ORM聚合运算
- 实时计算单品毛利:
售价 - 成本价 - 统计品类销售额、成本、毛利率
- 供应商供货质量分析
- 实时计算单品毛利:
前端与可视化
- Django模板引擎:服务端渲染,快速开发
- ECharts 5.0:数据可视化库
- 销售额趋势图(折线图)
- 品类占比分析(饼图)
- 库存健康度(仪表盘)
安全与权限
- 自定义中间件:基于岗位的权限控制
- 收银员:仅限销售、查询功能
- 采购员:采购、供应商管理
- 管理员:全功能访问+数据统计
- 数据隔离:门店级数据隔离,保障多门店部署安全
3.4 关键技术特性
- 实时库存同步:任何出入库操作立即更新库存,避免超卖
- 智能预警机制:基于保质期的多级预警(临期、即将过期、已过期)
- 毛利自动计算:销售时自动关联采购成本,实时计算毛利
- 供应商评估:基于供货质量、价格、时效的多维度评估
- 数据驱动决策:经营看板提供实时数据支持,辅助管理决策
3.5 部署架构
生产环境部署方案: ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Nginx反向代理 │───▶│ Gunicorn应用服务器│───▶│ MySQL数据库 │ │ (负载均衡+SSL) │ │ (Django应用) │ │ (主从复制) │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 静态文件CDN │ │ Redis缓存 │ │ 备份服务器 │ │ (JS/CSS/图片) │ │ (Session/热点数据)│ │ (每日自动备份) │ └─────────────────┘ └─────────────────┘ └─────────────────┘该方案支持单店部署,也支持多门店连锁模式,通过数据库分店标识实现数据隔离与集中管理。
四、核心能力模块详解
1、供应商信息管理模块
- 供应商档案录入:名称、联系方式、主营品类、合作状态;
- 历史采购报价留存,同商品多供货商比价;
- 停用/启用供应商状态管控,筛选活跃合作商家;
- 关联对应采购单据,一键查询该供应商全部供货记录。
2、商品分类与档案模块
- 多级分类:叶菜、瓜果、肉禽、干货等生鲜分类;
- 单品录入:采购成本、销售定价、保质期天数、规格;
- 批量导入商品,支持Excel批量建档;
- 区分生鲜短保/干货长保品类,差异化预警规则。
3、采购入库管理模块(核心)
- 绑定供应商生成采购单据,自动记录采购单价、采购数量;
- 入库提交后系统自动增加对应库存;
- 采购单永久存档,支持按日期/供应商检索对账;
- 同商品多次采购自动更新平均成本价。
4、前台销售开单模块
- 勾选商品、填写售卖数量,自动核算应收金额;
- 开单完成实时扣减库存,生成销售流水;
- 支持单品打折、整单优惠,自动记录实际收款;
- 当日销售单据一键检索、重打小票。
5、库存与临期预警模块
- 实时动态库存:入库加、销售/损耗减;
- 缺货预警:库存低于安全线自动标记;
- 临期预警:根据保质期自动筛选即将过期生鲜;
- 过期商品禁止前台销售,只能做损耗登记。
6、生鲜损耗登记模块
- 变质、磕碰生鲜录入损耗单,系统自动扣减库存;
- 按月统计各类商品损耗率,优化采购量;
- 损耗数据计入成本,保证毛利核算精准。
7、经营数据统计模块
- 日/月总销售额、采购总成本、整体毛利自动计算;
- 热销商品排行、滞销商品统计;
- 各品类营收占比图表展示;
- 损耗成本单独统计,直观查看生鲜亏损数据。
五、创新价值与亮点
- 生鲜专属临期预警:针对果蔬短保特性做时间管控,从源头减少变质损耗;
- 自动成本毛利核算:摒弃人工算账,系统根据采购、销售数据自动算利润;
- 全单据溯源采购/销售/损耗全单据存档,对账高效;
- 多角色权限拆分收银员不能改采购价,采购员无法销售开单,数据安全;
- 轻量化部署小门店低成本落地,替代昂贵商用进销存软件。
六、应用前景与落地场景
- 社区果蔬生鲜小店日常进销存管控;
- 农贸市场个体户进销台账管理;
- 校园生鲜便利店经营统计;
- 毕设/简历优质商贸类实战项目。
七、完整代码结构示例
django-fresh-stock/├── manage.py ├── fresh_project/│ ├── settings.py │ ├── urls.py │ └── middleware.py ├── apps/│ ├── supplier/# 供应商管理│ ├── goods/# 商品分类&档案│ ├── purchase/# 采购入库│ ├── sale/# 前台销售开单│ ├── stock_warn/# 库存临期预警│ ├── loss_record/# 损耗登记│ └── data_stat/# 经营统计├── core/│ ├── date_tool.py# 临期时间计算│ ├── profit_calc.py# 毛利核算工具│ └── stat_data.py# 统计封装├── static/├── templates/└── requirements.txt示例1:商品、采购单核心模型
fromdjango.dbimportmodels# 商品分类classCategory(models.Model):name=models.CharField(max=30,verbose="分类名称")create_time=models.DateTimeField(auto_now_add=True)# 商品档案classGoods(models.Model):name=models.CharField(max=50,verbose="商品名称")category=models.ForeignKey(Category,on_delete=models.CASCADE)cost_price=models.DecimalField(max_digits=6,decimal_places=2,verbose="采购成本")sale_price=models.DecimalField(max_digits=6,decimal_places=2,verbose="售价")shelf_day=models.IntegerField(verbose="保质期天数")safe_stock=models.IntegerField(default=5,verbose="安全库存")stock=models.IntegerField(default=0,verbose="当前库存")# 采购单据classPurchaseOrder(models.Model):order_no=models.CharField(max=32,unique=True,verbose="采购单号")supplier=models.ForeignKey('supplier.Supplier',on_delete=models.CASCADE)total_cost=models.DecimalField(max_digits=9,decimal_places=2)create_time=models.DateTimeField(auto_now_add=True)示例2:临期计算工具 core/date_tool.py
fromdatetimeimportdatetime,timedeltaclassDateCheck:@classmethoddefget_warn_day(cls,limit=3):"""获取3天内临期截止日期"""returndatetime.now()+timedelta(days=limit)@classmethoddefis_expire(cls,produce_day,shelf):"""判断是否过期"""deadline=produce_day+timedelta(days=shelf)returndatetime.now()>deadline示例3 单品毛利计算工具 core/profit_calc.py
classProfitCalc:@classmethoddefcalc_single_profit(sale_num,sale_price,cost_price):"""单品毛利=销量*(售价-进价)"""returnround((sale_price-cost_price)*sale_num,2)八、总结与展望
本篇聚焦生鲜商贸进销存全新赛道,和历史在线考试、图书管理、天气、日志、网盘、聊天室、访客系统、OAuth登录等全部项目无业务重合,主打库存管控+临期算法+毛利自动化核算,贴合实体门店真实业务。项目完整覆盖采购、销售、损耗、预警、统计全链路,商用落地属性强,后端ORM聚合、时间算法都是求职高频技术点。
后续迭代:
- 接入小票打印机自动打印销售单据;
- 新增会员储值、会员折扣功能;
- 批量导出月度经营Excel报表。