InvenTree 开源库存管理系统:零件分类与库存流水 15 分钟跑通
【免费下载链接】InvenTreeOpen Source Inventory Management System项目地址: https://gitcode.com/GitHub_Trending/in/InvenTree
InvenTree 是一套开源的库存管理系统,核心是"零件库 + 库存台账"两件事:你先把每一个零件(Part)录进去、分好类,再让每一笔出入库都挂在这些零件上。后端是 Python/Django + REST API,自带 Web 管理界面,还支持插件扩展。它帮你解决的是"零件找不着、数量对不上、谁动过货查不到"这三个最日常的痛点。
快速跑起来
装完之后别急着玩,先把这几步做完,目标是尽快看到登录界面。官方给了现成的 docker-compose 编排(PostgreSQL + Web 服务 + 后台 worker + 反代),直接复用即可。
git clone https://gitcode.com/GitHub_Trending/in/InvenTree cd InvenTree/contrib/container docker compose run --rm inventree-server invoke update docker compose run inventree-server invoke superuser docker compose up -d开始前在容器目录的.env文件里改三处:INVENTREE_EXT_VOLUME指向你本机的数据目录、数据库账号、数据库密码。invoke update负责建库和迁移,invoke superuser创建管理员账号,up -d之后浏览器打开页面(默认inventree.localhost)就能登录了。
⚠️ 首次启动会跑数据库初始化,等个两三分钟是正常现象,别急着判定失败。
功能拆解
零件分类:从一级类目搭到可筛选的零件列表
真实场景:你手里有几千个料,电容、电阻、连接器混在一个 Excel 里,找东西靠搜索框硬试。
怎么操作:进入 Parts 模块,先建一级分类(比如 Electronics),再往下挂子分类(Connectors、Capacitors……)。建完分类后,给分类挂上"参数模板",比如电阻类加"阻值""功率"字段,之后新建零件时这些字段会自动带出来。也可以直接在分类页面下浏览该分类的全部零件,按参数列排序、筛选。
拿到什么效果:零件有了统一的家,列表页直接按阻值、封装、库存量排序,找料从"翻表"变成"点列头"。它帮你把"零件找不着"这个问题从根上解决。
库存流水:每一笔变动都留痕
真实场景:月底盘点发现数量对不上,问谁借的、什么时候出的库,没人说得清。
怎么操作:库存变动(入库、出库、调整、转移)不需要额外配置,系统自动记录。打开任意零件的 Stock History 页签,就能看到按时间排列的流水:哪一天、哪个库存项、谁操作的、从哪个库位转到哪个库位、关联的订单单号是什么。
拿到什么效果:对不上账的时候,你拉出流水逐项核对,几分钟就能定位到那次调整操作。它帮你把"查不到谁动过货"变成了"一屏流水全在"。
零件总览页:一个零件的全貌
真实场景:BOM 缺料评审,你需要快速知道某个料还有多少、被哪张订单占走了多少。
怎么操作:点进任意零件,总览页顶部就是"库存中 / 可用 / 订单需求 / 已分配给生产单"四个数字,下面列着这个零件的完整属性(可采购、可测试、可追溯等开关状态)、定价区间、创建信息。
拿到什么效果:缺料评审时不用再翻三张表,一页看全"有多少、能用多少、被谁占了"。
进阶配置
自定义参数:让分类字段变成可筛选的数据
给分类挂参数模板后,参数不只是"填个值"。列表页会多出一列列参数字段,支持按值筛选(比如"只列封装为 0402 的电阻")、按列排序,还能导出成参数化表格。做选型对比时,直接按参数列横向比,比开一堆零件页快得多。
用 REST API 对接外部系统
InvenTree 的全部数据都走 REST API。在用户设置里生成 API 令牌后,标准 HTTP 请求即可读写数据,比如按分类拉零件列表:
GET /api/part/?category=5官方文档里有完整的接口说明和 Python 客户端示例。想接 ERP、CI 流水线或者写个脚本自动同步库存,走这条通道就够了,不需要改数据库。它帮你解决的是"库存数据关在 InvenTree 里出不去"的问题。
避坑指南
.env里的INVENTREE_EXT_VOLUME没改:数据库、上传的附件、配置文件全在这个目录里,不指到真实存在的本地目录,容器删了数据就没了。启动前确认路径存在可写。- 跳过
invoke update直接up -d:首次部署必须先跑一次数据库初始化,否则容器起不来或反复重启。升级镜像时同理,先down再pull再补跑更新。 - 改错配置文件:所有运行时配置只改
.env,不要动docker-compose.yml本身。官方明确说明:改 compose 文件的定制不在支持范围内。 - 大批量导入直接梭哈:历史库存数据建议按每批不超过 1000 条分批导入,导入前先备份数据库。一次性灌几万条,卡死的是你自己。
- 对外暴露时忘了端口限制:Caddy 的自动 HTTPS 要求 80/443 端口可达。如果你的 InvenTree 挂在非标准端口或已有反代后面,要在外层终结 SSL,别指望 Caddy 自动签发。
延伸资源
- 部署入门:docs/docs/start/index.md
- REST API 文档:docs/docs/api/index.md
- 插件开发指南:docs/docs/plugins/index.md
- 内置插件与示例源码:src/backend/InvenTree/plugin/samples/
- 常见问题排查:docs/docs/faq.md
下一步
先别急着上生产。在刚才起好的环境里建两个分类、录十个零件、做一笔入库再出一笔,把流水页面打开确认能查到你的操作。这套动作走通了,剩下的就是批量导入你的真实库存。
【免费下载链接】InvenTreeOpen Source Inventory Management System项目地址: https://gitcode.com/GitHub_Trending/in/InvenTree
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考