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_post和wp_postmeta數據庫表結構來存儲不同的數據,包括訂單、優惠券和產品; 但是,當您需要擴展 WooCommerce 商店並且您每天收到數百個客戶訂單時,問題就開始了。
每個下達的訂單都會調用update_post_meta() ——這意味著每次插入數據時都要進行單獨的查詢,而對於 post meta 的批量插入沒有解決方案。 這就是自定義表格的想法出現的地方。
您可以將數據從 postmeta 移出到自定義表中,這將訂單插入查詢的總數顯著減少了80% ,從而最大限度地減少了訂單量瓶頸。
讓我們詳細了解 WooCommerce 自定義訂單表的功能和新增功能。
WooCommerce 自定義訂單表有什麼新功能?
自定義訂單表是一種解決方案,提供易於理解和可靠的數據庫結構——專為電子商務需求而設計。 它使用 WooCommerce CRUD 設計將訂單數據存儲在單個平面表中——針對 WooCommerce 查詢進行了優化,對商店性能的影響最小。
將自定義訂單表引入 WooCommerce 核心改進了電子商務商店的這三個基本屬性。
- 可擴展性
如前所述,客戶和客戶訂單數量的增加會增加商店數據庫的負載,從而導致處理客戶訂單請求和提供優質用戶體驗的效率低下。 此外,管理一個包含數千行的數據庫也帶來了嚴重的問題。
使用 WooCommerce 自定義訂單表,您可以獲得訂單和訂單地址等數據的專用表,從而獲得專用索引、更少的讀/寫操作和更少的繁忙表。 此功能使各種形式和規模的電子商務商店能夠將其業務擴展到最大潛力 - 無需專家干預。
- 可靠性
WooCommerce 自定義訂單表將使實施和恢復目標數據備份更容易。 通過自定義訂單表中的可靠備份,您將不再需要擔心丟失訂單、庫存編號或客戶信息。
此外,它還將有助於實現讀/寫鎖並防止競爭條件。 此外,如果您想恢復 WP,WooCommerce 將保持不變。
- 簡單
您不再需要通過一個龐大的數據庫來定位基礎數據和 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_comments和wp_commentmeta存儲訂單備註。 但是,這些新表現在將處理和存儲訂單備註。
因此,WooCommerce 鼓勵使用大量插件並在後元表中存儲大量數據的電子商務商店使用此更新並利用專用的自定義表。
此外,它還鼓勵開發人員不要將wp_wc_orders_meta用於常見的訂單相關值,因為它是存儲尚未遷移的擴展數據的更好的備份解決方案。
您還可以在此處查看單個新表的結構。
常見問題解答:WooCommerce 自定義訂單表
在這裡,我們回答了一些有關 WooCommerce 自定義訂單表的常見問題。
- 自定義訂單表功能何時發布?
WooCommerce 開發團隊的目標是在 2022 年第三季度完成並發布初始功能實現。目前,該團隊正在 GitHub 上跟踪該項目。
- 表結構將如何?
這是 WooCommerce 團隊為訂單數據提出的表結構設計。
- 它是否也有助於包含更多的電子郵件結構?
是的,隨著電子郵件字段長度從 100 增加到 320 - 您可以容納大多數電子郵件結構。
- 我可以存儲以前無法存儲的字段嗎?
是的,該功能還會刪除需要計算且之前未存儲的字段,例如product_tax_amount和product_total_amount。
結論
WooCommerce 自定義訂單表將在擴展大型電子商務商店和解決最重要的性能瓶頸問題方面發揮重要作用:大量訂單。
雖然該項目仍在實施中並定於 2022 年第三季度發布,但您可以通過官方 GitHub 項目板了解該項目。
隨著實施的進展和 WooCommerce 提供更新,您還可以在此博客上期待定期更新、開發說明和公告。