Laravel POS系统 - 免费和开放源代码

307 阅读8分钟

今天我将向你展示一个我刚刚用Laravel制作的软件。它是一个销售系统, 销售点, POS或任何你叫它, 它是用来跟踪所销售的产品, 销售, 等等.

它是一个完全免费和开源的系统; 这意味着你可以免费使用它,并根据你的需要修改它或定制它。在它的特点中,我们发现。

  1. 它使用了Laravel的最新版本(截至本文写作时)。
  2. 样式使用Bootstrap
  3. FontAwesome图标
  4. 完全响应的系统,也就是说,它可以在手机、平板电脑和电脑上使用
  5. 库存控制,包括销售价格、购买价格、利润、库存等。
  6. 可选择进行销售,添加产品
  7. 销售时检查存货库存
  8. 销售时减去库存
  9. 用热敏打印机打印销售票据
  10. 销售报告
  11. 用户登录和注册
  12. 用户管理
  13. 客户注册
  14. 包括客户姓名的票据

现在让我们看看我是如何开发的,你在哪里可以下载它,等等。

销售系统设计

Laravel使用Blade做模板,所以我使用了他们的布局和继承系统。我定义的主模板是基于一个Bootstrap 4的启动模板。

Gist上查看代码。

所以现在我只需要覆盖内容。从模板中你可以看到,我显示了一个导航菜单,并且在用户没有登录的情况下,我隐藏了一些元素。

路由

我们有几个路由被配置为显示销售的界面,查看销售,打印票据,查看产品,等等。所有这些都是用auth中间件保护的,所以如果你没有登录,就不允许访问它们。

web.php文件看起来像这样。

Gist上查看该代码。

在该文件中,作为资源的控制器被注册,以及其他路由,如登录、注册、向购物车添加产品等。

登录到系统

我使用了Laravel的默认认证,所以要使用用PHP和Laravel编写的销售系统,你必须要登录。

Laravel和Bootstrap开源系统 - 登录

以同样的方式,提供了一个屏幕来注册(所以你可以注册你的用户,然后访问POS机),可以根据需要禁用。

欢迎屏幕

当你登录时,你会被重定向到索引或欢迎屏幕。它显示了通往系统各部分的快捷方式。

索引屏幕 - 带有通往POS机部分的快捷方式的屏幕

索引屏幕的代码如下。

Gist上查看该代码。

我使用的是Bootstrap卡。从那里你可以导航到以下部分。

产品管理 - 库存

我们有Laravel的产品管理,其中记录了库存,购买价格,销售价格,条形码和项目描述。模型的定义和它的可填充物看起来像这样。

查看Gist上的代码。

创建一个新产品的表格如下。

查看Gist上的代码。

这是一个简单的表单,它将导致下面的控制器或产品控制器,而这又是一个资源。

查看Gist上的代码。

编辑表单与插入表单非常相似。为了显示产品,除了使用Blade的@foreach ,还使用了一个响应式的Bootstrap表格。

其结果如下图所示。

带有库存和利润的产品列表

记住,完整的源代码可以在GitHub上看到;最后我将留下链接。从这里开始,我将不完全解释重复的代码,因为我已经用产品做了。让我们来看看最重要的事情。

进行销售

销售的界面

在界面中,我们有一个用于扫描条形码的字段,不管是使用阅读器还是写下代码并按下回车键

当有产品时,就会显示它们的列表,以及一些按钮,用来取消销售、结束销售或从销售列表中删除产品。

进行销售 - 通过使用条形码将产品添加到购物车中

除此以外,还显示以货币为格式的销售总额。

已售产品列表

购物车或销售的产品列表以数组的形式保存在会话中,这样,即使用户刷新页面或导航到另一个地方,也不会丢失;从而可以更好地控制。

我已经用数组实现了一个简单的购物车,处理它的函数是。

Gist上查看代码。

它可以处理各种情况。例如,当一个产品被添加时,条形码被发送,并通过该代码搜索一个产品;然后进行两个验证。

  1. 该产品是否存在
  2. 当把产品添加到销售清单中时,它将不会不存在。

例如,如果你想销售超过现有的产品,会显示一个警告。

Comprobar existencia de productos antes de vender

销售前检查产品库存 - Laravel POS FOSS

完成销售

在销售结束的时候,有几件事情涉及到。首先,我们有一个不同的模型,称为ProductSold(ProductoVendido),负责封装一个已售出的产品的行为方式。

我之所以这样分开,是因为销售价格并不总是相同的;也就是说,今天你可以以100美元的价格卖出一个产品,而明天的价格是112美元;那么它的销售价格必须被保存在记录中。

Gist上查看代码。

除此之外,产品与销售(Ventas)表有关系,这些表有一个创建日期(时间戳)和一个ID。

查看Gist上的代码。

这里是一个有趣的点, 因为我们有一个产品和销售之间的关系, 使用Laravel提供的关系。最后, 为了完成销售, 做了以下工作:

Gist上查看代码.

而这就是售出的产品是如何与销售和创建日期一起被保存的。稍后,我们将用它来查看销售报告,销售的细节和打印票据。

销售报告

销售报告显示了销售总额、销售日期以及查看细节、打印票据或删除销售的按钮。列出销售总额的查询是。

查看Gist上的代码。

带总数和日期的销售报告

当显示销售详情时,我们使用控制器的show 方法,它显示了一个销售。在那里,由于我们之前定义的关系,我们可以获得产品表,并把细节画成总数。

带按钮的销售详情,可打印票据

顺便说一下,该视图如下。

查看Gist上的代码。

这就是负责绘制表格、放置链接等的内容。

销售票据

注意:如果你想知道如何配置你的打印机,请看关于如何在PHP中打印票据的帖子。

让我们看看门票是如何在 热敏打印机上打印的。你要做的是安装mike42库;我是根据我的教程用Laravel在热敏打印机上打印

控制器的功能如下。

Gist上查看代码。

我们首先通过ID获得销售,也就是通过URL传递的变量。打印机的名字在.env 文件中,所以可以很容易地进行配置。

我们打印标题,销售日期,然后我们浏览销售的产品(之前在数据库中注册的)。对于每个产品,我们画出数量、描述和小计。

在票据的底部,我们打印总数和感谢信息。如果一切正常的话,销售单看起来应该和下面的图片类似。

用Laravel和开源POS系统打印的销售票据

很明显,票据会根据产品列表而改变,它是完全动态的。

反应灵敏的销售系统

我想说明的是,这个系统可以适应任何屏幕尺寸。例如,在手机上它看起来像这样。

iPhone屏幕上的响应式销售点

因此,你可以在局域网内使用它,或将它上传到主机上;你可以从任何地方访问它。

下载软件和查看源代码

该程序的源代码在我的 GitHub资源库.如果你想下载代码,请点击克隆或下载>下载仓库内的ZIP。要使用它,需要配置env文件,用composer安装依赖项,用php artisan migrate 进行必要的迁移。

安装系统

你可以看这个YouTube视频,我告诉你如何安装这个免费的基于laravel的系统。

演示

你可以看一下该系统的操作视频。

你也可以在线测试。

总结

对于我目前在大学里上的一门课,我必须用Laravel做一个CRUD,但我一直想(很长时间)用Laravel做一个销售点,并添加一些东西,如门票打印。

如果你喜欢这个框架, 我邀请你在我的博客上阅读更多关于Laravel的信息.我也邀请你看看我的其他项目, 其中一些是开放源代码的.

注意:我已经为这个系统添加了更多的模块, 包括客户模块和用户模块.

Laravel POS系统--免费和开源这篇文章首先出现在Parzibyte的博客上。