URL マッピング
getUrlMapping エンドポイントを使用すると、ヘッドレスストアフロントは、Business Manager で設定された URL ルールと URL リダイレクトに基づいて、ローカライズされたユーザーフレンドリーな URL をサポートできます。このエンドポイントは、サイトのトラフィックを増やし、サイトナビゲーションを向上させるために役立ちます。
たとえば、"new arrivals" (新着商品) を価値の高い検索用語であると認識し、ストアフロントへのルート (URL: www.example.com/new-arrivals
) を追加するとします。Business Manager のルールを使って、その URL を新着商品のカテゴリリストページにマッピングできます。その後、getUrlMapping エンドポイントを使用して、買い物客が次の操作を行う場合にルールを適用できます。
- 新着商品を検索
- URL:
www.example.com/new-arrivals
をクリックまたは入力
getUrlMapping エンドポイントを使用する前に、以下のことを行ってください。
- getUrlMapping を使用してルールとリダイレクトを適用する場合は、Business Manager で URL ルール や URL リダイレクト を設定します。
- SLAS API クライアントに
sfcc.shopper-seo
スコープを追加します。
この例では、cURL コマンドを使用して getUrlMapping エンドポイントを呼び出し、買い物客がクリックまたは入力した www.example.com/blue/new-arrivals/tops
という URL を解決します。
URL のパスの先頭にスラッシュが付いていないものが、urlSegment
パラメーターとして渡されます。
レスポンスに示されているように、URL は new-arrivals-tops というカテゴリにマッピングされます。
また、getUrlMapping エンドポイントを使用して、Business Manager で設定した URL リダイレクトを適用することもできます。これにより、一時的な商品の発売や季節限定のキャンペーンを実施し、買い物客の体験を向上させることができます。
詳細については次のトピックを参照してください。
この例では、cURL コマンドを使用して getUrlMapping エンドポイントを呼び出し、買い物客がクリックまたは入力した www.example.com/cyber-monday
という URL をリダイレクトします。たとえば、以前にサイバーマンデーのキャンペーンを実施したとします。そのページは、SEO で上位にランクされており、そのランクを維持したいと考えています。サイバーマンデー用の新しいページが利用可能になるまで、古いサイバーマンデーの URL から、開始する新しいキャンペーンページに買い物客を一時的に転送するリダイレクトを設定します。
このサンプルレスポンスでは、urlSegment
は sales というカテゴリにリダイレクトされます。statusCode 302 は一時的なリダイレクトであることを示し、destinationUrl フィールドは買い物客のリダイレクト先を示します。copySourceParams
は true
(Business Manager では「はい」) に設定されているため、utm_source=newsletter
に設定された additionalUrlParams
の値がdestinationUrl
の末尾に追加されます。この例では、UTM (Urchin Tracking Module) パラメータを使用してマーケティング活動を追跡し、トラフィックがニュースレターから発生したことを示します。
- getUrlMapping エンドポイント:
- 商品、カテゴリ (カテゴリの絞り込みを含む)、およびコンテンツアセット (Page Designer アセットまたはコンテンツスロットアセット) の各タイプのリソースの URL を解決できます。
- SEO 目的での URL ルールおよび B2C Commerce URL からのリダイレクトの作成で説明されているタイプのルールとリダイレクトにのみ適用されます。
- 地域情報を getUrlMapping エンドポイントに渡すことができます。ただし、この操作を行わないと、エンドポイントは Business Manager で設定されたサイトのデフォルト地域情報にフォールバックします。
- URL リダイレクト:
- URL リダイレクトと SEO の URL ルールが競合する場合は、URL リダイレクトが優先されます。このシナリオでは、
resourceId
とresourceType
は Business Manager で構成した Commerce Cloud オブジェクト (商品、カテゴリ、またはコンテンツアセット) と宛先タイプを指します。 - ルーティングロジックを実行する前に、コードでリダイレクト関連の出力 (
additionalUrlParams
、copySourceParams
、destinationUrl
、statusCode
) の存在が考慮されていることを確認します。これらのフィールドが存在するということは、リクエストされたパスにリダイレクトが構成されていることを意味します。詳細については、getUrlMapping API の参照資料を参照してください。 - URI リダイレクトがある場合、
resourceId
とresourceType
は null です。 destinationUrl
は Business Manager での構成に基づいており、Commerce Cloud オブジェクト (商品、カテゴリ、またはコンテンツアセット) の URL または指定した URI を示す計算値です。オブジェクトのパスは必ずしもヘッドレスストアフロント URL と一致するとは限りませんが、目的のリダイレクトパスを計算するための参照として使用できます。
- URL リダイレクトと SEO の URL ルールが競合する場合は、URL リダイレクトが優先されます。このシナリオでは、
これらのベストプラクティスは、getUrlMapping をヘッドレスサイトに統合する場合に適用されます。
- シーケンスの最後のステップとして、ワイルドカードマッピングをルートフローに追加します。
- このエンドポイントをルートフローに挿入することで、Web サイトでリクエストを解決するためのデータベース呼び出しをもう 1 つ追加することになります。パフォーマンスを最適化するために、以下の操作を行うことが推奨されます。
- getUrlMapping エンドポイントには、長い有効期限 (TTL) 値を設定します。(デフォルトの TTL は 12 時間)。
- ルーティングエンジンで URL 解決を試みた後のフォールバックとして、このエンドポイントを使用します。最初に、セマンティックであり、かつルーティングエンジンが解釈できるルートの使用を試みます。たとえば、/categories/[categoryFriendlyName]/[categoryId] などです。
getUrlMapping エンドポイントの動作は、以下のフックを使用してカスタマイズできます。
dw.shop.seo.url_mapping.beforeGET
dw.shop.seo.url_mapping.modifyGETResponse
フックによるカスタマイズおよびフックリストの getUrlMapping のフックを参照してください。