Introduction aux appels d’API d’exécution

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 4 minutes de lecture
  • Les API d’exécution ou buyside sont utilisées pour créer, mettre à jour et enregistrer des configurations.

    CPQ Les API sont divisées en deux catégories : les API d’exécution et les API d’administration. Dans cet article, nous présentons les API d’exécution.

    Les API d’exécution sont utilisées pour créer, lire, mettre à jour et supprimer des configurations et sont les mêmes que celles utilisées dans le configurateur de l’utilisateur CPQ final. Elles sont également communément appelées API « buyside ».

    Remarque :
    Pour obtenir les informations les plus récentes sur les exemples de codes et d’autres détails, consultez la documentation sur l’API.

    Tous les appels d’API suivent ce format d’URL de base : https://<votrelocataire>.<secteur>.logik.io/api/. Dans cette URL, yourTenant représente votre nom de locataire répertorié CPQ unique, et le secteur est le secteur dans lequel se trouve votre CPQ environnement.

    Si vous êtes un utilisateur de Salesforce, vous pouvez trouver votre URL de locataire en cliquant sur Configurer dans votre compte Salesforce. Dans la zone Recherche rapide, recherchez ou cliquez sur Paramètres personnalisés, puis cliquez sur Gérer. L’URL de votre locataire s’affichera.

    Appels API d’exécution

    Tous les appels d’API d’exécution nécessitent une authentification par jeton de porteur à l’aide d’un jeton unique disponible dans le client d’exécution. Ils nécessitent également que l’URL d’origine configurée dans le client d’exécution apparaisse dans l’en-tête de la demande.

    Pour vous authentifier, collectez le jeton de porteur et l’URL d’origine à partir d’Admin CPQ → Utilities → du client d’exécution. Pour chaque appel d’API dans un Postman, ajoutez l’en-tête suivant :

    Key: Origin
    Value: <yourOrigin>

    Appels API d’exécution

    Dans l’onglet Autorisation de Postman ou de votre outil API, sélectionnez Jeton de porteur, puis saisissez le jeton unique que vous avez copié à partir de l’administrateur CPQ .

    Appels API d’exécution

    Remarque :
    Le jeton dans l’image est une valeur factice qui ne correspond à aucun environnement réel. Il apparaît uniquement à des fins d’illustration.

    Appels API d’exécution de base

    • L’appel de configuration initial démarre le processus de configuration en transmettant l’ID du produit configurable et renvoie un UUID de configuration pour une utilisation ultérieure.

      Exemple (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": []
      }'

      Exemple (réponse) :

      {
        "configurationId": "{uuid}"

      Vous utilisez également cet appel d’API pour la reconfiguration, en fournissant un UUID de configuration précédemment enregistré dans le corps POST.

      Exemple de reconfiguration (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": []
      }'
    • L’appel de configuration de mise à jour met à jour une configuration existante en transmettant l’UUID de configuration et les valeurs de champ souhaitées, et renvoie tous les champs possibles et leurs valeurs.

      Exemple (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" } }'

      Exemple (réponse) :

      {
        "fields": {
          "color": "blue",
          "size": "large",
          "price": "$100"
        }
      }
    • L’appel get BOM transmet l’UUID de configuration et récupère la nomenclature (BOM) pour la configuration. Renvoie la nomenclature actuelle de la configuration.

      Exemple (cURL) :

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

      Exemple (réponse) :

      {
        "bom": [
          { "item": "componentA", "quantity": 2 },
          { "item": "componentB", "quantity": 1 }
        ]
      }
    • L’appel d’enregistrement enregistre la configuration dans CPQ. Cela garantit que l’UUID de configuration pourra être utilisé et reconfiguré à l’avenir.

      Ce processus remplit de manière asynchrone nos objets personnalisés, nos ensembles de données de champ de configuration et nos éléments de ligne de configuration dans Salesforce.

      Exemple (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":{}}}'

      Pour en savoir plus sur l’exemple de code, consultez la documentation de référence complète de l’API :

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

    Exemple 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: []

    Pour plus d’informations sur CPQ les API, consultez la présentation suivante en huit diapositives :

    Logik.io les API.