同時実行エラーにより、商品をカートに追加できないにもかかわらず、注文が作成される場合があります。この問題は、高負荷で同じ商品が店頭のサイトで別の買い物客によって注文されていると同時に、商品をカートに追加する場合に発生します。この問題の原因は、注文の作成中にカートがクリアされ、ログに次のようなエラーが出力されることです。
PipelineAbort:Can not create order, cart [number] has no lines
本問題を解決するには、次の解決策を検討してください:
- Sitecore Experience Commerce 9.3.0の場合:
- 最初のプラグインの作成の説明に従って、Commerce Engineプラグインを作成します。
- プラグインに必要なコンポーネントはパイプラインとブロックだけです。残りのコンポーネントは、PipelinesフォルダとBlocksフォルダの内容とともに削除できます。
- Pipelines・Blocksフォルダーの下にUpdateItemAvailabilityBlock.csファイルを追加します。
- サンプルの新しいメソッドUpdateInventoryInformationWithRetrierは、再試行ロジックを実装しています。
- プロジェクト ルートのデフォルトのConfigureSitecore.csファイルを添付のConfigureSitecore.csファイルに置き換えます。
- プラグイン プロジェクトをSitecore.Commerce.Engineの依存関係に追加し、プロジェクトをリビルドします。
- 生成されたアセンブリをCommerce Engineにデプロイします。