2023 年 4 月のリリースの一部として、Microsoft Dynamics 365 Intelligent Order Management のフルフィルメント最適化エンジン (DOM) をアプリケーション プログラミング インターフェイス (API) 経由で販売注文オーケストレーションの外部から呼び出すことができます。 eコマース、マーケットプレース、エンタープライズ・リソース・プランニング (ERP) プラットフォームなど、どのプラットフォームでも、Intelligent Order Management に API 要求を行うことで、最適なフルフィルメントのソースを、配送業者の送料や配送予定日の情報などの配送オプションとともに取得することができます。 フルフィルメント計画だけを取得する場合は、少なくとも配送先住所、製品、および数量を API 要求に含める必要があります。 フルフィルメント計画に加えて配送業者の送料と配送予定日を取得する場合は、配送業者情報を渡す必要があります。 現在、API は FedEx レート API を呼び出して送料を取得するように作成されています。 ただし、ペイロード応答はどの配送業者に対しても汎用的なものです。
前提条件
API 経由で Intelligent Order Management のフルフィルメント最適化エンジン (DOM) を使用する前に、次の前提条件を満たす必要があります:
- 最新バージョンの Intelligent Order Management (バージョン 1.0.0.6035) をインストールします。
- 戦略、ソース リスト、制約などのフルフィルメント設定を設定します。 詳細については、フルフィルメントと返品の最適化プロバイダーの概要 を参照してください。
- Inventory Visibility プロバイダーを設定します。 詳細については、Inventory visibility を参照してください。
- フルフィルメント のソース設定の各フルフィルメント ソースに倉庫IDがマップされている必要があります。
Fedex 配送業者からの配送オプションを持つ結果を期待する場合は、次の設定が完了していることを確認する必要があります。
- FedEx プロバイダーを設定します。 詳細については、FedEx プロバイダーの設定 を参照してください。
- 設定>フルフィルメント設定>休日カレンダー で休日カレンダーを設定します。
- 配送業者の集荷スケジュールは、設定>フルフィルメント設定>配送業者 で設定します。 配送業者を選択し、集荷スケジュールに移動して、新しい集荷スケジュールを追加します。
- フルフィルメント ソースの設定に少なくとも 1 つのカレンダーと集荷スケジュールが割り当てられていることを確認します。
- 重量および寸法が製品の共有製品テーブルにあることを確認します。
- 配送業者の輸送料係数テーブルが、輸送料係数と予備料金情報で更新されていることを確認します。 輸送料係数テーブルにアクセスするには、設定>フルフィルメント設定>配送業者>輸送料係数 に移動します。
機能説明
API 要求が行われると、Intelligent Order Management のフルフィルメント最適化エンジン (DOM) が呼び出され、事前構成されたフルフィルメントの最適化戦略と制約に基づいて、各行に最適なフルフィルメント ソースが返されます。 要求に FedEx などの配送業者が含まれている場合、配送業者の集荷スケジュールをフルフィルメント ソースの作業カレンダーとともに確認し、次回集荷可能な時間を配送業者 API に送信します。 DOM API に対する応答は、フルフィルメント計画と配送業者の出力の両方を組み合わせ、呼び出し元のアプリケーションに返します。
API 要求の例
環境でテストする Power Automate flow–to–Dataverse アンバウンド アクションを作成します。
{{Dataverse URL}}/api/data/v9.2/msdyn_IomDomAPI
**apiVersion**: 1.0
{
"fnoCompanyId": "USMF",
"orderId": "b16bd573-ad9a-4188-bc08-e5ac5eca776e",
"strategyId": null,
"carrier": "fedex",
"salesOrderOrigin": null,
"customerInformation": {
"name": "Whole sales",
"customerNumber": "US-001",
"customerGroup": "10",
"customerEmail": "test@microsoft.com"
},
"orderDestinationAddress": {
"addressType": "Residence",
"address1": "537 N St. Francis",
"address2": null,
"address3": null,
"city": "Wichita",
"stateOrProvince": "KS",
"postalCode": "67214",
"phoneNumber": null,
"country": "US"
},
"lineItems": [
{
"lineId": "d5670621-910d-486b-90ca-61d739e9a92e",
"itemId": "1000",
"quantity": 2,
"freeShipping": "No"
},
{
"lineId": "5c8b423b-c9fe-4ff1-a16e-a75a35d7c424",
"itemId": "T0001",
"quantity": 2,
"freeShipping": "Yes",
"dimensions": {
"sizeId": "10"
}
},
{
"lineId": "a359a0ec-cded-4eda-b7b0-d7478dff48b9",
"itemId": "T0004",
"quantity": 2,
"freeShipping": "Yes",
"dimensions": {
"colorId": "black"
}
}
]
}
応答の例
Fulfillment Successful
{
"fulfillmentPlan": {
"executionId": "616d8797-0654-4ca7-bae2-c4771521e5f4",
"planLines": [
{
"orderId": "47c1c1c6-5cc7-4691-a0ae-b50b83b2bba1",
"lineId": "34d8209b-3a4b-4c54-a666-76fef99bef63",
"quantityToFulfill": 1.0,
"orderedQuantity": 1.0,
"fulfillmentCenter": "127",
"itemId": "1000"
}
],
"notFulfilledLines": []
}
}
API 参照ガイド
このセクションでは、API 要求のデータ型とヘッダー フィールドについて説明します。
名前 | データ型 | Description |
---|---|---|
fnoCompanyId | 文字列、オプション | システム内の企業に対する識別子。 このフィールドは、Dataverse が財務と運用アプリにリンクされている場合に必要です。 |
salesOrderOrigin | 文字列、オプション | システム内の発注元に対する識別子。 このフィールドは、発注元に基づいて、在庫が割り当てられたものから消費される必要がある場合に必要です。 |
orderId | guid 文字列、必須 | 元のシステムで注文または カート ID を識別するために使用されるユーザー定義の注文番号。 |
strategyId | guid 文字列、オプション | Intelligent Order Management のフルフィルメント戦略に対する識別子。 この識別子が指定されていない場合、プロセスはシステムで定義されている既定の戦略を使用します。 |
carrier | 文字列、オプション | このフィールドは、送料および予想の配送推定を取得するために必要です。 サポートされている値は、FedEx です。 |
orderDestinationAddress | アドレス、必須 | 受取人の配送先住所。 アドレス モデルを使用します。 |
customerInformation | CustomerInformation、オプション | 注文の顧客情報。 顧客情報モデルを使用します。 |
lineItems | OrderDetail、必須 | 注文詳細オブジェクトの配列。 注文詳細モデルの配列を使用します。 |
モデル
このセクションでは、API 要求でデータ モデルを使用するフィールドについて説明します。
住所
このセクションでは、API 要求のアドレス オブジェクトのフィールドについて説明します。
名前 | データ型 | Description |
---|---|---|
addressType | 文字列、オプション、値: ビジネス、居住地、任意 | 指定した住所が居住用かどうかを示す値。 |
名前 | 文字列、オプション | 名前。 |
address1 | 文字列、オプション | 住所の 1 行目。 |
address2 | 文字列、オプション | 住所の 2 行目。 |
address3 | 文字列、オプション | 住所の 3 行目。 |
city | 文字列、必須 | 市町村。 |
stateOrProvince | 文字列、必須 | 都道府県。 2 文字の ISO Origin State コードが必要です。 |
postalCode | 文字列、必須 | 郵便番号。 |
country | 文字列、必須 | 国または地域のコード。 2 文字の ISO Origin Country コードが必要です。 |
phoneNumber | 文字列、オプション | 電話番号。 |
注文の詳細
このセクションでは、API 要求の注文詳細セクションのフィールドについて説明します。
名前 | データ型 | Description |
---|---|---|
lineId | guid 文字列、必須 | 元のシステムの注文明細行に対する識別子。 |
itemId | 文字列、必須 | この明細行品目に関連付けられている製品の名前。 値を null にすることはできません。 |
quantity | 数値、必須 | 注文された製品の数量。 |
freeShipping | 文字列、オプション、値: はい、いいえ | はい の値は、レート要求が行われたときに製品の重量が除外されることを意味します。 |
dimensions | ProductDimensions、オプション | 製品分析コードは、製品バリアントを識別する特性です。 製品分析コード モデルを使用します。 このフィールドは、Dataverse が財務と運用アプリにリンクされている場合に必要です。 製品バリアントを識別するための製品分析コードを選択します。 |
製品分析コード
このセクションでは、製品分析コード テーブルのフィールドについて説明します。
名前 | データ型 | Description |
---|---|---|
colorId | 文字列、オプション | 品目の色の値。 このフィールドは、Dataverse が財務と運用アプリにリンクされている場合に必要です。 製品分析コードを選択して、使用する製品バリアントを識別します。 |
sizeId | 文字列、オプション | 品目サイズの値。 このフィールドは、Dataverse が財務と運用アプリにリンクされている場合に必要です。 製品分析コードを選択して、使用する製品バリアントを識別します。 |
styleId | 文字列、オプション | 品目スタイルの値。 このフィールドは、Dataverse が財務と運用アプリにリンクされている場合に必要です。 製品分析コードを選択して、使用する製品バリアントを識別します。 |
configId | 文字列、オプション | 品目構成の値。 このフィールドは、Dataverse が財務と運用アプリにリンクされている場合に必要です。 製品分析コードを選択して、使用する製品バリアントを識別します。 |