チェックアウトパフォーマンスのベストプラクティス

Adobe Commerceの チェックアウトプロセスは、ストアフロントのエクスペリエンスの重要な側面になります。 これは、組み込みの 買い物かごおよび チェックアウト機能によって異なります。

パフォーマンスは、ユーザーエクスペリエンスを良好に維持するための鍵です。 パフォーマンスの期待値について詳しくは、 パフォーマンスベンチマークの概要を参照してください。 次のオプションを設定して、チェックアウトのパフォーマンスを最適化できます 高スループットの注文処理

「AsyncOrder」、「遅延合計計算」および「買い物かごの積荷に関する在庫チェック」設定オプションはすべて個別に機能します。 3 つの機能をすべて同時に使用することも、任意の組み合わせで有効と無効を切り替えることもできます。

NOTE
組み込みの買い物かごとチェックアウト機能をカスタマイズする場合は、カスタムの PHP コードを使用しないでください。 パフォーマンスの潜在的な問題に加えて、カスタム PHP コードを使用すると、アップグレードやメンテナンスの複雑な課題が発生する可能性があります。 これらの問題により、TCO (総所有コスト)が増加します。 PHP ベースの買い物かごとチェックアウトのカスタマイズが避けられない場合は、Adobe Commerce Marketplace 承認済みの拡張機能のみを使用してください。 すべての Marketplace の拡張機能がAdobe Commerceのコーディング標準とベストプラクティスを満たしていることを確認するには、 詳細なレビューが必要です。

非同期注文の配置

Async Order モジュールは、非同期の注文プレースメントを有効にし、注文を received としてマークし、注文をキューに配置し、キューからの注文を先入れ先出し方式で処理します。 AsyncOrder はデフォルトで 無効 です。

例えば、顧客が買い物かごに製品を追加し、Proceed to Checkout を選択します。 Shipping Address フォームに入力し、希望する Shipping Method を選択し、支払い方法を選択して、注文を行います。 買い物かごがクリアされ、注文が Received としてマークされますが、製品数量がまだ調整されていないか、顧客に送信される販売メールがありません。 注文は受け取られましたが、注文が完全に処理されていないので、注文の詳細はまだ利用できません。 placeOrderProcess のコンシューマーが開始されるまでキューに残り、注文を 在庫チェック機能で検証し(デフォルトで有効)、注文を次のように更新します。

  • 製品使用可能 – 注文のステータスが 保留中 に変わり、製品数量が調整され、注文詳細を記載したメールが顧客に送信され、成功した注文詳細が、並べ替えなどの実用的なオプションを備えた 注文と返品 リストで表示できるようになります。
  • 在庫切れまたは供給不足 – 注文のステータスが 却下 に変わり、製品数量が調整されず、イシューに関する注文詳細を記載したメールが顧客に送信され、却下された注文詳細は 注文と返品 リストで利用できるようになり、実用的なオプションはありません。

コマンドラインインターフェイスを使用してこれらの機能を有効にするか、モジュールリファレンスガイド で定義されている対応する README ファイルに従って app/etc/env.php ファイルを編集します。

AsyncOrder を有効にするには:

AsyncOrder は、コマンドラインインターフェイスを使用して有効にできます。

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

set コマンドは、app/etc/env.php ファイルに次の内容を書き込みます。

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

モジュールリファレンスガイドAsyncOrder を参照してください。

AsyncOrder を無効にするには:

WARNING
AsyncOrder モジュールを無効にする前に、all 非同期の注文プロセスが完了していることを確認する必要があります。

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 配列に追加することで、非同期の注文プレースメントから明示的に除外できます。 除外された支払方法を使用する注文は、同期的に処理されます。

交渉可能な見積もり非同期注文

Negotiable Quote Async Order B2B モジュールを使用すると、NegotiableQuote 機能のために注文項目を非同期で保存できます。 AsyncOrder および NegotiableQuote を有効にする必要があります。

繰延合計計算

遅延合計計算 モジュールは、買い物かごに対してリクエストされるまで、または最終的なチェックアウト手順で合計計算を延期することで、チェックアウトプロセスを最適化します。 有効になっている場合、顧客が買い物かごに商品を追加した際に計算されるのは小計のみです。

遅延合計計算は、デフォルトで 無効 になっています。 コマンドラインインターフェイスを使用してこれらの機能を有効にするか、モジュールリファレンスガイド で定義されている対応する README ファイルに従って app/etc/env.php ファイルを編集します。

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
   ]

Module Reference GuideDeferredTotalCalculating を参照してください。

固定製品税

繰延合計計算が有効化されている場合、商品を買い物かごに追加した後、固定製品税(FPT)は商品価格とミニ買い物かごの小計に含まれません。 FPT 計算は、商品をミニ買い物かごに追加する際に延期されます。 最終チェックアウトに進んだ後、FPT は買い物かごに正しく表示されます。

在庫確認を無効にする

買い物かごへの読み込み時に在庫を有効にする グローバル設定により、商品を買い物かごに読み込む際に在庫チェックを実行するかどうかが決まります。 在庫確認プロセスを無効にすると、すべてのチェックアウトステップのパフォーマンスが向上します。特に、買い物かごで一括製品を処理する場合に効果があります。

無効にすると、商品を買い物かごに追加する際に在庫チェックが行われません。 この在庫確認をスキップした場合、在庫切れのシナリオによっては、他のタイプのエラーがスローされる可能性があります。 無効の場合でも、注文配置ステップで在庫チェック 常に が行われます。

買い物かごへの積載時に在庫チェックを有効化 は、デフォルトで有効(「Yes」に設定)になっています。 カートを読み込む際に在庫チェックを無効にするには、管理 UI ストア/設定/カタログ/在庫/在庫オプション セクションで、Enable Inventory Check On Cart LoadNo に設定します。 ユーザーガイドグローバルオプションの設定および カタログ在庫 を参照してください。

ロードバランシング

MySQL データベースと Redis インスタンスのセカンダリ接続を有効にすることで、異なるノード間で負荷を分散させることができます。

Adobe Commerceは、複数のデータベースまたは Redis インスタンスを非同期で読み取ることができます。 クラウドインフラストラクチャー上でCommerceを使用している場合は、.magento.env.yaml ファイル内の MYSQL_USE_SLAVE_CONNECTIONREDIS_USE_SLAVE_CONNECTION の値を編集することで、セカンダリ接続を設定できます。 読み取り/書き込みトラフィックを処理する必要があるのは 1 つのノードのみです。そのため、変数を 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