分散注文管理を実装する
学習の目的
この単元を完了すると、次のことができるようになります。
- 分散注文管理とは何かを説明する。
- 分散注文管理の利点について説明する。
- Salesforce Order Management で利用できる自動ルーティングオプションについてディスカッションする。
分散型注文管理とは?
前の単元では、フローを使用してフルフィルメントプロセスを自動化する方法を学習しました。自動化することで、顧客注文のタイムリーかつ正確なフルフィルメントを実現できます。これは、ビジネスの成功には欠かせないものです。
急速に変化する今日の e コマース環境においては、単に注文のフルフィルメントを行うだけでは十分ではありません。顧客は、オンライン (e コマースストア) とオフライン (実店舗) の両方のチャネルでブランドとやりとりして、購入したいと考えています。また、そのようなチャネル間でのシームレスな体験も求めています。顧客の満足度を維持するには、フルフィルメントプロセスに、さまざまな販売やサービスのシナリオに十分に対応できる柔軟性を持たせる必要があります。
分散注文管理 (DOM) を使用すると、フルフィルメントワークフローを最適化して、すべてのロケーションから時間通りに最小限のコストで注文を効率的に配送できます。また、新しい販売チャネル、フルフィルメント方法、在庫ロケーションを組み込むために、ワークフローを迅速に適応させることもできます。
分散注文管理ワークフローを実装すると、次のことが可能になります。
- ネットワークの最適化: 店舗と配送センターのネットワークを使用して、各ロケーションからのフルフィルメントを実現します。
- コストの削減: 注文のフルフィルメントに組み合わせることができるロケーションの最小セットを特定するロジックを組み込み、送料を削減します。
- 迅速なフルフィルメント: 配送の時間と速度に基づき、フルフィルメントに最適なロケーションに注文を動的にルーティングして、顧客満足度を高めます。
- 作業のスマート化: デジタル体験と物理的体験をシームレスに統合し、すべてのデータと注文レコードの一元化された情報源で管理します。
Salesforce Order Management に DOM を実装する
Salesforce Order Management には、分散注文管理フローパッケージのサンプルが含まれています。このパッケージには、サンプルフロー、Apex クラス、カスタムオブジェクト、カスタムフィールドが含まれており、注文品目をフルフィルメントのロケーションにルーティングするフローベースのシステムをまとめて実証できます。フルフィルメントプロセスを自動化および合理化する独自のカスタムビジネスロジックを使用して、サンプルパッケージのコンポーネントを変更および拡張することもできます。
フローパッケージのカスタマイズ可能なコンポーネントを使用すると、小売店と配送センターのネットワークを活用して、ネットワーク内の各ロケーションからの注文フルフィルメントを最適化できます。店舗在庫または従来の倉庫や配送センターからの注文のフルフィルメントに加えて、「オンライン購入・店舗受け取り」 (BOPIS) フルフィルメントオプションを使用すると、顧客が好きなときに好きな場所で商品を入手できるようになります。
Salesforce Order Management と Salesforce Omnichannel Inventory を統合すると、リアルタイムの在庫状況機能を注文ルーティングワークフローに組み込むこともできます。
それでは、分散注文管理が自動化されたフルフィルメントプロセスの効率化にどのように役立つのかを詳しく見ていきましょう。
自動化された注文ルーティング
すでに学習したように、Salesforce Order Management では、一連の自動化されたフローを使用することで、すべての新規注文が取得され、注文フルフィルメントが開始されます。その後、自動起動されたフローを使用して、注文をフルフィルメントのロケーションに自動的にルーティングできます。分散注文管理機能では、この自動化を拡張して、注文品目を最も効率的に処理できるフルフィルメントのロケーションセットを決定し、そのロケーションに在庫予約をルーティングすることができます。
自動化されたルーティングプロセスの基本手順は次のとおりです。
- ルーティングのスケジュール
- ルートの決定
- ルーティングの実行
- 請求書の作成と資金の確認
- 予約のフルフィルメント
Salesforce Order Management には、ルーティングルールの実装に使用できるフローコアアクションが含まれており、自動ルーティングプロセスの速度と効率の向上に役立ちます。このようなアクションにより、分割出荷を最小限に抑え、近接度に基づいたルーティングを使用して各注文に最適なフルフィルメントロケーションを見つけることができます。
連携するように設計されている前述のアクションでは、まず注文のフルフィルメントが可能なロケーションのセットを特定し、次に注文受取人に最も近いロケーションのセットを決定します。こういったアクションを同時に実施することで、注文受取人の配送先住所に最も近いロケーションから、配送回数を最小限にして注文を発送することができ、効率化と顧客満足度の向上につながります。
分割出荷を最小限に抑える
[Find Routes with Fewest Splits (分割が最も少ないルートを検索)] アクションでは、最小限の分割数で注文のフルフィルメントが可能なロケーションからのフルフィルメントが優先されます。
[Find Routes with Fewest Splits (分割が最も少ないルートを検索)] アクションでは、注文の商品数量を在庫と比較して、注文のフルフィルメントのために組み合わせることができるロケーションの最小セットが決定されます。完全な注文の出荷が常に優先されるため、まず、注文済み商品のリスト全体のフルフィルメントに十分な在庫を持つ 1 つのロケーションが検索されます。見つからなかった場合は、組み合わせた在庫で注文のフルフィルメントに対応できるロケーションのペアが検索されます。ペアが見つからなかった場合は、3 つのロケーションのセットを検索し、以降同様に処理されます。
分割の最大数を指定すると、検索を制限できます。1 つの組み合わせ内の最大ロケーション数は、指定した最大数より 1 つ多い数になります。たとえば、最大分割数に 2 を指定した場合、このルーティングフローでは、注文のフルフィルメントが可能な 1 つのロケーション、ロケーションのペア、および 3 つのロケーションのセットが検索されます。
例
注文を一括で出荷可能な場合、[Find Routes with Fewest Splits (分割が最も少ないルートを検索)] アクションでは 1 回の配送で注文を出荷できるロケーションのリストが返されます。一括で出荷できない場合は、アクションは 1 分割に移行します。つまり、注文を異なる 2 つのロケーションから 2 回に分けて出荷するということです。2 回の出荷が可能な場合は、2 回の出荷に対応可能な 2 つのロケーションの反復が返されます。1 回の分割で出荷できない場合は、アクションは許容される最大分割数である 2 分割に移行します。つまり、注文は 3 回に分けて出荷されることになります。この場合、3 回の出荷に対応可能な 3 つのロケーションの反復が返されます。
近接度に基づいたルーティング
[Order Routing Rank By Average Distance (平均距離による注文ルーティングランク)] アクションでは、[Find Routes with Fewest Splits (分割が最も少ないルートを検索)] で返されたロケーションのセットを評価して、注文受取人の郵便番号に基づいて平均配送距離が最も短いセットを決定します。
このアクションでは、特定されたロケーションセットごとに、各ロケーションから注文受取人の郵便番号までの直線距離が計算されます。次に、その平均が計算され、受取人までの平均距離順に並び替えたロケーションセットが返されます。
こうすることで、そのリストの中で配送先住所に最も近いロケーションから優先的に配送することができます。
Omnichannel Inventory を使用した注文ルーティング
Salesforce Omnichannel Inventory には、フローに在庫機能を実装するためのコアフローアクションが複数用意されています。Omnichannel Inventory を Salesforce Order Management と併用している場合、そのフローコアアクションをルーティングロジックと組み合わせて、自動フルフィルメントプロセスの一環として予約を作成および管理できます。
自動化されたフルフィルメントプロセスにリアルタイムの在庫状況情報を追加すると、フルフィルメントワークフローの信頼性と効率性を向上させることができます。
次の表は、ルーティングロジックの改善に使用できる Salesforce Omnichannel Inventory コアフローアクションの説明を示しています。
コアフローアクション | 説明 |
---|---|
在庫状況の取得 |
1 つ以上の在庫ロケーションまたはロケーショングループで 1 つ以上の商品の在庫状況を取得します。 |
予約の移行 |
ロケーションまたはロケーショングループ間で 1 つ以上の在庫予約を移行し、そのロケーションまたはロケーショングループの在庫状況を更新します。 |
予約のフルフィルメント |
ロケーションで 1 つ以上の在庫予約のフルフィルメントを行い、そのロケーションの在庫状況を更新します。 |
予約のリリース |
ロケーションで 1 つ以上の在庫予約をリリースし、そのロケーションまたはロケーショングループの在庫状況を更新します。 |
注文ルーティングの試行の追跡
Salesforce Order Management データモデルでは、フルフィルメントのルーティングが完全でない注文や、予約がキャンセルされた注文に対して、独自の再ルーティングロジックを実装できます。
注文を再ルーティングするためのロジックを実装する場合は、以前のルーティング試行に関する情報が非常に役立ちます。ルーティング情報を把握するには、注文概要ルーティングスケジュールオブジェクトと、注文概要オブジェクトの [Routing Attempts (ルーティング試行)] フィールドを使用します。
注文概要ルーティングスケジュール
注文概要ルーティングスケジュールレコードは、注文ルーティングの 1 回の試行を表します。このレコードでは、ルーティング試行のスケジュール日時、ルーティング試行のステータス ([Scheduled (スケジュール済み)]、[Completed (完了)]、[Abandoned (中止)])、試行が失敗した理由を確認できます。
注文概要ルーティングスケジュールの使い方はユーザー次第です。今後のルーティング試行をスケジュールするときに作成したり、過去の試行を記録するために作成したりできます。ただし、注文概要ルーティングスケジュールの状況を [Completed (完了)] または [Abandoned (中止)] に設定した後で、スケジュールされた日時を変更することはできません。
ルーティング試行フィールド
[Routing Attempts (ルーティング試行)] フィールドを使用すると、注文概要に対するルーティングの試行回数を記録できます。注文概要ルーティングスケジュールと同様に、使い方はユーザー次第です。
次のステップ
ここまで、注文管理のパズルのピースがどのように組み合わされているかについて見てきました。ですが、もう 1 つ検討すべきことがあります。それは全体をまとめるもの、サービスです。