CPQ intégration à Salesforce B2B Commerce
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
- 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 :
- 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 :
- Démarrez le terminal (Mac ou Linux) ou PowerShell (Windows).
- 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. - Exécutez la commande
lspour afficher une liste de fichiers et de dossiers dans ce répertoire.Vous devriez voir
srcetsfdx-project.json, ainsi qu’une copie en texte brut de ce guide. - 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
-rpar celle sur laquelle l’intégration Logik-B2B sera configurée. - Le texte qui suit
--setaliasest un surnom utilisé pour identifier et référencer l’organisation Salesforce correcte. L’exemplemyOrgsera 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.
- Remplacez l’URL qui suit
- Connectez-vous et autorisez l’application connectée « Salesforce CLI ».
- 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 ».
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 :
- Depuis l’accueil de la configuration, accédez à l’onglet Gestionnaire d’objets ou accédez à Objets et champs > Gestionnaire d’objets.
- Dans le Gestionnaire d’objets, recherchez et ouvrez l’élément du panier (CartItem).
- Accédez à Champs et relations. Recherchez et ouvrez le champ ID de configuration (ConfigurationId__c).
- Cliquez sur Définir la sécurité au niveau du champ.
- 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.
Un ensemble similaire d’étapes doit être suivi pour un champ Product2.
- Dans le Gestionnaire d’objets, recherchez et ouvrez Produit (Product2).
- Accédez à Champs et relations. Ouvrez le champ CPQ Activé (LGK__IsConfigurable__c).
- 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.
- 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
-
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.
- Dans Salesforce, à partir de l’accueil de la configuration, accédez à Code personnalisé > Paramètres personnalisés.
-
Pour Logik Tenant, cliquez sur Gérer.
-
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 ».
-
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.
- Enregistrer.
Définition de l’accès aux pages Visualforce
- Dans la page d’accueil de la configuration, accédez à Paramètres des fonctionnalités > Expériences numériques > Tous les sites.
-
Pour votre boutique, cliquez sur Espaces de travail.
-
Accédez aux pages > d’administration > accédez à la plateforme Salesforce pour le développement d’applications.
- Sous « Site Visualforce Pages », cliquez sur Modifier.
-
Déplacez
commerceConfigurationWindowde Disponible à Activé et enregistrez.
Configuration d’Experience Builder
- À partir de la page d’accueil Commerce, ouvrez Experience Builder.
-
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.
- Pour ajouter le bouton à une page existante :
- Cliquez sur l’éclair à gauche et accédez à Composants personnalisés (la dernière section de la liste).
-
Faites glisser le configurateur depuis la liste et déplacez-le à l’endroit souhaité dans la mise en page.
- Pour utiliser la page packagée comme variante :
- Rouvrez le menu de navigation des pages en haut à gauche.
- Dans l’option Détails du produit, cliquez sur les trois points et accédez à l’onglet Variations de page.
-
Cliquez sur Nouvelle variation de page et choisissez « Détail du produit configurable » comme mise en page.
- Donnez un nom à la variante et cliquez sur Créer.
- Pour ajouter le bouton à une page existante :
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 :
configurableProductIdID de configurationID webstoreIdID de compte effectif
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.
configurableProductIdID de configurationID 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"
}
]