ランタイム API
ランタイム API
CPQ は、フロントエンドアプリケーションを構築し、構成を操作するための一連の API を提供します。これらは一般にバイサイド API またはランタイム API と呼ばれ、顧客またはエンドユーザーが CPQ 構成を作成、更新、保存するために使用します。
ランタイム API は、 CPQ 構成の標準的な作成、読み取り、更新、削除機能と、 CPQから部品表 (BOM) データを取得する機能をサポートしています。
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 つのヘッダーを追加する必要があります。
| ヘッダー | キー | 値 |
|---|---|---|
| 作成元ヘッダー | origin | <runtimeClientOrigin> |
| 認証ヘッダー | authorization | ベアラー <runtimeToken> |
サンプルヘッダー:
- 作成元:localhost
- authorization:Bearer vEqzz4BVkb15Le11En8axEuN71FA6Vt_cw
構成の作成
API を介して新しい構成を開始するために、構成の作成呼び出しで構成可能な製品の ID が渡されます。応答として、後の呼び出しでこの構成を指定するために使用できる CPQ 構成 ID を受け取ります。
| 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 を受け取りますが、変更を加えることができます。
| 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 から受信します。
| 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から更新された構成を受け取ります。
Salesforce をバックエンドとして使用している場合、save API が呼び出されると、 CPQ はカスタムオブジェクト CPQ 、構成フィールドデータセット、および構成品目を非同期に作成し、適切なデータを入力します。
CPQインスタンスに Webhook が構成されている場合、save API が呼び出されると、Webhook 設定で指定されたエンドポイントにデータが送信されます。「Webhook」を参照してください。
| 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 タイプを動的に追加できます。
| 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」を参照してください。