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 エンドポイントを使用する前に、以下のことを行ってください。

呼び出しのサンプル 

この例では、cURL コマンドを使用して getUrlMapping エンドポイントを呼び出し、買い物客がクリックまたは入力した www.example.com/blue/new-arrivals/tops という URL を解決します。

1curl "https://$CODE.api.commercecloud.salesforce.com/site/shopper-seo/v1/organizations/$ORG/url-mapping' \
2  --get \
3  --header "Authorization: Bearer $TOKEN" \
4  --data "siteId=$SITE" \
5  --data "locale=en-GB" \
6  --data-urlencode "urlSegment=blue/new-arrivals/tops"

URL のパスの先頭にスラッシュが付いていないものが、urlSegment パラメーターとして渡されます。

レスポンスのサンプル 

レスポンスに示されているように、URL は new-arrivals-tops というカテゴリにマッピングされます。

1{
2    "refinements": {
3        "refinementColor": "Blue"
4    }
5    "resourceId": "new-arrivals-tops",
6    "resourceType": "category"
7}

URL リダイレクト 

また、getUrlMapping エンドポイントを使用して、Business Manager で設定した URL リダイレクトを適用することもできます。これにより、一時的な商品の発売や季節限定のキャンペーンを実施し、買い物客の体験を向上させることができます。

詳細については次のトピックを参照してください。

呼び出しのサンプル 

この例では、cURL コマンドを使用して getUrlMapping エンドポイントを呼び出し、買い物客がクリックまたは入力した www.example.com/cyber-monday という URL をリダイレクトします。たとえば、以前にサイバーマンデーのキャンペーンを実施したとします。そのページは、SEO で上位にランクされており、そのランクを維持したいと考えています。サイバーマンデー用の新しいページが利用可能になるまで、古いサイバーマンデーの URL から、開始する新しいキャンペーンページに買い物客を一時的に転送するリダイレクトを設定します。

1curl "https://$CODE.api.commercecloud.salesforce.com/site/shopper-seo/v1/organizations/$ORG/url-mapping' \
2  --get \
3  --header "Authorization: Bearer $TOKEN" \
4  --data "siteId=$SITE" \
5  --data "locale=en-GB" \
6  --data-urlencode "urlSegment=cyber-monday"

レスポンスのサンプル 

このサンプルレスポンスでは、urlSegment は sales というカテゴリにリダイレクトされます。statusCode 302 は一時的なリダイレクトであることを示し、destinationUrl フィールドは買い物客のリダイレクト先を示します。copySourceParamstrue (Business Manager では「はい」) に設定されているため、utm_source=newsletter に設定された additionalUrlParams の値がdestinationUrl の末尾に追加されます。この例では、UTM (Urchin Tracking Module) パラメータを使用してマーケティング活動を追跡し、トラフィックがニュースレターから発生したことを示します。

1{
2  "additionalUrlParams": "utm_source=newsletter",
3  "copySourceParams": true,
4  "destinationUrl": "/sales?lang=en_GB&utm_source=newsletter",
5  "resourceId": "sales",
6  "resourceType": "category",
7  "statusCode": "302"
8}

注意事項 

  • getUrlMapping エンドポイント:
    • 商品、カテゴリ (カテゴリの絞り込みを含む)、およびコンテンツアセット (Page Designer アセットまたはコンテンツスロットアセット) の各タイプのリソースの URL を解決できます。
    • SEO 目的での URL ルールおよび B2C Commerce URL からのリダイレクトの作成で説明されているタイプのルールとリダイレクトにのみ適用されます。
  • 地域情報を getUrlMapping エンドポイントに渡すことができます。ただし、この操作を行わないと、エンドポイントは Business Manager で設定されたサイトのデフォルト地域情報にフォールバックします。
  • URL リダイレクト:
    • URL リダイレクトと SEO の URL ルールが競合する場合は、URL リダイレクトが優先されます。このシナリオでは、resourceIdresourceType は Business Manager で構成した Commerce Cloud オブジェクト (商品、カテゴリ、またはコンテンツアセット) と宛先タイプを指します。
    • ルーティングロジックを実行する前に、コードでリダイレクト関連の出力 (additionalUrlParamscopySourceParamsdestinationUrlstatusCode) の存在が考慮されていることを確認します。これらのフィールドが存在するということは、リクエストされたパスにリダイレクトが構成されていることを意味します。詳細については、getUrlMapping API の参照資料を参照してください。
    • URI リダイレクトがある場合、resourceIdresourceType は null です。
    • destinationUrlは Business Manager での構成に基づいており、Commerce Cloud オブジェクト (商品、カテゴリ、またはコンテンツアセット) の URL または指定した URI を示す計算値です。オブジェクトのパスは必ずしもヘッドレスストアフロント URL と一致するとは限りませんが、目的のリダイレクトパスを計算するための参照として使用できます。

ベストプラクティス 

これらのベストプラクティスは、getUrlMapping をヘッドレスサイトに統合する場合に適用されます。

  • シーケンスの最後のステップとして、ワイルドカードマッピングをルートフローに追加します。
  • このエンドポイントをルートフローに挿入することで、Web サイトでリクエストを解決するためのデータベース呼び出しをもう 1 つ追加することになります。パフォーマンスを最適化するために、以下の操作を行うことが推奨されます。
    • getUrlMapping エンドポイントには、長い有効期限 (TTL) 値を設定します。(デフォルトの TTL は 12 時間)。
    • ルーティングエンジンで URL 解決を試みた後のフォールバックとして、このエンドポイントを使用します。最初に、セマンティックであり、かつルーティングエンジンが解釈できるルートの使用を試みます。たとえば、/categories/[categoryFriendlyName]/[categoryId] などです。

トラブルシューティング 

生成された URL の URL 競合を解決するには、以下を参照してください。

高度な使用法 

getUrlMapping エンドポイントの動作は、以下のフックを使用してカスタマイズできます。

  • dw.shop.seo.url_mapping.beforeGET
  • dw.shop.seo.url_mapping.modifyGETResponse

フックによるカスタマイズおよびフックリストの getUrlMapping のフックを参照してください。

その他の参照項目: