CPQ intégration à Salesforce B2B Commerce

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 6 minutes de lecture
  • Découvrez comment configurer CPQ pour utiliser Salesforce B2B Commerce.

    Prérequis

    Ce guide suppose ce qui suit :

    • Commerce est activé dans Salesforce
    • Le CPQ package géré de base est installé
    • L’administrateur système ou un accès similaire est disponible pour exécuter les étapes répertoriées

    Installer des fichiers dans Salesforce

    1. Si elle n’est pas déjà installée, téléchargez et installez l’interface de ligne de commande (CLI) Salesforce en suivant les instructions ici :

      Installer l’interface de ligne de commande Salesforce

    2. Téléchargez et extrayez le fichier logik-b2b.zip, qui contient les composants utilisés pour l’intégration B2B, à partir de github.com.
      • Sur Mac, double-cliquez sur le fichier. Son contenu sera extrait automatiquement au même endroit.
      • Sous Windows, cliquez avec le bouton droit de la souris et sélectionnez Extraire tout". Suivez les invites qui s’affichent à l’écran.

      a. Reportez-vous aux documents suivants :

    3. Démarrez le terminal (Mac ou Linux) ou PowerShell (Windows).
    4. Accédez au répertoire contenant les fichiers extraits. Par exemple, si les fichiers ont été extraits dans le dossier Téléchargements, tapez et entrez le cd de commande Téléchargements/logik-b2b.
    5. Exécutez la commande ls pour afficher une liste de fichiers et de dossiers dans ce répertoire.

      Vous devriez voir src et sfdx-project.json, ainsi qu’une copie en texte brut de ce guide.

      Détails du fichier JSON

    6. Exécutez la commande suivante, en apportant les modifications indiquées juste en dessous :
      sfdx auth:web:login --setalias myOrg -r https://example-dev-ed.my .salesforce.com
      • Remplacez l’URL qui suit -r par celle sur laquelle l’intégration Logik-B2B sera configurée.
      • Le texte qui suit --setalias est un surnom utilisé pour identifier et référencer l’organisation Salesforce correcte. L’exemple myOrg sera utilisé pour les besoins de ce guide. Assurez-vous d’utiliser votre propre alias dans les étapes suivantes.

      L’URL spécifiée dans la commande de connexion précédente est ouverte dans le navigateur par défaut.

    7. Connectez-vous et autorisez l’application connectée « Salesforce CLI ».
    8. Dans la ligne de commande, exécutez la commande sfdx force :source :deploy -p src -u myOrg.

      Après quelques instants, la ligne de commande renvoie un message de confirmation : « Déploiement réussi ».

      Détails du fichier JSON

      Si l’organisation Salesforce n’est pas déjà ouverte dans un navigateur, elle peut être ouverte en exécutant la commande sfdx force :org :open -u myOrg.

    Configuration post-installation dans Salesforce

    Vous devez effectuer les étapes suivantes après avoir installé les composants dans Salesforce.

    Définition de la sécurité au niveau du champ :

    1. Depuis l’accueil de la configuration, accédez à l’onglet Gestionnaire d’objets ou accédez à Objets et champs > Gestionnaire d’objets.
    2. Dans le Gestionnaire d’objets, recherchez et ouvrez l’élément du panier (CartItem).

      Écran du gestionnaire d’objets

    3. Accédez à Champs et relations. Recherchez et ouvrez le champ ID de configuration (ConfigurationId__c).
    4. Cliquez sur Définir la sécurité au niveau du champ.

      Écran du gestionnaire d’objets

    5. Assurez-vous que l’option Visible est sélectionnée et que Lecture seule n’est pas sélectionnée pour les profils qui configureront les produits dans Commerce, puis cliquez sur Enregistrer.

      Écran de configuration

    Un ensemble similaire d’étapes doit être suivi pour un champ Product2.

    1. Dans le Gestionnaire d’objets, recherchez et ouvrez Produit (Product2).
    2. Accédez à Champs et relations. Ouvrez le champ CPQ Activé (LGK__IsConfigurable__c).
    3. Cliquez sur « Définir la sécurité au niveau du champ ». Assurez-vous que l’option Visible est sélectionnée pour tous les profils d’acheteurs. La lecture seule peut être activée ou désactivée.
    4. Enregistrer.

    Des autorisations de sécurité au niveau du champ supplémentaires sont nécessaires si vous utilisez l’API Ajouter au panier. Tout d’abord, dans Objet géré, recherchez et ouvrez l’élément de ligne de configuration (LGK ConfigurationLineItem c). Ensuite, assurez-vous que les profils d’acheteur disposent de la sécurité au niveau du champ Visible pour les champs suivants :

    • Quantité
    • ProductId
    • Prix
    • ID de configuration
    • Type

    De plus, les champs CartItem suivants devront être définis sur Visible (la lecture seule ne doit pas être cochée) :

    • ConfigurationId (cela doit déjà être fait pour l’intégration de l’interface utilisateur)
    • Quantité
    • ProductId
    • Prix
    • Type

    Obtention et application du jeton d’exécution

    1. Dans Logik, créez un client d’exécution, avec une origine correspondant à l’URL de base de Logik. Cliquez sur Copier pour obtenir le jeton client.

      Modifier le client d’exécution

    2. Dans Salesforce, à partir de l’accueil de la configuration, accédez à Code personnalisé > Paramètres personnalisés.
    3. Pour Logik Tenant, cliquez sur Gérer.

      Écran des paramètres personnalisés

    4. Si les paramètres existent déjà, cliquez sur « Modifier ». Sinon, cliquez sur « Nouveau » au-dessus de l’en-tête « Valeur de niveau de l’organisation par défaut ».

      Détails du locataire

    5. Pour le champ Jeton client d’exécution, collez le jeton copié pour le client d’exécution. Assurez-vous que le ou les champs d’URL sont définis sur la même URL que l’une des origines du client d’exécution dans CPQ Admin.

      Écran Modifier le locataire

    6. Enregistrer.

    Définition de l’accès aux pages Visualforce

    1. Dans la page d’accueil de la configuration, accédez à Paramètres des fonctionnalités > Expériences numériques > Tous les sites.
    2. Pour votre boutique, cliquez sur Espaces de travail.

      Écran de la page d’accueil

    3. Accédez aux pages > d’administration > accédez à la plateforme Salesforce pour le développement d’applications.

      Pages d’administration

    4. Sous « Site Visualforce Pages », cliquez sur Modifier.
    5. Déplacez commerceConfigurationWindow de Disponible à Activé et enregistrez.

      Page Visualforce

    Configuration d’Experience Builder

    1. À partir de la page d’accueil Commerce, ouvrez Experience Builder.
    2. Cliquez sur Accueil en haut à gauche pour ouvrir la liste des pages. Recherchez ou accédez à Produit et cliquez sur Détail du produit. Ajoutez le bouton Logik personnalisé à la page détaillée du produit existante ou utilisez la page packagée comme variante.

      Détails du produit

      • Pour ajouter le bouton à une page existante :
        1. Cliquez sur l’éclair à gauche et accédez à Composants personnalisés (la dernière section de la liste).
        2. Faites glisser le configurateur depuis la liste et déplacez-le à l’endroit souhaité dans la mise en page.

          Configurateur

      • Pour utiliser la page packagée comme variante :
        1. Rouvrez le menu de navigation des pages en haut à gauche.
        2. Dans l’option Détails du produit, cliquez sur les trois points et accédez à l’onglet Variations de page.
        3. Cliquez sur Nouvelle variation de page et choisissez « Détail du produit configurable » comme mise en page.

          Écran de nouvelle page

        4. Donnez un nom à la variante et cliquez sur Créer.

    API Ajouter au panier

    Point de terminaison : /services/apexrest/add-to-cart

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

    POST : permet d’ajouter des articles au panier actuellement actif. (Si un panier n’est pas actif, un panier est créé.) Nécessite les éléments suivants :

    • configurableProductId
    • ID de configuration
    • ID webstoreId
    • ID de compte effectif
    Remarque :
    webstoreId et effectiveAccountId font partie des API standard de Salesforce Commerce, de sorte que les informations doivent être facilement accessibles aux utilisateurs.

    configurableProductId et configurationId doivent correspondre au même produit configurable.

    PATCH : permet d’ajouter des éléments à un panier spécifié. Nécessite les éléments suivants :
    • configurableProductId
    • ID de configuration
    • ID du panier

    Réponse : tableau d’enregistrements d’éléments du panier (CartItem).

    Exemple de demande (créer un devis) :

    {
    	"configurableProductId": "01t8a0000061GQPAA2",
    	"configurationId": "7e45beb9-790c-46ef-a05f-9195718bcda7",
    	"effectiveAccountId": "0018a00001nsFoNAAU",
    	"webstoreId": "0ZE8a000000XwckGAC"
    }

    Exemple de demande (ajouter au devis existant) :

    {
    	"configurableProductId": "01t8a0000061GQPAA2",
    	"configurationId": "7e45beb9-790c-46ef-a05f-9195718bcda7",
    	"cartId": "0a68a000000kXQeAAM"
    }

    Exemple de réponse :

    [
    	{
    		"attributes": {
    			"type": "CartItem",
    			"url": "/services/data/v56.0/sobjects/CartItem/0a98a000000kWtlAAE"
    		},
    		"CartId": "0a68a000000kXDsAAM",
    		"Product2Id": "01t8a0000061GQPAA2",
    		"Type": "Product",
    		"CartDeliveryGroupId": "0a78a000000kWwxAAE",
    		"SalesPrice": 10000.00,
    		"UnitAdjustedPrice": 10000.00,
    		"TotalLineAmount": 10000.00,
    		"TotalPrice": 10000.00,
    		"TotalPriceAfterAllAdjustments": 10000.00,
    		"LGK__ConfigurationId__c": "7e45beb9-790c-46ef-a05f-9195718bcda7",
    		"Name": "LGK Machine",
    		"Id": "0a98a000000kWtlAAE"
    	},
    	{
    		"attributes": {
    			"type": "CartItem",
    			"url": "/services/data/v56.0/sobjects/CartItem/0a98a000000kWtkAAE"
    		},
    		"CartId": "0a68a000000kXDsAAM",
    		"Product2Id": "01t8a0000061GQOAA2",
    		"Type": "Product",
    		"CartDeliveryGroupId": "0a78a000000kWwxAAE",
    		"Quantity": 1.00,
    		"SalesPrice": 0.00,
    		"UnitAdjustedPrice": 0.00,
    		"TotalLineAmount": 0.00,
    		"TotalPrice": 0.00,
    		"TotalPriceAfterAllAdjustments": 0.00,
    		"Name": "Warranty",
    		"Id": "0a98a000000kWtkAAE"
    	},
    	{
    		"attributes": {
    			"type": "CartItem",
    			"url": "/services/data/v56.0/sobjects/CartItem/0a98a000000kWtjAAE"
    		},
    		"CartId": "0a68a000000kXDsAAM",
    		"Product2Id": "01t8a0000061GQKAA2",
    		"Type": "Product",
    		"CartDeliveryGroupId": "0a78a000000kWwxAAE",
    		"Quantity": 1.00,
    		"SalesPrice": 0.00,
    		"UnitAdjustedPrice": 0.00,
    		"TotalLineAmount": 0.00,
    		"TotalPrice": 0.00,
    		"TotalPriceAfterAllAdjustments": 0.00,
    		"Name": "1.5T Magnet",
    		"Id": "0a98a000000kWtjAAE"
    	},
    	{
    		"attributes": {
    			"type": "CartItem",
    			"url": "/services/data/v56.0/sobjects/CartItem/0a98a000000kWtiAAE"
    		},
    		"CartId": "0a68a000000kXDsAAM",
    		"Product2Id": "01t8a0000061GQGAA2",
    		"Type": "Product",
    		"CartDeliveryGroupId": "0a78a000000kWwxAAE",
    		"Quantity": 1.00,
    		"SalesPrice": 1.50,
    		"UnitAdjustedPrice": 1.50,
    		"TotalLineAmount": 1.50,
    		"TotalPrice": 1.50,
    		"TotalPriceAfterAllAdjustments": 1.50,
    		"Name": "MRI Platform Table",
    		"Id": "0a98a000000kWtiAAE"
    	},
    	{
    		"attributes": {
    			"type": "CartItem",
    			"url": "/services/data/v56.0/sobjects/CartItem/0a98a000000kWthAAE"
    		},
    		"CartId": "0a68a000000kXDsAAM",
    		"Product2Id": "01t8a0000061GQLAA2",
    		"Type": "Product",
    		"CartDeliveryGroupId": "0a78a000000kWwxAAE",
    		"Quantity": 1.00,
    		"SalesPrice": 2.50,
    		"UnitAdjustedPrice": 2.50,
    		"TotalLineAmount": 2.50,
    		"TotalPrice": 2.50,
    		"TotalPriceAfterAllAdjustments": 2.50,
    		"Name": "MRI Scanner",
    		"Id": "0a98a000000kWthAAE"
    	},
    	{
    		"attributes": {
    			"type": "CartItem",
    			"url": "/services/data/v56.0/sobjects/CartItem/0a98a000000kWtgAAE"
    		},
    		"CartId": "0a68a000000kXDsAAM",
    		"Product2Id": "01t8a0000061GQRAA2",
    		"Type": "Product",
    		"CartDeliveryGroupId": "0a78a000000kWwxAAE",
    		"Quantity": 25.00,
    		"SalesPrice": 1.00,
    		"UnitAdjustedPrice": 1.00,
    		"TotalLineAmount": 1.00,
    		"TotalPrice": 1.00,
    		"TotalPriceAfterAllAdjustments": 1.00,
    		"Name": "MRI Gradient Coils",
    		"Id": "0a98a000000kWtgAAE"
    	},
    	{
    		"attributes": {
    			"type": "CartItem",
    			"url": "/services/data/v56.0/sobjects/CartItem/0a98a000000kWtfAAE"
    		},
    		"CartId": "0a68a000000kXDsAAM",
    		"Product2Id": "01t8a0000061GQHAA2",
    		"Type": "Product",
    		"CartDeliveryGroupId": "0a78a000000kWwxAAE",
    		"Quantity": 25.00,
    		"SalesPrice": 3.00,
    		"UnitAdjustedPrice": 3.00,
    		"TotalLineAmount": 3.00,
    		"TotalPrice": 3.00,
    		"TotalPriceAfterAllAdjustments": 3.00,
    		"Name": "MRI Radio Frequency Coils",
    		"Id": "0a98a000000kWtfAAE"
    	}
    ]