WooCommerce:定制订单表的需求

已发表: 2022-06-22

在确保最佳性能的同时扩展 WooCommerce 商店,并在保持所有订单和客户完好无损的同时推动商店上线,即使在今天也是商店面临的重大问题。

每次消费者在 WooCommerce 商店下订单时,都会将数十个订单数据和条目添加到 WordPress postmeta 数据库表中——这对于处理大量订单并最终导致性能下降的商店来说是一个主要问题。

因此,多年来,WooCommerce 收到了几个解决此问题的请求,并为每个 WooCommerce 实体制作单独的自定义表格 - 而不会影响网站和现有扩展。

最后,WooCommerce 现在正致力于自定义订单表的实施,以解决瓶颈问题并确保更高的商店稳定性。

在本文中,我们向您介绍 WooCommerce 自定义订单表——它是什么,添加到结构中的新表,以及它们如何使您的 WooCommerce 商店受益。 让我们开始!

在 WooCommerce 自定义订单表之前

随着电子商务商店的发展,他们需要在数据库中存储更多的数据和客户信息,这在 WooCommerce 开始时是一个主要问题。 最初,WooCommerce 从未打算存储或处理如此大量的数据。

当 WooCommerce 推出新版本的 WooCommerce 3.0 并鼓励开发人员使用CRUD对象时,情况发生了变化。 CRUD 代表Create Retrieve Update 和 Delete - 数据的常见数据库操作。 它为开发人员开辟了许多可能性——包括从其实现中抽象出数据,并提供对直接数据库访问的抽象。

您更有可能仍然使用wp_postwp_postmeta数据库表结构来存储不同的数据,包括订单、优惠券和产品; 但是,当您需要扩展 WooCommerce 商店并且您每天收到数百个客户订单时,问题就开始了。

每个下达的订单都会调用update_post_meta() ——这意味着每次插入数据时都要进行单独的查询,而对于 post meta 的批量插入没有解决方案。 这就是自定义表格的想法出现的地方。

您可以将数据从 postmeta 移出到自定义表中,这将订单插入查询的总数显着减少了80% ,从而最大限度地减少了订单量瓶颈。

让我们详细了解 WooCommerce 自定义订单表的功能和新增功能。

WooCommerce 自定义订单表有什么新功能?

自定义订单表是一种解决方案,提供易于理解和可靠的数据库结构——专为电子商务需求而设计。 它使用 WooCommerce CRUD 设计将订单数据存储在单个平面表中——针对 WooCommerce 查询进行了优化,对商店性能的影响最小。

将自定义订单表引入 WooCommerce 核心改进了电子商务商店的这三个基本属性。

  1. 可扩展性

如前所述,客户和客户订单数量的增加会增加商店数据库的负载,从而导致处理客户订单请求和提供优质用户体验的效率低下。 此外,管理一个包含数千行的数据库也带来了严重的问题。

使用 WooCommerce 自定义订单表,您可以获得订单和订单地址等数据的专用表,从而获得专用索引、更少的读/写操作和更少的繁忙表。 此功能使各种形式和规模的电子商务商店能够将其业务扩展到最大潜力 - 无需专家干预。

  1. 可靠性

WooCommerce 自定义订单表将使实施和恢复目标数据备份更容易。 通过自定义订单表中的可靠备份,您将不再需要担心丢失订单、库存编号或客户信息。

此外,它还将有助于实现读/写锁并防止竞争条件。 此外,如果您想恢复 WP,WooCommerce 将保持不变。

  1. 简单

您不再需要通过一个庞大的数据库来定位基础数据和 WooCommerce 条目。

相反,您可以轻松浏览单独的表格和易于处理的条目,独立于 WP 帖子,以查找数据或了解表格结构。 它还可以让您轻松开发新插件、实施商店和产品设计,以及更巧妙地修改 WooCommerce。

向后兼容性

在推出期间,WooCommerce 旨在提供 WooCommerce 自定义订单表作为选择加入功能,而不是默认更新。

这种向后兼容性将使现有电子商务商店有足够的时间与 WooCommerce 合作,采用新的数据库结构并使他们的商店与新功能兼容。

因此,在您的开发人员可以充分利用表结构之前,他们将有足够的时间来解决该功能。 WooCommerce 还计划发布定期升级指南以支持自定义订单表的采用。

WooCommerce 自定义订单表的要求

以下是使用 WooCommerce 自定义订单表的基本要求:

  • 您应该拥有 WooCommerce 3.5.1 或更新版本。
  • 如果您希望迁移现有订单数据,您还必须能够在 WooCommerce 环境中运行 WP-CLI 命令。

此命令对于将订单数据从 post meta 迁移到新订单表中至关重要。

WooCommerce 自定义订单表的一般表结构

既然我们已经了解了自定义订单表如何使您的电子商务商店受益,那么让我们看看表结构以及新结构的不同之处。

以下是您可以在订单的通用表格结构中看到的新表格。

  • 核心表:顾名思义,核心表将存储 WooCommerce 核心定义的订单属性。 这些属性包括大多数元表字段和 post 表中的字段。

WooCommerce 认为这组表是自定义订单表项目的中心目标,旨在将数据迁移到核心表中。

  • 元表:元表充当任何与订单相关的一次性值的存储。 您还可以将此表用作迁移元数据的后备位置,这不是核心订单模型的一部分。
  • 附加插件表:目前,没有标准的解决方案来存储插件数据和信息,并且一些插件最终将数据存储在 post 表中。 新的订单表结构为 WooCommerce 插件提供了一个解决方案,这些插件需要存储每个订单和运输的频繁数据。

虽然这不是强制性要求 - 如果您的商店使用多个插件来确保在高峰流量期间可靠的商店性能和正常运行时间,它是完美的解决方案。 WooCommerce 还计划构建有用的工具和指南,使构建和迁移数据到这些表中变得轻而易举。

这是订单数据的建议表结构:

资源

以下是作为元数据和核心表一部分的新表及其用途的列表:

  • wp_wc_orders:此表包含大多数当前核心字段和关键元键。
  • wp_wc_order_addresses:此表将存储与订单关联的地址,包括送货地址和账单地址。
  • wp_wc_order_operational_data: WooCommerce 将使用此表来存储他们用来维护内部订单结构的标志和字段。 由于这些字段的更改更频繁,他们会将这个字段与核心订单表分开。
  • wp_wc_order_meta:此表的功能类似于wp_postmeta表; 但是,它还允许扩展存储与订单相关的一次性数据。
  • wp_wc_order_notes、wp_wc_order_notes_meta:以前, wp_commentswp_commentmeta存储订单备注。 但是,这些新表现在将处理和存储订单备注。

因此,WooCommerce 鼓励使用大量插件并在后元表中存储大量数据的电子商务商店使用此更新并利用专用的自定义表。

此外,它还鼓励开发人员不要将wp_wc_orders_meta用于常见的订单相关值,因为它是存储尚未迁移的扩展数据的更好的备份解决方案。

您还可以在此处查看单个新表的结构。

常见问题解答:WooCommerce 自定义订单表

在这里,我们回答了一些有关 WooCommerce 自定义订单表的常见问题。

  1. 自定义订单表功能何时发布?

WooCommerce 开发团队的目标是在 2022 年第三季度完成并发布初始功能实现。目前,该团队正在 GitHub 上跟踪该项目。

  1. 表结构将如何?

这是 WooCommerce 团队为订单数据提出的表结构设计。

  1. 它是否也有助于包含更多的电子邮件结构?

是的,随着电子邮件字段长度从 100 增加到 320 - 您可以容纳大多数电子邮件结构。

  1. 我可以存储以前无法存储的字段吗?

是的,该功能还会删除需要计算且之前未存储的字段,例如product_tax_amountproduct_total_amount。

结论

WooCommerce 自定义订单表将在扩展大型电子商务商店和解决最重要的性能瓶颈问题方面发挥重要作用:大量订单。

虽然该项目仍在实施中并定于 2022 年第三季度发布,但您可以通过官方 GitHub 项目板了解该项目。

随着实施的进展和 WooCommerce 提供更新,您还可以在此博客上期待定期更新、开发说明和公告。