cloudwp | WooCommerce 繁體中文使用手冊

高效能訂單儲存

高效能訂單儲存 (HPOS)(原稱為自訂訂單表格)是專為電子商務需求設計的解決方案,提供易於理解的穩固資料庫結構。

它使用 Woo 的建立、讀取、更新、刪除 (CRUD) 設計,將訂單資料儲存在針對 WooCommerce 查詢最佳化的自訂表格中,對商店效能的影響最小。

高效能訂單儲存的新功能

將 HPOS 引入 WooCommerce 改善了對電子商務商店至關重要的三個特性:

  1. 可擴展性
    顧客和顧客訂單數量的增加會增加商店資料庫的負載,使其難以處理顧客訂單請求並提供無縫的使用者體驗。透過高效能訂單儲存,你可以獲得訂單、訂單地址等資料的專用表格和專用索引,從而減少讀取/寫入操作和繁忙表格。此功能使各種規模的電子商務商店能夠將業務擴展到最大潛力,而無需專家介入。
  2. 可靠性
    HPOS 使實施和還原目標資料備份更簡單。由於這些自訂訂單表格中的可靠備份,你不再需要擔心遺失訂單、庫存數量或客戶資訊。它還有助於實施讀取/寫入鎖定並防止競爭條件。
  3. 簡單性
    你不再需要瀏覽單一巨大資料庫來定位底層資料和 WooCommerce 條目。透過 HPOS,你可以瀏覽獨立於 _posts 表格的單獨表格和易於處理的條目,以尋找資料或了解表格結構。它還讓你能夠開發新的擴充功能、實施商店和商品設計,並更靈活地修改 WooCommerce。

背景

在 8.2 版之前,WooCommerce 依賴 _post_postmeta 表格結構來儲存訂單資訊。

HPOS 引入了訂單、訂單地址等資料的專用表格和專用索引。這導致更少的讀取/寫入操作和更少的繁忙表格。此功能使各種規模的電子商務商店能夠擴展到其最大潛力

訂單資料從 _posts_postmeta 表格同步到四個自訂訂單表格:

  • _wc_orders
  • _wc_order_addresses
  • _wc_order_operational_data
  • _wc_orders_meta

如何啟用高效能訂單儲存

注意:

在啟用高效能訂單儲存之前,請確保你網站上使用自訂文章類型的任何擴充功能(例如 Woo Subscriptions、WooCommerce Bookings 等)處於啟用狀態。在將訂單資料轉換至 HPOS 之前停用這些擴充功能可能會導致資料不一致。進一步了解在 HPOS 遷移期間處理自訂文章類型。

從 WooCommerce 8.2 開始,HPOS 對新安裝預設啟用。現有商店可以按照以下步驟從 WordPress 文章儲存切換到高效能訂單儲存。

要啟用 HPOS,現有商店首先需要同步文章和訂單表格:

  1. 在 WP 管理後台,前往 WooCommerce > 設定 > 進階 > 功能
  2. 勾選啟用相容模式(同步訂單至文章表格)核取方塊。
  3. 啟用此設定後,背景操作將被排程。
    • wc_schedule_pending_batch_process 操作會檢查是否有訂單需要回填。
    • 若有,會排程另一個操作(wc_run_batch_process)將這些訂單回填至文章儲存。
    • 可等待這些操作自動執行(不需要太久),或前往WooCommerce > 狀態 > 排程操作,找到操作,並點擊操作名稱下方的執行連結(滑鼠游標移至名稱上方時會顯示)。
    • 此操作每次會回填25 個訂單。若有更多訂單需要同步,會在前一個操作完成後排程更多操作。
  4. 兩個表格成功同步後,可選擇切換至 HPOS 的選項。
    • 建議維持相容模式一段時間以確保順利轉換。若發生任何問題,可即時回復至 _posts 表格。

或者,也可以使用命令列介面(CLI)指令 wp wc cot sync 將訂單從 _posts 表格複製到 HPOS 表格。此指令會根據權威表格設定自動識別適合進行資料傳輸的表格。

注意:關閉與開啟啟用相容模式(同步訂單至文章表格)設定也會在需要時再次排程回填程序。

訂單資料儲存

可自由切換資料存放區以同步表格間的資料。

  • 若選擇WordPress 文章儲存(舊版)選項,系統會將訂單資料儲存在 _posts_postmeta 表格內。在此情境下不會使用訂單表格。

  • 若選擇高效能訂單儲存(建議)選項,系統會將訂單資料儲存在新的 WooCommerce 訂單表格內。

  • 若選擇WordPress 文章儲存(舊版)選項並勾選啟用相容模式核取方塊,系統會在 _posts_postmeta 與 WooCommerce 訂單表格之間同步訂單資料。

同步

當同時選擇高效能訂單儲存(建議)相容模式選項時,WooCommerce 會使用來自 _posts_postmeta 表格的資料填充 HPOS 表格。進一步了解不同表格間的同步

HPOS 遷移期間處理自訂文章類型

在啟用高效能訂單儲存之前,請確保網站上使用自訂文章類型的任何擴充功能(例如 Woo Subscriptions、WooCommerce Bookings 等)處於啟用狀態。這些擴充功能將資料儲存在 WordPress 文章表格中。啟用 HPOS 時,訂單資料會移至新的最佳化 HPOS 表格。

若在遷移後重新啟用擴充功能,這可能造成資料不一致,因為原始資料仍保留在文章表格中,而系統現在查找 HPOS 表格,不會識別該資料。要防止此類問題,在啟用 HPOS 時請保持使用自訂文章類型的擴充功能處於啟用狀態。

若已停用擴充功能並啟用 HPOS,請按照以下步驟正確遷移訂單資料:

  1. 前往 WooCommerce > 設定 > 進階 > 功能
  2. 高效能訂單儲存切換回WordPress 文章儲存,並允許同步完成。
  3. 然後,切換回高效能訂單儲存

不相容擴充功能

若使用與 HPOS 不相容的擴充功能,WP 管理後台 WooCommerce > 設定 > 進階 > 功能 下的切換選項會被停用。

  • 點擊檢視與管理連結以檢視不相容擴充功能清單。
  • 也可以造訪 https://example.com/wp-admin/plugins.php?plugin_status=incompatible_with_feature&feature_id=custom_order_tables 檢視不相容擴充功能清單(將 example.com 替換為網站網域)。

注意:若使用無法正常運作於高效能訂單儲存的第三方擴充功能,請通知其開發者並要求他們加入 HPOS 支援。由各個擴充功能開發者負責為其擴充功能加入 HPOS 支援。我們提供開發者資源與文件協助他們進行整合工作。

HPOS 全文搜尋索引

從 WooCommerce 9.0 開始,訂單全文搜尋(FTS)以實驗模式提供。此功能增強搜尋能力,允許使用訂單地址與商品快速搜尋。

要啟用實驗性「HPOS 全文搜尋索引」功能:

  1. 前往 WooCommerce > 設定 > 進階 > 功能
  2. 確保訂單資料儲存已設定為 HPOS
  3. 實驗性功能區段下,啟用HPOS 全文搜尋索引選項

注意:此功能僅在訂單資料儲存設定為 HPOS 時有效。

停用 HPOS

若遇到問題,或需要繼續使用尚未與 HPOS 相容的擴充功能,建議暫時將訂單資料儲存設定切換回WordPress 文章儲存(舊版)

要執行此操作,請前往 WooCommerce > 設定 > 進階 > 功能 並確保相容模式已啟用。若先前未啟用,可能需要等待訂單資料在資料存放區之間同步。

同步完成後,選擇WordPress 文章儲存(舊版)作為偏好選項;此時也可以停用相容模式。準備好重新啟用 HPOS 時,只需按照本文件開頭所列的說明操作即可。最後,記得在變更之間儲存此頁面!

如先前所述,我們也強烈建議聯絡任何不相容擴充功能的支援團隊,以便他們採取修正措施。

開發者升級指南

若你或團隊需要更新商店的自訂程式碼、擴充功能或任何與 HPOS 相關的內容,請查看我們的升級食譜書以找到所有技術細節。

常見問題 (FAQ)

我有現有商店但不想啟用 HPOS。需要啟用嗎?

沒問題!雖然我們鼓勵所有人切換至 HPOS 以享受更快結帳體驗的完整優勢,但我們理解並非所有人都想立即嘗試。此功能完全選擇性加入,可以隨時切換。

我最喜歡的擴充功能與 HPOS 不相容,該怎麼辦?

我們已積極與開發者社群溝通即將到來的 HPOS 變更。我們有數篇部落格文章、GitHub 上的擴充功能更新指南與完整文件。儘管我們盡力鼓勵擴充功能開發者進行切換,部分開發者可能不支援 HPOS。若你的某個擴充功能不相容,強烈建議聯絡該開發者的支援團隊並要求他們進行更新。若已安裝擴充功能,可以繼續在沒有 HPOS 的情況下使用。

小型企業可以使用 HPOS,還是僅適用於大型企業?

所有規模的企業都會受益於高效能訂單儲存。

我在 WooCommerce 上有大流量商店。這對我的商店有什麼影響?

現有商店不會自動遷移至 HPOS。此功能完全選擇性加入。可按照上述步驟啟用 HPOS。

使用 HPOS 是否有特定的主機要求或限制?

沒有主機限制。任何能夠執行 WordPress 與 WooCommerce 的主機都應該可以順利執行 HPOS。啟用後甚至可以在多方面提升效能。進一步了解 WooCommerce 的伺服器需求

要了解更多技術見解,請查看我們的開發者部落格常見問題