跳到主内容
版本: 1.x

架构

本页面解释了WCPOS的技术架构,面向开发人员和高级用户。

双组件系统

WCPOS被设计为一个双组件系统:

  1. **PHP插件:**托管在您的服务器上,这是一款相对较小的插件,扩展了WooCommerce REST API

  2. **JavaScript客户端:**这在您的浏览器或桌面应用程序中运行,之后将在iOS和Android应用程序中运行。

您可以把它想象成两个独立的世界:

  • PHP世界 是使用WordPress和WooCommerce进行数据管理的地方。
  • JavaScript世界 在本地复制您的WooCommerce商店,优化了快速搜索和离线使用。
pos-client-woo-server

数据同步

数据通过WooCommerce REST API从WooCommerce获取。这意味着POS必须下载每个产品、变体、产品类别、客户、税率等,以便在本地存储。

尽管最初这可能会耗费一些时间,但下载后,它们可以立即使用,而无需不断从服务器获取。

同步内容

  • 产品和变体
  • 产品类别和标签
  • 客户
  • 税率和税类
  • 支付网关(用于结账)
  • 订单(用于Pro中的订单历史)

同步策略

WCPOS使用增量同步策略:

  1. **初始同步:**第一次加载时下载所有数据
  2. **增量更新:**只获取自上次同步以来的更改
  3. **后台同步:**定期检查更新
  4. **手动同步:**用户可以随时触发同步

架构优缺点

优点 😊缺点 😟
本地数据搜索瞬时数据同步困难
离线可用的缓存数据受限于WooCommerce REST API
能够为桌面、iOS和Android创建更好的原生应用WordPress主题和钩子无法自定义POS应用

本地数据库

JavaScript客户端将数据存储在IndexedDB中,这是一个基于浏览器的数据库。这提供了:

  • **持久性:**数据在浏览器重启后仍然存在
  • **性能:**快速查询,无网络延迟
  • **离线浏览:**缓存数据在没有互联网的情况下仍然可访问

结账架构

结账过程使用iframe/webview加载WooCommerce订单支付页面。这种方法:

  • **利用现有支付网关:**任何WooCommerce支付网关都可以在POS中工作
  • **保持安全:**支付处理通过WooCommerce的安全基础设施进行
  • **减少复杂性:**无需重新实现支付网关集成

API扩展

PHP插件通过为POS特定功能扩展WooCommerce REST API添加额外的端点。有关详细信息,请参阅WooCommerce REST API