ネイティブ以外の在庫管理を検討する際の考慮事項

カスタマイズは、できるだけ単純にします。
在庫の組織がどの程度平らであるか、それは単に 1SKU と利用可能な在庫の合計量であるか、または考慮する必要がある他の属性があります。

SKU や合計使用可能数量など、在庫情報が非常にフラットな場合、ほぼリアルタイムのオプションが展開されます。 ほぼリアルタイムという概念は、ソースからインベントリを収集し、ストレージ・エンジンにデータを入力して要求に対応するバックグラウンド操作があることを意味します。 これには、Redis、Mongo、その他の非リレーショナルデータベースなどを使用できます。 これらのオプションは非常に高速で、キーと値のペアに最適なので便利です。 データが少し複雑な場合は、コマースアプリケーションの内部または外部で関係データベースを使用する必要が生じる可能性が高くなります。 これをコマースデータベースからオフロードすることにより、コアコマースアプリケーションをこれらのトランザクションから分離します。 もう 1 つの利点は、コマースアプリケーション、CPU、RAM などから I/O を節約できることです。 Adobe Commerce アプリケーションサーバーのリソースを使用する代わりに、新しい API を利用してオフサイトストレージからデータを取り込みます。 データ変換を支援するミドルウェアが必要になる可能性があります。 次に、呼び出し元のアプリケーションが期待どおりに結果を取得できることを確認します。 API メッシュでAdobeApp Builderを使用すると、データを変換して、正しい形式で返すことができます。

複数のインベントリソースがある場合は、API メッシュでAdobeApp Builderを使用することも優れたオプションです。

実行ロジックをプロセス外の場所に移動

Adobe Developer App Builderは、カスタムエクスペリエンスを統合および作成してAdobeソリューションを拡張するための統一サードパーティ拡張フレームワークを提供します。 Adobe CommerceはAdobe Developer App Builderを使用できます。 これは、通常コアアプリケーションで発生し、オフサイトに移動される一部の機能を拡張する場合の優れたユースケースです。 Commerce アプリケーションから機能を削除することで、Commerce アプリケーションのモジュールの数と複雑さが軽減されます。 さらに、インプロセスのカスタマイズの数が少なくなるので、アップグレードやメンテナンスの複雑さが軽減されます。

これを実現する方法のインスピレーションとして、Adobeのチームは、インスピレーションの優れた源となり、実用的なコードサンプルを提供できるいくつかのドキュメントを作成しました。 買い物客が買い物かごに製品を追加すると、サードパーティの在庫管理システムが品目の在庫があるかどうかを確認します。 追加する場合は、製品を追加できるようにします。 それ以外の場合は、エラーメッセージを表示します。 コードサンプルと詳細については、Webhook のユースケースを参照してください。

在庫チェックを行うタイミング

在庫がまだ残っているかどうかを確認するタイミングは、最終的にビジネスの関係者、ソフトウェアアーキテクト、他の主要な関係者からのいくつかの入力になります。 例えば、買い物かごに項目を追加する場合や、チェックアウトワークフローに入る場合などです。 その他のイベントは、不要な場合に、バックエンドシステムに負荷を追加するだけです。 目標は、最も重要な場合にのみ在庫の問題を検出することです。 その他のチェックもいいかもしれませんが、在庫ステータスチェックの全体的な目標に影響を与える可能性がある場合は、慎重に考慮し、ビジネスの関係者または他の人が、バックエンドシステムに追加の負荷がかかる潜在的なリスクを認識している場合にのみ許可する必要があります。

在庫ソースのリサーチ

外部在庫ソースの包括的な調査が必要です。 評価する必要がある項目は、使用可能な API オプション、GraphQLのサポート、予想される応答時間です。 在庫ソースの接続帯域幅が限られている場合、またはリアルタイムリクエストでの使用を意図していない場合、使用の機能は除外され、アーキテクトはほぼリアルタイムで検討する必要があります。 API リクエストの時間が定義済みのパラメーターを超える場合、これを実行可能なオプションから除外します。 例えば、API 応答は 1 回のリクエストに対して 200 MS® ですが、中程度の負荷では 500~900 MS® に上昇します。 負荷が増えると状況は悪化し、ライブインベントリ呼び出しが使用可能でなくなる可能性が低くなります。

単純なリクエストで api 応答時間をテストするだけでなく、ライブ web サイトで期待されるトラフィックに類似した大量の api 応答時間をテストしてください。 実際のシナリオをシミュレートするには、コマースのすべての領域を同時にテストすることを忘れないでください。 製品ページでライブ在庫呼び出しが発生すると想定される場合、買い物かごを表示および編集する際とチェックアウト時に、負荷テストでは、実際の顧客の行動と店舗の期待をシミュレートするために、これらすべてを同時にシミュレートする必要があります。

フォールバックオプション

インベントリソースがダウンし、モニタリングが使用可能な場合は、Adobe Commerceのネイティブ機能を使用することをお勧めします。 ただし、適切に監視することで、顧客体験を動的に変化させ、リアルタイムの在庫チェックの損失を反映させることができます。 これは、オーバーセルを避けるために、販売やイベントが早期にキャンセルされるか、表示から削除されることを意味する場合があります。 何らかの理由で在庫ソースがダウンした場合の対処方法についての期待を考慮し、店主と話し合う必要があります。これにより、不幸な状況で引き継がれる自動プロセスを誰もが認識できるようになります。

まとめ

リアルタイムの在庫チェックを行う決定は重要です。 Web サイトの所有者、開発チーム、その他のユーザーが十分な教育を受け、すべての利益と潜在的な落とし穴を認識していることを、開発者のリードまたはアーキテクトに任せます。 理由とフォールバックプロセスをカバーする思慮深いプランを提供することが、成功の鍵です。

ライブインベントリチェックは実行できますが、QA サイクル中のテストと検証に関する調査と思考が必要です。 負荷テストとエンドツーエンドの自動テストを確実に行うことで、潜在的なすべての問題が把握され、トリアージが実行されるようになります。

外部システムへの呼び出しが失敗した傾向を監視が検出した場合、または応答時間が許容できるしきい値を超えた場合に実行するアクションを検討することで、サイトをオンライン状態に保ち、顧客に対する刺激を最小限に抑えることができます。 フォールバックオプションは、外部の在庫チェックをオフにしてネイティブ機能を使用するのと同じくらい簡単なことも、プロモーションを無効にして、エスカレートする問題を開発チームに通知したり、または利用可能な場合は 2 番目または 3 番目のバックエンドシステムへのリクエストを再ルーティングしたりするのと同じくらい高度なこともあります。 どの統合にもある時点で問題が発生するので、フォールバックメカニズムがどのように適用されるかは、実際の実装として考える必要があります。 自動化された内容や手動による操作が必要な内容については、明確に文書化する必要があります。

前のページ注文ステータスの管理
次のページ会社アカウントの管理

Commerce