ランタイム API 呼び出しの概要

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:11分
  • ランタイム API またはバイサイド API を使用して、構成を作成、更新、および保存します。

    CPQ API は、ランタイム API と管理 API の 2 つのカテゴリに分類されます。この記事では、ランタイム API を紹介します。

    ランタイム API は構成の作成、読み取り、更新、削除に使用され、 CPQ エンドユーザーコンフィギュレーターで使用されるものと同じです。これらは一般に「バイサイド」API とも呼ばれます。

    注:
    サンプルコードやその他の詳細については、 API ドキュメントを参照してください。

    すべての API 呼び出しは、ベース URL 形式 https://<yourTenant>.<sector>.logik.io/api/ に従います。この URL では、yourTenant は一意のリストされた CPQ テナント名を表し、セクターは CPQ 環境が配置されているセクターを表します。

    Salesforce ユーザーの場合は、Salesforce アカウントで [セットアップ ] をクリックしてテナント URL を見つけることができます。[クイック検索] ボックスで、[ カスタム設定] を検索またはクリックし、[ 管理] をクリックします。テナント URL が表示されます。

    ランタイム API 呼び出し

    すべてのランタイム API 呼び出しでは、ランタイムクライアントで使用可能な一意のトークンを使用したベアラートークン認証が必要です。また、ランタイムクライアントで構成された作成元 URL が要求ヘッダーに表示されることも必要になります。

    認証するには、Admin → Utilities → Runtime Client からベアラートークンと作成元 URL CPQ 収集します。Postman の API 呼び出しごとに、次のヘッダーを追加します。

    Key: Origin
    Value: <yourOrigin>

    ランタイム API 呼び出し

    Postman または API ツールの [認証] タブで [ ベアラー トークン] を選択し、 CPQ アドミンからコピーした一意のトークンを入力します。

    ランタイム API 呼び出し

    注:
    画像内のトークンは、実際の環境に対応していないダミー値です。これは説明の目的でのみ表示されます。

    基本ランタイム API 呼び出し

    • 最初の構成呼び出しでは、構成可能な製品の ID を渡して構成プロセスを開始し、後で使用するために構成 UUID を返します。

      例 (cURL):

      curl -X POST https://<yourTenant>.<sector>.logik.io/api/ \
      -H "Authorization: Bearer <yourBearerToken>" \
      -H "Origin: <yourOrigin>" \
      -H "Content-Type: application/json" \
      -d '{
          "sessionContext": {
              "stateful": true
          },
          "partnerData": {
              "product": {
                  "configuredProductId": "{{configProductId}}",
              }
          },
          "fields": []
      }'

      例 (応答):

      {
        "configurationId": "{uuid}"

      また、この API 呼び出しを使用して再構成し、以前に保存された構成 UUID を POST 本文に提供します。

      再構成の例 (cURL):

      curl -X POST https://<yourTenant>.<sector>.logik.io/api/ \
      -H "Authorization: Bearer <yourBearerToken>" \
      -H "Origin: <yourOrigin>" \
      -H "Content-Type: application/json" \
      -d '{
          "sessionContext": {
              "stateful": true
          },
          "partnerData": {
              "product": {
                  "configuredProductId": "{{configProductId}}",
                  "configurationAttributes": {
                      "LGK__ConfigurationId__c": "{{uuid}}"
                  }
              }
          },
          "fields": []
      }'
    • 更新構成呼び出しは、構成 UUID と目的のフィールド値を渡して既存の構成を更新し、使用可能なすべてのフィールドとその値を返します。

      例 (cURL):

      curl -X PATCH https://<yourTenant>.<sector>.logik.io/api/{uuid} \
      -H "Authorization: Bearer <yourBearerToken>" \
      -H "Origin: <yourOrigin>" \
      -H "Content-Type: application/json" \
      -d '{ "fields": { "color": "blue", "size": "large" } }'

      例 (応答):

      {
        "fields": {
          "color": "blue",
          "size": "large",
          "price": "$100"
        }
      }
    • BOM の取得コールは構成 UUID を渡し、構成の部品表 (BOM) を取得します。構成の現在の BOM を返します。

      例 (cURL):

      curl -X GET https://<yourTenant>.<sector>.logik.io/api/{uuid}/bom \
      -H "Authorization: Bearer <yourBearerToken>" \
      -H "Origin: <yourOrigin>"

      例 (応答):

      {
        "bom": [
          { "item": "componentA", "quantity": 2 },
          { "item": "componentB", "quantity": 1 }
        ]
      }
    • 保存コールにより、構成が CPQ に保存されます。これにより、構成 UUID を後で使用および再構成できるようになります。

      このプロセスでは、Salesforce のカスタムオブジェクト、構成フィールドデータセット、および構成品目が非同期に入力されます。

      例 (cURL):

      curl --location --request PATCH 'https://mpanigrahi-demo.demo01.logik.io/api/6d0ef6fd-4c88-44f3-a296-b03421c369c6' \
      --header 'Content-Type: application/json' \
      --header 'Accept: application/json' \
      --header 'Origin: https://mpanigrahi-demo.demo01.logik.io' \
      --header 'Authorization: <<RUNTIME TOKEN>>' \
      --header 'Cookie: LGKSESSION=NDA5OWJmNmEtNDhhOS00YTc4LTk3ODktZTg0OGYyOGIwMjZk' \
      --data '{"fields":[{"variableName":"name_d1","value":"megha","dataType":"text"}],"responseState":{"setPagination":{"collections":{"pageSize":10,"pageNumber":0},"fields":{"pageSize":10,"pageNumber":0},"componentTypes":{"pageSize":10,"pageNumber":0}},"defaultPagination":{"pageSize":10,"pageNumber":0},"searchValues":{}}}'

      サンプルコードの詳細については、完全な API リファレンスドキュメントを参照してください。

      https://api-docs.logik.io/#introduction

    JSON サンプル

    info:
    _postman_id: e8370e58-ff12-4662-adac-3e35052b59ba name: Sample Runtime Calls
    schema: https://schema.getpostman.com/json/collection/v2.1.0/collection.json item:
    name: 'Logik: Initial Configure' event:
    listen: test script:
    exec:
    "var jsonData = JSON.parse(responseBody);\r"
    pm.collectionVariables.set("configId", jsonData.uuid); type: text/javascript
    request: auth:
    type: bearer bearer:
    - key: token
    value: '{{logikAccessToken}}' type: string
    method: POST header:
    key: content-type value: application/json type: text
    key: Origin
    value: '{{logikOriginHeader}}' type: text
    body:
    mode: raw
    raw: "	{\r\n	\"sessionContext\": {\r\n	\"stateful\": true\r\n	},\r\n	\"partnerData\": {\r\n	\"product options:
    raw:
    language: json
    url:
    raw: '{{logik}}' host:
    - '{{logik}}' response: []
    name: 'Logik: Update Configuration' request:
    auth:
    type: bearer bearer:
    key: token
    value: '{{logikAccessToken}}' type: string
    method: PATCH header:
    key: content-type value: application/json type: text
    key: Origin
    value: '{{logikOriginHeader}}' type: text
    body:
    mode: raw
    raw: "{\r\n	\"fields\": [\r\n	{\"variableName\":\"juBool1\",\"value\":\"True\"},\r\n	{\"variableName\":\"juBool2\",\"value options:
    raw:
    language: json
    url:
    raw: '{{logik}}{{configId}}' host:
    - '{{logik}}{{configId}}' response: []
    name: '(Optional): Logik: Retrieve BOM' request:
    auth:
    type: bearer bearer:
    key: token
    value: '{{logikAccessToken}}' type: string
    method: GET header:
    key: content-type value: application/json type: text
    key: Origin
    value: '{{logikOriginHeader}}' type: text
    url:
    raw: '{{logik}}{{configId}}/bom' host:
    '{{logik}}{{configId}}' path:
    bom response: []
    name: 'Logik: Save' event:
    listen: test script:
    exec:
    "var jsonData = JSON.parse(responseBody);\r"
    "pm.collectionVariables.set(\"logikTotal\", jsonData.total);\r"
    pm.collectionVariables.set("logikLineItems", jsonData.products); type: text/javascript
    request: auth:
    type: bearer bearer:
    - key: token
    value: '{{logikAccessToken}}' type: string
    method: PATCH header:
    key: content-type value: application/json type: text
    key: Origin
    value: '{{logikOriginHeader}}' type: text
    body:
    mode: raw
    raw: "{\r\n	\"fields\": []\r\n}" options:
    raw:
    language: json
    url:
    raw: '{{logik}}{{configId}}?save=true' host:
    '{{logik}}{{configId}}' query:
    key: save value: 'true'
    response: []
    name: '(Optional): Logik: Reconfigure' event:
    listen: test script:
    exec:
    "var jsonData = JSON.parse(responseBody);\r"
    pm.collectionVariables.set("configId", jsonData.uuid); type: text/javascript
    request: auth:
    type: bearer bearer:
    - key: token
    value: '{{logikAccessToken}}' type: string
    method: POST header:
    key: Origin
    value: '{{logikOriginHeader}}' type: default
    key: Authorization
    value: Bearer Armqrz8jv-1C05mcWmcrDnXZlV9bbOTmGg type: default
    disabled: true body:
    mode: raw
    raw: "{\r\n \"sessionContext\": {\r\n	\"stateful\": true\r\n },\r\n \"partnerData\": {\r\n	\"product\": {\r\n	\"configuredProductId\" options:
    raw:
    language: json
    url:
    raw: '{{logik}}' host:
    - '{{logik}}' response: []

    CPQ API の詳細については、次の 8 つのスライドからなるプレゼンテーションを参照してください。

    Logik.io API