最新全网整理的7个最佳开源免费库存/仓库管理系统(WMS)都具有高星star

最新全网整理的7个最佳开源免费库存/仓库管理系统(WMS)都具有高星star。

库存/仓库管理软件是一种用于帮助企业管理库存、仓储位置和交付过程的软件系统。这种类型的软件对于拥有大量库存和多个仓库的企业非常有用。

在这里插入图片描述

库存/仓库管理软件的作用包括以下几个方面:

(1)减少库存节约成本

通过跟踪库存水平和存储位置,避免库存过多,更有效地分配空间,降低库存水平,帮助企业节约库存成本,减少设备在仓库损坏的风险。

(2)改进交付过程

库存/仓库管理软件可以帮助企业改善他们的交付过程。通过跟踪库存水平和存储位置,企业可以确保他们有正确的库存项目,以履行客户订单。还可以跟踪订单和发货的状态,并生成报告,以帮助企业确定可改进的交付环节。

(3)提高企业效率

库存/仓库管理软件还可以帮助企业提高整体效率。通过自动化库存跟踪和订单管理等任务,企业可以节省大量时间并减少错误环节,从而改善客户服务并提高盈利能力。

在这里插入图片描述

开源库存/仓库解决方案对于中小企业来说是一种比较低成本且可定制化的选择。

本文,我收集了一些比较好的开源库存/仓库项目。大家可以仔细评估不同开源项目的特性,以确保它们满足您的要求。

01 GreaterWMS
Github:https://github.com/GreaterWMS/GreaterWMS

GreaterWMS 最初用于福特亚太售后物流仓储供应链流程的库存管理系统。后来被作为一个开源项目提供给其他行业使用。

GreaterWMS是一个全面的售后解决方案,兼容PDA、移动的APP、桌面和网站等多种终端设备。它提供了一个易于使用和有效的库存管理功能。该系统的功能包括库存跟踪、订单管理、报表等。

通过使用GreaterWMS,企业可以减少错误,提高库存管理效率。这最终降低成本,提高利润率。可以简化各种大小型企业的库存管理流程。

功能特点:

支持多个仓库管理

供应商管理

客户管理

支持扫描仪PDA

订单管理

库存控制、盘点

安全库存展示

API文档

IOS应用程序支持

Android应用程序支持

Electron 应用程序支持

自动更新

i18n支持(国际化)
开发语言:Python、Javascript、Java

02 InvenTree
Github:https://github.com/inventree/InvenTree

Inventree是一个高度通用并且可定制开发的开源库存管理系统,旨在为用户提供轻量级的库存控制和部件跟踪功能。Inventree系统基于Python/Django开发,它不仅提供了一个易于使用的Web管理界面,还提供了REST API,用于与系统对接。

此外,Inventree还配备了一个强大的插件系统,允许开发自定义扩展,为用户提供更大的灵活性。

开发语言:Python、JavaScript

03 ModernWMS
Github:https://github.com/fjykTec/ModernWMS

ModernWMS是一个先进的物流管理系统,旨在帮助IT预算有限的中小型企业以最有效和最具成本效益的方式管理其仓库。

ModernWMS是一个全面的物流仓储管理解决方案,提供了库存管理、订单处理、运输和接收等功能模块。是一个高度可扩展的系统,可以通过定制化开发满足每个客户的独特需求。

开发语言:C#、JavaScript(Vue框架)

04 PartKeepr
Github:https://github.com/partkeepr/PartKeepr

PartKeepr是一个免费开源库存管理器。PartKeepr提供社区支持以及商业支持,并具有许多高级功能,可帮助用户轻松高效地定位、跟踪、编辑和管理库存。PartKeepr推荐用于中小型公司的仓储管理。

功能特点:

免费/开源(GPL)

清晰易用的界面

私有化部署

易于安装和配置

适用于小型/中型/大型公司

强大的搜索功能。

提供跟踪工具

快速全文搜索

参数搜索

CSV导入导出

开发语言:PHP、JavaScript

05 ERPNext
Github:https://github.com/frappe/erpnext

ERPNext是一个功能全面且完全免费的开源仓储解决方案。基于开源项目可以根据特定要求进行定制化开发。ERPNext提供了卓越的库存和仓库管理功能,以及可以帮助简化业务运营的各种功能,包括:财务、销售、客户、采购、制造等业务的管理。

开发语言:Python、JavaScript

06 Snipe-IT
Github:https://github.com/snipe/snipe-it
官网:https://snipeitapp.com/

Snipe-IT是一个可靠、高效且功能强大的仓库管理系统,专为拥有多个地点和数百名用户的企业设计。Snipe-IT可以跟踪公司的所有固定资产,包括硬件、软件和其他资源;可以轻松管理公司的库存,跟踪资产移动,并生成详细的报告。

Snipe-IT最大的优势是它是开源的,这意味着可以私有化部署,确保数据始终可控。不必担心任何第三方许可费用,还可以可以自定义开发以满足独特的需求。

Snipe-IT的用户界面非常友好、直观、易于使用。可以设置自定义用户角色和权限,以确保组织中的每个人都可以访问到正确的信息。

功能特性:

自由、开源软件

基于REST-API

支持电子邮件、Slack通知

多语言支持(包括中文)

管理员仪表板跟踪最近的活动

强大的资产管理能力

支持资产审计

提供QR码和条形码生成器

支持许可管理

历史信息管理器

支持数字签名

支持资产导入/导出

资产跟踪

资产搜索
开发语言:PHP

部署要求:PHP >= 7.2.0(强烈推荐7.3+)

数据库:MariaDB或MySQL

07 OpenBoxes
Github:https://github.com/openboxes/openboxes

OpenBoxes是一个基于Web的开源库存管理软件。它自定义开发扩展功能,可以完全免费使用。

它也是一个跨平台的软件包,基于Java开发,因此可以在任何Java支持的平台上顺利运行。

功能特性:

跨平台支持(基于Java),Windows、Linux和macOS

私有化部署

管理不同地点的多个仓库

高级跟踪选项

动态库存计算

产品类型配置

自定义字段和元数据感知产品

数据导入和导出

信息丰富的仪表盘

强大的位置浏览功能(基于地理位置、群组、内部和外部位置)

报表工具

支持多语言

支持多个用户、高级组权限

电子邮件通知

自定义属性

为企业提供灵活的部署选项

开发语言:Groovy、JavaScript

  • 22
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
可对物料进行出入库登记、查询、统计等操作 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; using System.Windows.Forms; namespace FORU_SMS_.BaseClass { public class DataClass { BaseClass.DataConn Dconn = new DataConn(); SqlDataAdapter Mysda; DataSet Myds; DataTable Mydt; SqlCommand SqlCom; //返回一个DataSet public DataSet GetDataSet(string sql, string dt) { Mysda = new SqlDataAdapter(sql, Dconn.OpenConn()); Myds = new DataSet(); Mysda.Fill(Myds, dt); return Myds; } //绑定ComboBox控件 public void BindComboBox(string sql, string dt, string Par_Name, ComboBox cbox) { Myds = GetDataSet(sql, dt); cbox.DataSource = Myds.Tables[dt]; cbox.DisplayMember = Par_Name; } //执行SQL语句,无返回值 public void ExecuteSql(string sql) { try { SqlCom = new SqlCommand(sql, Dconn.OpenConn()); SqlCom.ExecuteNonQuery(); } catch (Exception e) { throw new Exception(e.Message); } finally { Dconn.CloseConn(); } } //验证用户登陆 public bool ChkLogin(string txtUser, string txtPass) { bool strEnter = false; SqlCom = new SqlCommand("select count(*) from SMS_User where UserName=@txtUser AND Password=@txtPass", Dconn.OpenConn()); SqlParameter para = new SqlParameter("@txtUser",SqlDbType.VarChar,20); para.Value = txtUser; SqlCom.Parameters.Add(para); para = new SqlParameter("@txtPass", SqlDbType.VarChar, 20); para.Value = txtPass; SqlCom.Parameters.Add(para); int intCount = Convert.ToInt32(SqlCom.ExecuteScalar()); if (intCount > 0) { strEnter = true; } else { strEnter = false; } return strEnter; } public SqlDataReader GetRead(string sql) { SqlCom = new SqlCommand(sql, Dconn.OpenConn()); SqlDataReader sqlRead = SqlCom.ExecuteReader(CommandBehavior.CloseConnection); return sqlRead; } public DataTable GetDataTable(string sql) { SqlCom = new SqlCommand(sql, Dconn.OpenConn()); Mydt = new DataTable(); Mysda = new SqlDataAdapter(); try { Mysda.SelectCommand = SqlCom; Mysda.Fill(Mydt); } catch (Exception) { } finally { Dconn.CloseConn(); } return Mydt; } private bool isNumber(string s) { int Flag = 0; char[] str = s.ToCharArray(); for (int i = 0; i 0) { return true; } else { return false; } } public void saveGoods(AddGoods _Add) { string sql = ""; sql = sql "insert into SMS_Goods(GoodsID,GoodsName,StoreName,SupName,SpecName,UnitName,GoodsNum,GoodsPrice,GoodsAPrice,GoodsPeople,GoodsRemarks) values (@GoodsID,@GoodsName,@StoreName,@SupName,@SpecName,@UnitName,@GoodsNum,@GoodsPrice,@GoodsAPrice,@GoodsPeople,@GoodsRemarks)"; SqlCom = new SqlCommand(sql,Dconn.OpenConn()); Mysda = new SqlDataAdapter(); Mysda.SelectCommand = SqlCom; SqlCom.Parameters.Add("@GoodsID", SqlDbType.VarChar, 20, "GoodsID").Value = _Add.GoodsID; SqlCom.Parameters.Add("@GoodsName", SqlDbType.VarChar, 50, "GoodsName").Value = _Add.GoodsName; SqlCom.Parameters.Add("@StoreName", SqlDbType.VarChar, 50, "StoreName").Value = _Add.StoreName; SqlCom.Parameters.Add("@SupName", SqlDbType.VarChar, 50, "SupName").Value = _Add.SupName; SqlCom.Parameters.Add("@UnitName", SqlDbType.VarChar, 10, "UnitName").Value = _Add.UnitName; SqlCom.Parameters.Add("@GoodsNum", SqlDbType.Int, 4, "GoodsNum").Value = _Add.GoodsNum; SqlCom.Parameters.Add("@SpecName", SqlDbType.VarChar, 50, "SpecName").Value = _Add.SpecName; SqlCom.Parameters.Add("@GoodsPrice", SqlDbType.Float, 10, "GoodsPrice").Value = _Add.GoodsPrice; SqlCom.Parameters.Add("@GoodsAPrice", SqlDbType.Float, 10, "GoodsAPrice").Value = _Add.GoodsAPrice; SqlCom.Parameters.Add("@GoodsPeople", SqlDbType.VarChar, 20, "GoodsPeople").Value = _Add.GoodsPeople; SqlCom.Parameters.Add("@GoodsRemarks", SqlDbType.VarChar, 50, "GoodsRemarks").Value = _Add.GoodsRemarks; try { SqlCom.ExecuteNonQuery(); } catch (Exception) { } finally { Dconn.CloseConn(); } } } }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码讲故事

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值