結帳效能最佳實務
此 簽出 Adobe Commerce中的程式是店面體驗的關鍵層面。 此功能需仰賴內建的 購物車 和 簽出 功能。
效能是維持良好使用者體驗的關鍵。 檢閱 效能基準摘要 以進一步瞭解效能期望。 您可以配置下列選項以最佳化簽出效能 高輸送量訂單處理:
- AsyncOrder — 使用佇列以非同步方式處理訂單。
- 遞延總計計算 — 將訂單總計的計算延遲到結帳開始。
- 購物車載入時的詳細目錄檢查 — 選擇略過購物車專案的詳細目錄驗證。
- 負載平衡 — 啟用MySQL資料庫和Redis執行個體的次要連線。
AsyncOrder、延遲總計計算及購物車載入庫存檢查組態選項都可獨立運作。 您可以同時使用全部三個功能,或以任何組合來啟用和停用功能。
非同步下單
此 非同步順序 模組會啟用非同步下單,這會將訂單標示為 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:
您可以使用命令列介面停用AsyncOrder:
bin/magento setup:config:set --checkout-async 0
此 set
命令會將下列內容寫入 app/etc/env.php
檔案:
...
'checkout' => [
'async' => 0
]
AsyncOrder相容性
AsyncOrder支援有限的Adobe Commerce功能集。
標準簽出
B2B可轉讓報價
貨到付款
Braintree
PayPal PayFlow Pro
下列功能為 非 AsyncOrder支援,但可繼續同步運作:
- 支援的功能清單中未包含付款方法
- 多位址簽出
- 管理訂單建立
Web API支援
啟用AsyncOrder模組後,下列REST端點和GraphQL變動會以非同步方式執行:
REST:
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 Load 至 No
在Admin UI中 商店 > 設定 > 目錄 > 詳細目錄 > 股票期權 區段。 另請參閱 設定全域選項 和 目錄詳細目錄 在 使用手冊.
負載平衡
您可以啟用MySQL資料庫和Redis執行個體的次要連線,協助平衡不同節點的負載。
Adobe Commerce可以非同步方式讀取多個資料庫或Redis執行個體。 如果您在雲端基礎結構上使用Commerce,您可以透過編輯 MYSQL_USE_SLAVE_CONNECTION 和 REDIS_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