CPQ 再構成 API

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:5分
  • CPQ 再構成 API は、CPQ サービスをヘッドレスで呼び出して見積もりバンドルを再構成します。

    CPQ 再構成 API は、CPQ サービスをヘッドレスで呼び出すカスタム Salesforce API です。RFQ とは異なり、この API は既存の見積もりバンドルを再構成するために使用されます。

    必須条件

    ランタイムクライアントトークンは、Salesforce の [アドミンカスタム設定] ページで設定する必要があります。トークンには、 CPQ URL と一致する作成元を含める必要があります。末尾にスラッシュ (/) 文字を含めることはできません。

    ランタイム設定 URL は、[アドミンカスタム設定] ページでも設定する必要があります。ほとんどの場合、これは同じページ上の管理 URL と一致する必要があります。

    Salesforce セットアップで、[セキュリティ] に移動し、次に [リモートサイト設定] に移動します。CPQドメインを URL として新しいリモートサイトを追加します。

    リモートサイトリスト

    重要:
    この API は、子品目を照合するために uniqueIdentifier に依存しています。製品に一意の uniqueIdentifier 値がない場合、子明細行が正しく更新されないことがあります。

    API の詳細

    エンドポイント: /services/apexrest/LGK/cpq-quote-lines/reconfigure

    注:
    要求エンドポイントとパラメーターでは大文字と小文字が区別されます。

    メソッド: application/json を受信して返します。

    PATCH:このメソッドは現在、 configurationIdconfigurableQuoteLineId の 2 つのフィールドのみをサポートしています。

    応答:見積 (SBQQ__Q__c) レコード。

    注:
    返される見積情報には、要求によって追加される見積明細だけでなく、すべての見積明細の情報が含まれます。たとえば、すでに 2 行ある見積に 3 つの品目を含む構成が追加された場合、返される見積情報には 5 行すべてが含まれます。

    要求の例:

    {
    	"configurationId":"86ec190e-cba8-4b1d-a2dc-ba47714a22b5",
    	"configurableQuoteLineId":"a137d00000977oWAAQ"
    }

    応答例:

    {
    "attributes": {
    "type": "SBQQ__Quote__c",
    "url": "/services/data/v56.0/sobjects/SBQQ__Quote__c/a0zR0000003f3GLIAY"
    },
    "Name": "Q-00090",
    "Id": "a0zR0000003f3GLIAY",
    "SBQQ__LineItemCount__c": 4,
    "SBQQ__LineItems__r": {
    "totalSize": 4,
    "done": true,
    "records": [
    {
    "attributes": {
    "type": "SBQQ__QuoteLine__c",
    "url": "/services/data/v56.0/sobjects/SBQQ__QuoteLine__c/a0vR0000005LPRxIAO"
    },
    "SBQQ__Quote__c": "a0zR0000003f3GLIAY",
    "Id": "a0vR0000005LPRxIAO",
    "Name": "QL-0000122",
    "SBQQ__ProductName__c": "LGK Machine"
    },
    {
    "attributes": {
    "type": "SBQQ__QuoteLine__c",
    "url": "/services/data/v56.0/sobjects/SBQQ__QuoteLine__c/a0vR0000005LPRyIAO"
    },
    "SBQQ__Quote__c": "a0zR0000003f3GLIAY",
    "Id": "a0vR0000005LPRyIAO",
    "Name": "QL-0000123",
    "SBQQ__ProductName__c": "Analytics Software"
    },
    {
    "attributes": {
    "type": "SBQQ__QuoteLine__c",
    "url": "/services/data/v56.0/sobjects/SBQQ__QuoteLine__c/a0vR0000005LPS2IAO"
    },
    "SBQQ__Quote__c": "a0zR0000003f3GLIAY",
    "Id": "a0vR0000005LPS2IAO",
    "Name": "QL-0000124",
    "SBQQ__ProductName__c": "Extended Warranty"
    },
    {
    "attributes": {
    "type": "SBQQ__QuoteLine__c",
    "url": "/services/data/v56.0/sobjects/SBQQ__QuoteLine__c/a0vR0000005LPS3IAO"
    },
    "SBQQ__Quote__c": "a0zR0000003f3GLIAY",
    "Id": "a0vR0000005LPS3IAO",
    "Name": "QL-0000125",
    "SBQQ__ProductName__c": "Scanner"
    }
    ]
    },
    "SBQQ__Type__c": "Quote"
    }

    要求は Apex から直接行うことができます。引数は、REST API で使用されるものと同じフィールドを持つ Map<String,Object> です。例:

    Map<String, Object> requestBody = new Map<String, Object>{
      'configurableQuoteLineId' => '01t8a000005hldvAAA',
      'configurationId' => '79a3ffdd-7dd0-41f6-8700-4bd7506407c7'    
    };
    String result = LGK.CpqReconfigureApiController.reconfigure(requestBody);

    応答は、引用オブジェクトを表す JSON 形式の文字列で、REST API の応答に類似しています。

    カスタムフィールドマッピング

    Salesforce の見積品目オブジェクトのフィールドの名前が一致する場合、CPQ製品の拡張情報または価格設定情報からカスタム値を書き込むことができます。