結帳效能最佳實務

簽出 Adobe Commerce中的程式是店面體驗的關鍵層面。 此功能需仰賴內建的 購物車簽出 功能。

效能是維持良好使用者體驗的關鍵。 檢閱 效能基準摘要 以進一步瞭解效能期望。 您可以配置下列選項以最佳化簽出效能 高輸送量訂單處理

AsyncOrder、延遲總計計算及購物車載入庫存檢查組態選項都可獨立運作。 您可以同時使用全部三個功能,或以任何組合來啟用和停用功能。

NOTE
請勿使用自訂PHP程式碼來自訂內建購物車和出庫功能。 除了潛在的效能問題之外,使用自訂PHP程式碼還可能導致複雜的升級和維護挑戰。 這些問題會增加您的總擁有成本。 如果無法避免以PHP為基礎的購物車和結帳自訂,請使用 Adobe Commerce Marketplace僅核准的擴充功能。 所有Marketplace擴充功能皆須遵守 廣泛檢閱 以確認其符合Adobe Commerce編碼標準和最佳實務。

非同步下單

非同步順序 模組會啟用非同步下單,這會將訂單標示為 received,可將訂單放入佇列中,並以先進先出原則處理佇列中的訂單。 非同步順序為 已停用 依預設。

例如,客戶將產品新增至購物車並選取 Proceed to Checkout. 他們填寫 Shipping Address 表單,選取其偏好設定 Shipping Method,選取付款方式並下訂單。 購物車已清除,訂單已標籤為 Received,但產品數量尚未調整,也不會傳送銷售電子郵件給客戶。 已收到訂單,但由於訂單尚未完全處理,因此尚未提供訂單詳細資料。 它會保留在佇列中,直到 placeOrderProcess 消費者開始,驗證訂單 詳細目錄檢查 功能(預設為啟用),並依照以下方式更新順序:

  • 可用的產品 — 訂單狀態變更為 擱置中,則會調整產品數量,傳送一封包含訂單詳細資料的電子郵件給客戶,而成功的訂單詳細資料則可在 訂購與退貨 列出可操作選項,例如重新排序。
  • 產品無存貨或供給不足 — 訂單狀態變更為 已拒絕,產品數量不會調整,會傳送一封電子郵件給客戶,其中包含問題的訂單詳細資料,而遭到拒絕的訂單詳細資料會顯示在 訂購與退貨 沒有可操作選項的清單。

使用指令行介面來啟用這些功能,或編輯 app/etc/env.php 檔案中定義的對應README檔案 模組參考指南.

啟用AsyncOrder

您可以使用命令列介面啟用AsyncOrder:

bin/magento setup:config:set --checkout-async 1

set 命令會將下列內容寫入 app/etc/env.php 檔案:

...
   'checkout' => [
       'async' => 1
   ]

另請參閱 AsyncOrder模組參考指南.

停用AsyncOrder

WARNING
在停用AsyncOrder模組之前,您必須確認 全部 非同步訂購程式已完成。

您可以使用命令列介面停用AsyncOrder:

bin/magento setup:config:set --checkout-async 0

set 命令會將下列內容寫入 app/etc/env.php 檔案:

...
   'checkout' => [
       'async' => 0
   ]

AsyncOrder相容性

AsyncOrder支援有限的Adobe Commerce功能集。

類別
支援的功能
簽出型別
OnePage簽出
標準簽出
B2B可轉讓報價
付款方法
支票/匯票
貨到付款
Braintree
PayPal PayFlow Pro
送貨方法
支援所有送貨方法。

下列功能為 AsyncOrder支援,但可繼續同步運作:

  • 支援的功能清單中未包含付款方法
  • 多位址簽出
  • 管理訂單建立

Web API支援

啟用AsyncOrder模組後,下列REST端點和GraphQL變動會以非同步方式執行:

REST:

GraphQL:

INFO
GraphQL不支援以非同步方式放置可轉讓的報價單。

排除付款方法

開發人員可將某些付款方法新增至「 」,以明確將其從非同步下單中排除 Magento\AsyncOrder\Model\OrderManagement::paymentMethods 陣列。 使用已排除付款方法的訂單會同步處理。

可轉讓報價非同步訂單

可轉讓報價非同步訂單 B2B模組可讓您以非同步方式為 NegotiableQuote 功能。 您必須啟用AsyncOrder與NegotialQuote。

遞延總計計算

遞延總計計算 模組會藉由將總計算推延至對購物車提出要求或在最後結帳步驟期間,來最佳化結帳程式。 啟用時,只有小計會在客戶新增產品至購物車時計算。

遞延總計計算為 已停用 依預設。 使用指令行介面來啟用這些功能,或編輯 app/etc/env.php 檔案中定義的對應README檔案 模組參考指南.

啟用DeferredTotalCalculation

您可以使用命令列介面啟用DeferredTotalCalculation:

bin/magento setup:config:set --deferred-total-calculating 1

set 命令會將下列內容寫入 app/etc/env.php 檔案:

...
   'checkout' => [
       'deferred_total_calculating' => 1
   ]

若要停用DeferredTotalCalculation

您可以使用命令列介面停用DeferredTotalCalculation:

bin/magento setup:config:set --deferred-total-calculating 0

set 命令會將下列內容寫入 app/etc/env.php 檔案:

...
   'checkout' => [
       'deferred_total_calculating' => 0
   ]

另請參閱 DeferredTotalCalculating模組參考指南.

固定產品稅金

啟用遞延總計計算時,將產品新增至購物車後,固定產品稅(FPT)不會納入迷你購物車的產品價格與購物車小計中。 將產品新增至迷你購物車時,FPT計算會延遲。 繼續進行最終結帳之後,FPT會在購物車中正確顯示。

停用詳細目錄檢查

在購物車載入時啟用詳細目錄 全域設定決定在購物車中載入產品時是否執行庫存檢查。 停用庫存檢查程式可改善所有結帳步驟的效能,尤其是處理購物車中的大量產品時。

停用時,將產品新增到購物車時不會進行詳細目錄檢查。 如果跳過此庫存檢查,則某些缺貨情況可能會擲回其他型別的錯誤。 詳細目錄檢查 一直 在訂購步驟中發生,即使停用亦然。

在購物車載入時啟用詳細目錄檢查 預設為啟用(設定為「是」)。 若要在載入購物車時停用詳細目錄檢查,請設定 Enable Inventory Check On Cart LoadNo 在Admin UI中 商店 > 設定 > 目錄 > 詳細目錄 > 股票期權 區段。 另請參閱 設定全域選項目錄詳細目錄使用手冊.

負載平衡

您可以啟用MySQL資料庫和Redis執行個體的次要連線,協助平衡不同節點的負載。

Adobe Commerce可以非同步方式讀取多個資料庫或Redis執行個體。 如果您在雲端基礎結構上使用Commerce,您可以透過編輯 MYSQL_USE_SLAVE_CONNECTIONREDIS_USE_SLAVE_CONNECTION 中的值 .magento.env.yaml 檔案。 只有一個節點需要處理讀寫流量,因此將變數設定為 true 會導致建立唯讀流量的次要連線。 將值設為 false 以從移除任何現有的唯讀連線陣列 env.php 檔案。

範例 .magento.env.yaml 檔案:

stage:
  deploy:
    MYSQL_USE_SLAVE_CONNECTION: true
    REDIS_USE_SLAVE_CONNECTION: true
recommendation-more-help
c0c5bbed-4957-4162-81bc-120c837a1894