Installation de l’extension Adobe Commerce B2B

L’extension Adobe Commerce B2B, magento/extension-b2b, est disponible pour toutes les versions prises en charge d’Adobe Commerce. Il est installé après l’installation d’Adobe Commerce.

Conditions requises

  • Adobe Commerce, toutes les versions prises en charge
  • PHP 8.1, 8.2 et 8.3 (nécessite B2B 1.5.0)
  • Composer
IMPORTANT
Adobe Commerce B2B version 1.4.2+ n'est pas compatible avec PHP 8.3. Si vous mettez à niveau l’instance Commerce vers Commerce version 2.4.7+, assurez-vous que la version PHP installée sur l’instance est PHP 8.2 pour conserver la compatibilité avec B2B 1.4.2+.

Plateformes prises en charge

  • Adobe Commerce sur les infrastructures cloud (ECE)
  • Adobe Commerce On-Premise (EE)

Etapes d'installation

recommendation-more-help

Conditions préalables

Installez l’extension B2B (magento/b2b-extension) à l’aide du compositeur. L’extension est un métapaquet de compositeur qui inclut la collection de modules qui activent les fonctionnalités B2B pour une instance Adobe Commerce. Pour obtenir la liste des modules inclus, voir Packages B2B.

Infrastructure cloud
note tip
TIP
Lors de l’installation d’Adobe Commerce B2B sur une infrastructure cloud, Adobe vous recommande de déployer votre application Adobe Commerce dans un environnement d’intégration ou d’évaluation avant de commencer.

Adobe recommande de travailler dans une branche de développement lors de l’ajout de l’extension B2B à votre projet. Si vous ne disposez pas d’une branche, voir Créer une branche pour le développement. Lors de l’installation de l’extension B2B, le nom de l’extension Magento_B2b est automatiquement inséré dans le fichier app/etc/config.php. Il n’est pas nécessaire de modifier directement le fichier.

Pour installer l’extension B2B :

  1. Sur votre station de travail locale, accédez au répertoire du projet.

  2. Créez ou extrayez une branche de développement.

  3. Ajoutez l’extension B2B à la section require du fichier composer.json.

    code language-bash
    composer require magento/extension-b2b --no-update
    
  4. Mettez à jour les dépendances du projet.

    code language-bash
    composer update
    
  5. Ajout, validation et modifications de code push.

    code language-bash
    git add -A
    
    code language-bash
    git commit -m "Install the B2B extension."
    
    code language-bash
    git push origin <branch-name>
    
    note note
    NOTE
    L’envoi de mises à jour à l’environnement cloud lance le processus de déploiement cloud de Commerce pour appliquer les modifications. Vérifiez le statut du déploiement dans le journal de déploiement. Si vous rencontrez des erreurs de déploiement, reportez-vous à la section Récupération après une défaillance de composant.
  6. Une fois la création et le déploiement terminés, utilisez SSH pour vous connecter à l’environnement distant et vérifier que l’extension B2B est installée et activée.

    code language-bash
    bin/magento module:status Magento_B2b
    

    Un nom d’extension utilise le format suivant : <VendorName>_<ComponentName>.

    Exemple de réponse :

    code language-none
    Magento_B2b : Module is enabled
    
Sur site
  1. Dans le répertoire racine de l’application Adobe Commerce, mettez à jour le composer.json pour ajouter les dépendances de l’extension B2B :

    code language-bash
    composer require magento/extension-b2b:<version>
    

    Si une erreur se produit, par exemple :

    code language-none
    [InvalidArgumentException] Could not find a matching version of package magento/extension-b2b.
    

    Vérifiez l’orthographe du package, votre contrainte de version, et assurez-vous que le package est disponible et correspond à vos exigences de stabilité minimale (stable).

  2. Si vous y êtes invité, saisissez vos clés d’authentification.

    Votre clé publique est votre nom d’utilisateur ; votre clé privée est votre mot de passe. Si vous avez stocké vos clés publiques et privées dans auth.json, vous n’êtes pas invité à vous authentifier.

  3. Exécutez les commandes suivantes une fois que le compositeur a terminé la mise à jour des modules :

    code language-bash
    bin/magento setup:upgrade
    
    code language-bash
    bin/magento setup:di:compile
    
    code language-bash
    bin/magento setup:static-content:deploy -f
    
    code language-bash
    bin/magento cache:clean
    
    note note
    NOTE
    En mode Production , il se peut que vous receviez un message à Please rerun Magento compile command. Saisissez les commandes pour terminer l’installation. Adobe Commerce ne vous invite pas à exécuter la commande compiler en mode Développeur.

Une fois l’installation terminée, configurez et démarrez les consommateurs de messages.

Consommateurs de messages

L’extension Adobe Commerce B2B utilise MySQL pour la gestion des files d’attente de messages. Le tableau suivant répertorie les consommateurs de messages qui prennent en charge les fonctionnalités B2B. Après avoir installé l’extension, démarrez les consommateurs de messages pour les fonctionnalités B2B requises pour votre storefront Commerce.

Consommateur
Description
sharedCatalogUpdatePrice
Met à jour le prix de chaque produit dans un catalogue partagé. Obligatoire lorsque l’option Shared Catalogs est activée dans les paramètres de configuration du système d’administration.
sharedCatalogUpdateCategoryPermissions
Met à jour les catégories affectées à une catégorie de catalogue partagé. Obligatoire lorsque l’option Shared Catalogs est activée dans les paramètres de configuration du système d’administration.
negotiableQuotePriceUpdate
Met à jour les prix des devis négociables. Obligatoire lorsque l’option Quotes est activée dans les paramètres de configuration du système d’administration.
purchaseorder.toorder
Convertit une commande fournisseur en commande. Obligatoire lorsque l’option Purchase Orders est activée dans les paramètres de configuration du système d’administration.
purchaseorder.transactional.email
Envoyez des e-mails de bon de commande. Obligatoire lorsque l’option Purchase Orders est activée dans les paramètres de configuration du système d’administration.
purchaseorder.validation
Valide la commande fournisseur par rapport aux règles d'approbation pertinentes. Obligatoire lorsque l’option Purchase Orders est activée dans les paramètres de configuration du système d’administration.
quoteItemCleaner
Supprime les devis non valides ou inactifs lorsqu'un produit est supprimé du catalogue ou du panier. Obligatoire lorsque l’option Quotes est activée dans les paramètres de configuration du système d’administration.
inventoryQtyCounter
Corrige l’index de stock de manière asynchrone après la passation d’une commande ou la suppression d’un produit. Obligatoire lorsque l’option Use deferred stock update est activée pour Inventory management dans les paramètres de configuration d’administration. Voir Bonnes pratiques en matière de performances.
async.operations.all
Crée des messages pour chaque tâche individuelle d'une opération en bloc telle que l'importation ou l'exportation d'articles, la modification des prix à grande échelle et l'affectation de produits à un entrepôt. Obligatoire lorsque l’option Opérations en bloc d’administration pour Inventory Management est définie sur Exécuter de manière asynchrone dans les paramètres de configuration du système d’administration.
NOTE
Pour obtenir la liste de tous les consommateurs de messages d’Adobe Commerce, voir Consommateurs de files d’attente de messages dans le Guide de configuration.

Configuration des consommateurs de messages

Empêchez d’éventuels problèmes ou retards de traitement en ajoutant les paramètres suivants lorsque vous démarrez les consommateurs de messages pour les fonctionnalités B2B.

  • --max-messages <value> : indique le nombre maximal de messages que chaque client doit traiter avant de s'arrêter (par défaut = 10000). Bien que Adobe ne le recommande pas, vous pouvez utiliser 0 pour empêcher le client de s’arrêter. La bonne pratique pour une application PHP est de redémarrer les processus de longue durée pour éviter les fuites de mémoire.

  • --batch-size <value> : permet de limiter les ressources système consommées par les consommateurs (CPU, mémoire). L’utilisation de lots plus petits réduit l’utilisation des ressources et, par conséquent, ralentit le traitement. Si spécifié, les messages d'une file d'attente sont consommés par lots de <value> chacun. Cette option s’applique uniquement au client par lots. Si --batch-size n’est pas défini, le client par lots reçoit tous les messages disponibles dans une file d’attente.

Pour plus d’informations sur les options de configuration supplémentaires, voir Configuration spécifique.

Démarrer les consommateurs de messages

Pour activer les opérations asynchrones pour les fonctionnalités B2B, vous devez démarrer plusieurs consommateurs de messages.

  1. Répertoriez les consommateurs de messages disponibles :

    code language-bash
    bin/magento queue:consumers:list
    

    La commande renvoie les consommateurs de messages disponibles, y compris tous les consommateurs B2B.

  2. Démarrez chaque client séparément :

    code language-bash
    bin/magento queue:consumers:start [--max-messages=<value>] [--batch-size=<value>] <consumer_name>
    

    Par exemple :

    code language-bash
    bin/magento queue:consumers:start quoteItemCleaner
    
TIP
Pour l’exécuter en arrière-plan, ajoutez & à la commande, revenez à une invite et continuez à exécuter les commandes. Par exemple : bin/magento queue:consumers:start sharedCatalogUpdatePrice &.

Pour plus d’informations, voir Gérer les files d’attente de messages dans le Guide de configuration.

Ajouter des consommateurs de messages à cron

Vous pouvez automatiser le planning d’exécution des consommateurs de messages SharedCatalogUpdateCategoryPermissions et SharedCatalogUpdatePrice en ajoutant le planning au fichier de configuration cron /app/code/Magento/MessageQueue/etc/crontab.xml.

* * * * * ps ax | grep [s]haredCatalogUpdateCategoryPermissions >>/dev/null 2>&1 || nohup php /var/www/html/magento2/bin/magento queue:consumers:start sharedCatalogUpdateCategoryPermissions &
* * * * * ps ax | grep [s]haredCatalogUpdatePrice >>/dev/null 2>&1 || nohup php /var/www/html/magento2/bin/magento queue:consumers:start sharedCatalogUpdatePrice &

Vous pouvez également configurer des plannings pour les consommateurs de messages à partir des paramètres de configuration de la boutique dans Admin.

Activer les fonctionnalités B2B dans l’administration

Après avoir installé l’extension B2B d’Adobe Commerce et démarré les consommateurs de messages, vous devez également activer les fonctionnalités B2B dans l’administration.

88ad8589-1cb8-47eb-a79c-0e4726a4ac2a