API de reconfiguration CPQ

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 2 minutes de lecture
  • L’API CPQ Reconfigure appelle les services CPQ sans en-tête pour reconfigurer un ensemble de devis.

    L’API CPQ Reconfigure est une API Salesforce personnalisée qui appelle les services CPQ sans tête. Contrairement à la RFQ, cette API est utilisée pour reconfigurer un ensemble de devis existant.

    Prérequis

    Le jeton client d’exécution doit être défini dans la page Paramètres personnalisés de l’administrateur dans Salesforce. Le jeton doit inclure une origine qui correspond à l’URL CPQ , et non pas une barre oblique de fin (/).

    L’URL de configuration d’exécution doit également être définie dans la page Paramètres personnalisés de l’administrateur. Dans la plupart des cas, cela doit correspondre à l’URL d’administration sur la même page.

    Dans le programme d’installation de Salesforce, accédez à Sécurité, puis à Paramètres du site distant. Ajoutez un nouveau site distant avec votre CPQ domaine comme URL.

    Liste des sites distants

    Important :
    Cette API s’appuie sur uniqueIdentifier pour faire correspondre les lignes enfants. Si vous n’avez pas de valeurs uniques uniqueIdentifier pour les produits, les lignes enfants peuvent ne pas être mises à jour correctement.

    Détails de l'API

    Point de terminaison : /services/apexrest/LGK/cpq-quote-lines/reconfigure

    Remarque :
    Les points de terminaison et les paramètres de la demande sont sensibles à la casse.

    Méthodes : reçoit et renvoie application/json.

    PATCH : La méthode ne prend actuellement en charge que deux champs, configurationId et configurableQuoteLineId.

    Réponse : un enregistrement de citation (SBQQ__Q__c).

    Remarque :
    Les informations de devis renvoyées incluent des informations sur toutes les lignes de devis, pas seulement celles ajoutées par la demande. Par exemple, si la configuration avec trois éléments de ligne est ajoutée à un devis qui contenait déjà deux lignes, les informations de devis renvoyées incluront les cinq lignes.

    Exemple de demande :

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

    Exemple de réponse :

    {
    "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"
    }

    Les demandes peuvent être faites directement via Apex. L’argument est un Map<String,Object> avec les mêmes champs utilisés dans l’API REST. Par exemple :

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

    La réponse est une chaîne au format JSON représentant l’objet de citation, similaire à la réponse dans les API REST.

    Mappage de champs personnalisés

    Si un champ de l’objet Ligne de devis dans Salesforce a un nom qui correspond, des valeurs personnalisées peuvent être écrites à partir des informations étendues ou de tarification d’un CPQ produit.