OCAPI 設定 23.1

OCAPI 設定を使用して、OCAPI クライアント許可や OCAPI キャッシングの制御といったさまざまな機能を管理します。

OCAPI 設定は Business Manager で構成します。OCAPI 設定を指定するには、このトピックで後述する形式に従った JSON ドキュメントを編集します。

Business Manager での OCAPI 設定の構成 

OCAPI 設定を構成するには、次の手順を実行します:

  1. Business Manager で、管理 > サイトの開発 > Open Commerce API 設定の順に移動します。
  2. タイプの選択フィールドで、構成の API タイプを選択します。
  3. 範囲の選択フィールドで、構成の範囲を選択します。組織内のすべてのサイトに構成を適用するにはグローバルを、該当するサイトのみに適用するにはそのサイト名を使用します。
  4. テキストフィールドで、JSON ドキュメントを編集します。
  5. Save (保存) をクリックします。

特定のサイトでグローバル設定を上書きできます。設定は有効になるまで最大 3 分間キャッシュされます。

Note

サイト固有対グローバルの設定: 

クライアントの設定と許可は、1 つのサイト (サイト固有) またはすべてのサイト (グローバル) に対して定義できます。サイトごとにクライアント ID のグローバル設定を上書きできます。

ほとんどの Data API リソースは組織固有のため、グローバルクライアント許可のみをサポートします。

Note

クライアントの許可: 

OCAPI を使用するには、まず最初に、クライアントの許可を構成する必要があります。この許可によって、特定のリソースの読み取りや書き込みアクセスを制御します。デフォルトでは、いずれの許可も付与されません。OCAPI は、適切な許可をもたないクライアントアプリケーションリクエストを拒否し、401 HTTP ステータス (Unauthorized) を返します。

JSON ドキュメント形式 

次の例は、JSON ドキュメントの形式を示します。

“_v” プロパティは、構成ファイルの構造のバージョンを示します。これは OCAPI バージョンと無関係であるため、すべての OCAPI バージョンのリソースの構成が許可されます。

Note

1{
2  "_v": "23.1",
3  "clients": [
4    {
5      "allowed_origins": ["http://www.sitegenesis.com", "https://secure.sitegenesis.com"],
6      "client_id": "[your_own_client_id]",
7      "response_headers": {
8        "x-foo": "bar",
9        "P3P": "CP=\"NOI ADM DEV PSAi COM NAV OUR OTR STP IND DEM\""
10      },
11      "resources": [
12        {
13          "resource_id": "/product_search",
14          "methods": ["get"],
15          "read_attributes": "(**)",
16          "write_attributes": "(**)",
17          "cache_time": 900,
18          "version_range": { "from": "23.1" }
19        },
20        {
21          "resource_id": "/products/*/bundled_products",
22          "methods": ["get"],
23          "read_attributes": "(c_name,c_street)",
24          "write_attributes": "(**)"
25        },
26        {
27          "resource_id": "/baskets/*/items",
28          "methods": ["post"],
29          "read_attributes": "(**)",
30          "write_attributes": "(product_id, quantity)"
31        }
32      ]
33    }
34  ]
35}

Configuration ドキュメント 

このドキュメントを使用して、1 つのサイト内の複数のクライアントアプリケーションに対する Open Commerce API 許可を構成します。

プロパティタイプ制約説明
_vString該当なしOpen Commerce API HTTP メソッドフィルター。JSON プロパティが追加された場合や、プロパティの動作が変更された場合は、新しいバージョンが作成されます。可能な限り、最新の構成ファイルの構造バージョンを使用してください。
clients[Client]該当なしクライアント固有の許可のドキュメントの配列。

Client ドキュメント 

このドキュメントを使用して、クライアントアプリケーションの Open Commerce API 許可を表示します。

プロパティタイプ制約説明
allowed_origins[String]該当なしCORS リクエストで使用された許可されているオリジンの配列。
client_idStringmandatory=true, nullable=falseクライアントアプリケーション ID。
response_headersMap<String,String>該当なしカスタムレスポンスヘッダーの名前と値のペアのマップ。サポートされているヘッダーは ‘P3P’ で、カスタムヘッダーは ‘X-’ で始まります。‘X-DW’ で始まるカスタム Commerce Cloud Digital ヘッダーは許可されていません。
resources[Resource]該当なしリソース固有の許可のドキュメントの配列。

Resource ドキュメント 

このドキュメントを使用して、リソース固有の許可と設定を構成します。

プロパティタイプ制約説明
cache_timeInteger該当なしレスポンドドキュメントが古くなるまでの期間 (秒単位)。最小キャッシュ時間は 0 秒、最大は 86,400 秒 (24 時間) です。値が指定されていない場合、デフォルトは 60 秒です。詳細については、キャッシングを参照してください。
configMap<String,String>該当なし特殊なレスポンスドキュメントのプロパティに対して返す値を決定するマップ。予約されたキー/値のペアを構成することによってこのマップを制御します。詳細については、カスタマイズを参照してください。
methods[String]mandatory=true, nullable=falseOpen Commerce API HTTP メソッドフィルター。たとえば、フィルター ["get","patch"] は、指定されたリソースパスの GETPATCH メソッドへのアクセスを許可します。リソースでサポートされているメソッドを指定できます。次のメタデータ呼び出しを使用して、Shop API、バージョン 23.1 で使用可能なすべてのリソースとメソッドをリストできます: http://{your-domain}/dw/meta/rest/shop/v23_1?client_id={your-client-id}
personalized_caching_enabledBoolean該当なしキャッシュ可能な Shop API リソースのパーソナル化されたキャッシング動作を決定するフラグ。デフォルトでは、顧客コンテキスト (JWT) が指定された場合に、システムはパーソナライズされたリソースをキャッシュします。このプロパティを使用して、パーソナライズされたキャッシュ (たとえばパフォーマンスの向上など) を明示的に無効にすることができます。レスポンスがどの顧客の場合でも必ず同じである場合、そしてその他のパーソナライズロジック (たとえばフックでなど) が適用されない場合にのみ、パーソナライズされたキャッシュを無効にします。
read_attributesString該当なしレスポンスドキュメントに含めるプロパティを制御する文字列。構成値はプロパティ選択の構文を使用して指定する必要があります。
resource_idStringmandatory=true, nullable=falseOCAPI リソース識別子。たとえば、/products/*/images/products/specific_id/images などです。このプロパティでは、リソース ID を記述するための Ant パススタイルがサポートされています。ワイルドカードまたは特定の商品 ID を指定できます。また、パターン /products/** を指定して、使用可能なすべてのサブリソースにアクセスすることもできます。次のメタデータ呼び出しを使用して、Shop API、バージョン 23.1 のすべてのリソース ID をリストできます: http://{your-domain}/dw/meta/rest/shop/v23_1?client_id={your-client-id}
version_range[VersionRange]該当なしOCAPI バージョンのサブセットにのみ許可を付与する VersionRange ドキュメントの配列。
write_attributesString該当なしS リクエストドキュメントに含めるプロパティを制御する文字列。構成値はプロパティ選択の構文を使用して指定する必要があります。

VersionRange ドキュメント 

このドキュメントを使用して、Open Commerce API バージョンのサブセットにのみリソース許可を付与します。範囲を定義するには、プロパティ from および until を使用します。少なくともどちらかのプロパティを指定する必要があります。

プロパティタイプ制約説明
fromString該当なし開始バージョン (たとえば、23.1)。from バージョンを指定しない場合は、until バージョンより前のすべてのバージョンにアクセスできます。
untilString該当なし終了バージョン (たとえば、23.1)。until バージョンは 範囲 に含められません。(たとえば、until バージョンが 19.3 の場合、含まれる最新のバージョンは 19.1 です。) until バージョンを指定しない場合は、最新バージョンを含むすべてのバージョンにアクセスできます。

展開 

展開手法をサポートするリソースは、他のリソースと同様に処理されます。このため、商品画像情報へのアクセスを制限したい場合、各リソースに個別のクライアント許可を構成します (商品の基本リソースを /products/*、および画像のサブリソースを /products/*/images など)。

カスタマイズ 

Open Commerce API では、データを返す方法をカスタマイズできます。次のリソースのプロパティを設定できます:

  • /product_search/images (Shop API)
  • /products/*/availability (Shop API)
  • /products/*/prices (Shop API)
  • /search_suggestion (Shop API)

/product_search/images (Shop API)

特定の画像プロパティに画像表示タイプを構成して、どのように画像情報が返されるかをカスタマイズできます。このリソースには、次の 3 つのキー/値のペアが予約されています:

  • search_result.hits.image:view_type":"detail"
  • "search_result.variation_attributes.values.image:view_type":"thumbnail"
  • "search_result.variation_attributes.values.image_swatch:view_type":"swatch"

これらのプロパティは、実際の画像表示タイプを定義します。表示タイプに基づいて、Shop API が希望する画像情報を返します。view_type が設定されていない、または view_type が不明の場合、画像プロパティはレスポンスの一部にはなりません。例:

1...
2{
3    "resource_id":"/product_search/images",
4    "methods":["get"],
5    "read_attributes":"(**)",
6    "write_attributes":"(**)",
7    "config":{
8        "search_result.hits.image:view_type":"detail",    // use view type "detail" for property "image" in document "ProductSearchHit"
9        "search_result.variation_attributes.values.image:view_type":"detail",
10        "search_result.variation_attributes.values.image_swatch:view_type":"swatch"
11    }
12},
13...

/products/*/availability (Shop API)

(Shop API によって返される) 最大しきい値を構成して、実際の ATS (販売可能数量) と在庫レベルを非表示にできます。このリソースには、次の 2 つのキー/値のペアが予約されています:

  • product.inventory.ats.max_threshold":"100"
  • "product.inventory.stock_level.max_threshold":"50"

ATS (販売可能数量) と在庫レベルはマーチャントにとって機密情報です。これらのプロパティが設定されていない場合は、API レスポンスプロパティはデフォルト値 999999 になります。

/products/*/prices (Shop API)

product.prices プロパティで、表示する価格表の価格を構成できます。このリソースには、次の 1 つのキー/値のペアが予約されています:

  • product.prices.price_book_ids":"usd-list-prices,usd-sale-prices"

価格表が定義されていない場合は、プロパティはレスポンスの一部にはなりません。

/search_suggestion (Shop API)

特定の画像プロパティに画像表示タイプを構成して、どのように画像情報が返されるかをカスタマイズできます。このリソースには、次の 3 つのキー/値のペアが予約されています:

  • suggestion.product.image:view_type":"small"

これらのプロパティは、実際の画像表示タイプを定義します。表示タイプに基づいて、Shop API が希望する画像情報を返します。view_type が設定されていない、または view_type が不明の場合、画像プロパティはレスポンスの一部にはなりません。例:

1...
2{
3    "resource_id":"/search_suggestion",
4    "methods":["get"],
5    "read_attributes":"(**)",
6    "write_attributes":"(**)",
7    "cache_time":900,
8    "config":{
9        "suggestion.product.image:view_type":"small"
10    }
11},
12...