ランタイム API

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:13分
  • ランタイム API

    CPQ は、フロントエンドアプリケーションを構築し、構成を操作するための一連の API を提供します。これらは一般にバイサイド API またはランタイム API と呼ばれ、顧客またはエンドユーザーが CPQ 構成を作成、更新、保存するために使用します。

    ランタイム API は、 CPQ 構成の標準的な作成、読み取り、更新、削除機能と、 CPQから部品表 (BOM) データを取得する機能をサポートしています。

    注:
    これらの API は従来の API です。最新情報については、 CPQ API リファレンス全体を参照してください。

    Logik.io API リファレンス

    CPQランタイム API にアクセスできるようにし、開発者がクイックスタートできるようにするために、簡単にインポートしてテストを開始するために使用できる API コレクションのオープンソースリポジトリを参照してください。

    API-Documentation/runtime/Logik Configurator ランタイムAPIs.postman_collection.json

    ランタイム API セットアップ

    すべてのランタイム API 呼び出しのベース URL 形式は https://<tenant>.<sector>.logik.io/api/ です。ここで、 <tenant> はリストされたテナント名で、<sector> は環境が配置されている適切なセクター (通常は テスト または 本番環境) です。

    Salesforce では、[セットアップ] に移動し、[クイック検索] ボックスで [カスタム設定] を検索し、[テナント] の横にある [管理] をクリックすると、CPQテナントの URL CPQ見つけることができます。

    ランタイム API 呼び出しは、ベアラートークンとランタイムクライアントで定義された作成元の組み合わせによって認証されます。ランタイムアプリケーションの作成元は、 CPQ アドミン設定でランタイムクライアントが作成されたときに指定されます。

    これらの API 呼び出しを許可するには、各ランタイム API 要求に 2 つのヘッダーを追加する必要があります。

    表 : 1. ランタイム API 要求の必須ヘッダー
    ヘッダー キー
    作成元ヘッダー origin <runtimeClientOrigin>
    認証ヘッダー authorization ベアラー <runtimeToken>

    サンプルヘッダー:

    • 作成元:localhost
    • authorization:Bearer vEqzz4BVkb15Le11En8axEuN71FA6Vt_cw

    構成の作成

    API を介して新しい構成を開始するために、構成の作成呼び出しで構成可能な製品の ID が渡されます。応答として、後の呼び出しでこの構成を指定するために使用できる CPQ 構成 ID を受け取ります。

    表 : 2. POST
    HTTP メソッド POST
    URL https://<tenant>.<sector>.logik.io/api/
    パスパラメーター 適用外
    クエリパラメーター 適用外

    ペイロードの 2 つの重要な部分は次のとおりです。

    • 展開されている詳細計画を含む、 CPQ 対応製品の ID
    • 再構成される CPQ 構成 UUID

    サンプル URL:

    https://dev1.test.Logik/api/

    サンプルペイロード:

    {
      "sessionContext": 
      { 
        "stateful": true
      },
      "partnerData": 
      { 
        "product":
        {
          "configuredProductId": "<Id of a Logik.io Enabled Product>", 
        }
      },
      "fields": []
    }
    注:
    この構成は、フィールド値を次の形式でフィールドアレイに渡すことによって初期化することもできます。
    {
      “variableName”: “<Field Name>”, “value”: “<Field Value>”
    }

    応答例:

    {
      "fields": [<ARRAY OF FIELD OBJECTS>],
      "uuid": "08176434-9b1e-4fc8-b2c4-8aba2c35fda3", 
      "revision": 0,
      "relatedChanges": 
      [
        {
          "key": "products",
          "type": "PRODUCT"
        }
      ],
      "valid": true, 
      "messages": [], 
      "productChange": true,
      "products": [<ARRAY OF PRODUCTS IN CONFIGURATION>],
      "total": 30,
      "layouts": [<ARRAY OF LAYOUTS>]
    }

    構成の再構成

    再構成 API 呼び出しは、構成の作成呼び出しと似ています。再構成呼び出しは、構成可能な製品の ID と既存の CPQ 構成 ID を渡します。その代わりに、以前の構成と同じフィールドデータを含む新しい構成 ID を受け取りますが、変更を加えることができます。

    注:
    応答ペイロードの UUID フィールドには、新しい CPQ 構成 ID が含まれています。新しい構成 ID は、BOM の更新、保存、取得など、再構成プロセスの以降のすべての操作に使用する必要があります。
    表 : 3. POST
    HTTP メソッド POST
    URL https://<tenant>.<sector>.logik.io/api/
    パスパラメーター 適用外
    クエリパラメーター 適用外

    ペイロードの 2 つの重要な部分は次のとおりです。

    • 展開されている詳細計画を含む、 CPQ 対応製品の ID
    • 再構成される CPQ 構成 UUID

    サンプル URL:

    https://dev1.test.Logik/api/

    サンプルペイロード:

    {
      "sessionContext": 
      { 
        "stateful": true
      },
      "partnerData": 
      { 
        "product": 
        {
          "configuredProductId": "<Id of a Logik.io Enabled Product>", 
          "configurationAttributes": 
          {
            "LGK__ConfigurationId__c": "<uuid>"
          }
        }
      },
      "fields": []
    }

    応答例:

    {
      "fields": [<ARRAY OF FIELD OBJECTS>],
      "uuid": "d98d60cd-9379-4b7b-86fd-de828c340f80", 
      "revision": 0,
      "relatedChanges": 
      [
        {
          "key": "products",
          "type": "PRODUCT"
        }
      ],
      "valid": true, 
      "messages": [], 
      "productChange": true,
      "products": [<ARRAY OF PRODUCTS IN CONFIGURATION>],
      "total": 30,
      "layouts": [<ARRAY OF LAYOUTS>]
    }

    構成の更新

    構成を更新するには、構成の作成または再構成 API 呼び出しを使用して構成をロードする必要があります。構成の更新呼び出しは、 CPQ 構成 ID と目的のフィールド値を渡し、応答として更新された構成を CPQ から受信します。

    表 : 4. パッチ
    HTTP メソッド パッチ
    URL https://<tenant>.<sector>.logik.io/api/
    パスパラメーター 適用外
    クエリパラメーター 名前 許容値 必須? 指定しない場合のデフォルト
    デルタ true | false オプション true
    保存 true | false オプション false

    クエリパラメーター:

    delta

    delta=true の場合、 CPQ 送信された更新に基づいて変更されたデータのみを送り返します。これはデフォルトの動作です。

    delta=false の場合、 CPQ は構成全体と BOM データを応答として送り返します。

    save

    save=true の場合、 CPQ はこの設定を保存し、(設定に応じて) Webhook へのデータの送信や Salesforce のカスタムオブジェクトへのデータの書き込みなどの追加アクションを実行します。これは、保存構成呼び出しの動作です。

    save=false の場合、 CPQ はこの構成を更新し、更新されたデータを応答に送り返します。これはデフォルトの動作であり、更新呼び出しの動作です。

    サンプル URL:

    https://dev1.test.logik.io/api/fbc3d32c-7f86-4461-b144-986a0e8a5768

    サンプルペイロード:

    {
      "fields": 
      [
        {
          "variableName": "orderQty", 
          "value": 3
        }
      ]
    }

    応答例:

    {
      "fields": [],
      "uuid": "fbc3d32c-7f86-4461-b144-986a0e8a5768", 
      "revision": 0,
      "relatedChanges": 
      [
        {
          "key": "products",
          "type": "PRODUCT"
        }
      ],
      "valid": true, 
      "messages": [], 
      "productChange": true, 
      "products": null
    }

    構成を保存

    構成の保存は、更新構成のサブセットです。構成の作成または再構成 API 呼び出しを使用して構成をロードする必要があります。構成の保存呼び出しは、 CPQ 構成 ID と目的のフィールド値を渡し、応答として CPQから更新された構成を受け取ります。

    注:
    通常の更新呼び出しと保存呼び出しの唯一の違いは、URL にクエリパラメーター save=true が追加されていることです。false に設定するか除外すると、これは通常の更新呼び出しです。

    Salesforce をバックエンドとして使用している場合、save API が呼び出されると、 CPQ はカスタムオブジェクト CPQ 、構成フィールドデータセット、および構成品目を非同期に作成し、適切なデータを入力します。

    CPQインスタンスに Webhook が構成されている場合、save API が呼び出されると、Webhook 設定で指定されたエンドポイントにデータが送信されます。「Webhook」を参照してください。

    注:
    これにより、構成セッションが終了します。構成のさらなる編集または更新は、構成の作成または再構成 API 呼び出しから開始する必要があります。
    表 : 5. パッチ
    HTTP メソッド パッチ
    URL https://<tenant>.<sector>.logik.io/api/
    パスパラメーター 適用外
    クエリパラメーター 名前 許容値 必須? 指定しない場合のデフォルト
    デルタ true | false オプション true
    保存 true | false オプション false

    クエリパラメーター:

    delta

    delta=true の場合、 CPQ 送信された更新に基づいて変更されたデータのみを送り返します。これはデフォルトの動作です。

    delta=false の場合、 CPQ は構成全体と BOM データを応答として送り返します。

    save

    save=true の場合、 CPQ はこの設定を保存し、(設定に応じて) Webhook へのデータの送信や Salesforce のカスタムオブジェクトへのデータの書き込みなどの追加アクションを実行します。

    save=false の場合、 CPQ はこの構成を更新し、更新されたデータを応答に送り返します。これは更新呼び出しの動作です。

    サンプル 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":{}}}'

    応答例:

    {
    "fields": [<ARRAY OF FIELD OBJECTS>],
    "uuid": "8817655d-7a11-41ef-a9fd-59c2855a3e4b", 
    "revision": 1,
    "valid": true, 
    "messages": [], 
    "productChange": false,
    "products": [<ARRAY OF PRODUCTS IN CONFIGURATION>],
    "total": 0
    }

    BOM API

    BOM API は、構成の最終出力を取得するのに役立ちます。BOM API を使用して、BOM 全体、または特定のサブセット (販売 BOM や製造 BOM など) を取得できます。

    Get BOM 呼び出しは CPQ 構成 ID を渡し、代わりに構成の現在のステータスによって生成された現在の BOM を受け取ります。ビルトインBOMタイプには、「すべて」、「販売」、「製造」の3種類があります。製品の bomType フィールドを設定することで、BOM タイプを動的に追加できます。

    注:
    BOM タイプが含まれていない場合、API は BOM 全体を返します。
    表 : 6. GET
    HTTP メソッド GET
    URL https://<tenant>.<sector>.logik.io/api/<uuid>/bom/<bomType>
    パスパラメーター 名前 許容値 必須?
    <uuid> 32 文字の CPQ 構成 UUID required
    <bomType> 取得する BOM の名前 オプション
    クエリパラメーター 適用外

    応答例:

    {"products": [
            {
                "id": "01t5f000006QKysAAG",
                "quantity": 1,
                "bomType": "Sales",
                "orderNumber": 10,
                "type": "accessory",
                "name": "Amend Flow Bundle Sub",
                "partnerId": "01t5f000006QKysAAG",
                "productCode": "AFBC-SC",
                "externalId": "",
                "productFamily": "Miscellaneous",
                "description": "",
                "uom": "",
                "price": 5,
                "extPrice": 5,
                "level": 0,
                "rollUpPrice": 5
            },
            {
                "id": "01t5f000006QKz2AAG",
                "quantity": 1,
                "bomType": "Sales",
                "orderNumber": 20,
                "type": "accessory",
                "name": "Amend Flow Bundle Asset",
                "partnerId": "01t5f000006QKz2AAG",
                "productCode": "AFBC2-SC",
                "externalId": "",
                "productFamily": "Miscellaneous",
                "description": "",
                "uom": "",
                "price": 25,
                "extPrice": 25,
                "level": 0,
                "rollUpPrice": 25
            }
        ]}

    追加の構成 API とサンプルシナリオの詳細については、「 追加の構成 API」を参照してください。