シナリオ配送予定日キャッシュの使用
eCommerce プラットフォームのオーナーとしては、商品リストページ(PLP)のようなトラフィックの多いページでキャッシュされたEDDの結果を再利用することで、買い物客に迅速でシームレスな体験を保証したい。
配達予定日(EDD)キャッシュを使用する前に、キャッシュを有効にする必要があります。 詳しくは、「 配送予定日のキャッシュを設定する 」をご覧ください。
シナリオ1:キャッシュされたEDD結果をPLPで再利用する
このシナリオでは、米国の特定の郵便番号にいる顧客が、靴などの商品を検索するためにPLPを開く。 商品が選択されると、商品詳細ページ(PDP)が開き、 Get EDD APIを使用して、出荷または集荷配送方法に対するリアルタイムのEDD計算が開始されます。 EDDの結果はキャッシュに保存される。 その後、顧客がPLPリストを閲覧すると、 getCachedEDDs APIが靴のキャッシュ結果を取得するため、同じ結果が表示されます。 シューズのPLPリストに表示するEDDを再計算する必要がないため、時間を節約し、パフォーマンスを向上させることができる。
- Sterling Intelligent
Promising でPDPのEDDを計算するには、 Get EDD APIを使用して以下の情報を提供する:
{ "customerType": "GOLD", "enterpriseCode": "ENT1", "shippingGroupId": "2DShipping", "destination": { "format": "ADDRESS", "value": { "countryCode": "US", "postalCode": "54321", } }, "capacityUomToConsider": "UNITS", "itemInfo": { "itemId": "I1", "unitOfMeasure": "EACH", "productClass": "CLASS1" }, "capacityCategoriesToConsider": { "categoryIds": ["cat1"] } }このAPIコールは配達日を計算し、キャッシュに保存する。
- PLPにキャッシュされた値を取得するには、 getCachedEDDs APIに同じアイテムと宛先情報を再度提供する:
"destination": { "format": "ADDRESS", "value": { "countryCode": "US", "postalCode": "54321", } }, "shippingGroupId": "2DShipping", "inputs": [ { "inputId": "I1 input", "customerType": "GOLD", "enterpriseCode": "ENT1", "capacityUomToConsider": "UNITS", "itemInfo": { "itemId": "I1", "unitOfMeasure": "EACH", "productClass": "CLASS1" }, "capacityCategoriesToConsider": { "categoryIds": ["cat1"] } } ] }注: 以前に計算された結果をキャッシュからフェッチするには、構造に若干の変更がある。 この構造変更により、1回のAPIコールで複数のアイテムに対応できるようになった。 - getCachedEDDs APIは、キャッシュされた結果を以下のように処理する:
- キャッシュヒットの場合、一致するキャッシュエントリが存在すると、APIは新たな計算をトリガーすることなく、元のEDD計算のトリミングバージョンを返す。
- キャッシュミスの場合、キャッシュされたエントリーが見つからなければ、APIは
cacheMiss。- すぐにリアルタイムで計算するわけではない。
- その代わりに、入力を追跡し、提供された入力に対してEDDを計算する非同期バックエンドジョブをトリガーする。 詳しくは、この後のシナリオを参照のこと。
- 今後、同じ入力で呼び出すと、新しくキャッシュされた結果が返される。
シナリオ2:非同期EDD計算によるキャッシュミスの処理
このシナリオでは、買い物客が2つの商品を含むPLPを見る:
- 項目 I1: すでに計算され、キャッシュされている。
- 項目 I2: キャッシュされたレコードが存在しません。
getCachedEDDs APIを両方のアイテムで呼び出すと、 Sterling Intelligent
Promising はアイテム I1 のキャッシュヒットを返し、アイテム I2 のキャッシュミスを返す。 その後、アイテム I2 のEDDがバックグラウンドで非同期に計算され、将来のリクエストに利用できるようになる。- getCachedEDDs APIへのリクエスト例を考えてみよう:
キャッシュからEDDを取得するには、 getCachedEDDs APIを使用する。 要求された項目が以前に計算されていない場合、APIは{ "destination": { "format": "ADDRESS", "value": { "countryCode": "US", "postalCode": "54321" } }, "shippingGroupId": "2DShipping", "inputs": [ { "inputId": "I1 input", "customerType": "GOLD", "enterpriseCode": "ENT1", "capacityUomToConsider": "UNITS", "itemInfo": { "itemId": "Shoes", "unitOfMeasure": "EACH", "productClass": "CLASS1" }, "capacityCategoriesToConsider": { "categoryIds": ["cat1"] } }, { "inputId": "I2 input", "enterpriseCode": "ENT1", "capacityUomToConsider": "UNITS", "itemInfo": { "itemId": "I2", "unitOfMeasure": "EACH", "productClass": "CLASS1" }, "capacityCategoriesToConsider": { "categoryIds": ["cat1"] } } ] }cacheMissを返し、 Sterling Intelligent Promising EDDを非同期で計算し、将来の使用のために結果をキャッシュする。 - 次のような応答が返される:
{ "outputs": [ { "inputId": "I1 input", "cacheHit": [ { "resultFound": true, "result": { "deliveryTime": "2025-09-09T02:30:00.000Z", "placeOrderBy": "2025-09-08T22:30:00.000Z" } } ] }, { "inputId": "I2 input", "cacheMiss": true } ] }
項目 I1 に対しては以前のキャッシュ結果が返されるが、項目 I2 に対しては cacheMiss:
true が返される。
さて、 Sterling Intelligent
Promising は、バックエンドのジョブを使用して、アイテム
I2 の EDD を非同期で事前計算し、最終的に getCachedEDDs API に同じ入力を返します:{
"outputs": [
{
"inputId": "I1 input",
"cacheHit": [
{
"resultFound": true,
"result": {
"deliveryTime": "2025-09-09T02:30:00.000Z",
"placeOrderBy": "2025-09-08T22:30:00.000Z"
}
}
]
},
{
"inputId": "I2 input",
"cacheHit": [
{
"resultFound": true,
"result": {
"deliveryTime": "2025-09-13T02:30:00.000Z",
"placeOrderBy": "2025-09-08T22:30:00.000Z"
}
}
]
}
]
}