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

  • Adobe Commerce, toutes les versions prises en charge
  • PHP 8.1 et 8.2
  • 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 afin de conserver la compatibilité avec B2B 1.4.2+.

Plateformes prises en charge

  • Adobe Commerce sur l’infrastructure cloud (ECE)
  • Adobe Commerce sur site (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étapaquage 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 l’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éation d’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 poste de travail local, modifiez le répertoire de votre 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 modification du 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
    La publication de mises à jour dans l’environnement cloud lance le processus de déploiement cloud de Commerce pour appliquer les modifications. Vérifiez l’état du déploiement à partir du log de déploiement. Si vous rencontrez des erreurs de déploiement, reportez-vous à la section Récupération de l’échec du 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 : <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 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 module, votre contrainte de version et que le module est disponible et correspond à votre exigence 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 publique et privée 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 de production, vous pouvez recevoir un message à Please rerun Magento compile command. Renseignez les commandes pour terminer l'installation. Adobe Commerce ne vous invite pas à exécuter la commande compile 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 de la file d’attente des 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 le message des consommateurs pour les fonctionnalités B2B requises pour votre vitrine Commerce.

Consommation
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ée. 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 la commande d’achat 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 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 d’achat par rapport aux règles d’approbation appropriées. Obligatoire lorsque l’option Purchase Orders est activée dans les paramètres de configuration du système d’administration.
quoteItemCleaner
Supprime les prix invalides 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 de manière asynchrone l’index de stock après le passage 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 de l’administrateur. Voir Bonnes pratiques de performances.
async.operations.all
Crée des messages pour chaque tâche individuelle d’une opération en masse, comme importer ou exporter des articles, modifier les prix à grande échelle et affecter des produits à un entrepôt. Obligatoire lorsque l’option Admin - Opérations en bloc 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 Adobe Commerce, reportez-vous à la section Consommateurs de file d’attente de messages du 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> : spécifie le nombre maximal de messages que chaque consommateur doit traiter avant de s’arrêter (par défaut = 10 000). Bien qu’Adobe ne le recommande pas, vous pouvez utiliser 0 pour empêcher le consommateur de s’arrêter. La bonne pratique pour une application PHP est de redémarrer des processus de longue durée afin d’éviter toute fuite de mémoire.

  • --batch-size <value> — Permet de limiter les ressources système consommées par les consommateurs (processeur, mémoire). L’utilisation de lots plus petits réduit l’utilisation des ressources et ralentit donc 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 consommateur par lots. Si --batch-size n’est pas défini, le consommateur de lots reçoit tous les messages disponibles dans une file d’attente.

Pour plus d’informations sur les options de configuration supplémentaires, voir Specific-configuration.

Démarrez le message aux consommateurs

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

  1. Répertorier 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 de messages B2B.

  2. Démarrez chaque consommateur 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 Gestion des files d’attente de messages dans le Guide de configuration.

Ajout des consommateurs de messages à cron

Vous pouvez automatiser la planification de l’exécution pour les consommateurs de messages SharedCatalogUpdateCategoryPermissions et SharedCatalogUpdatePrice en ajoutant la planification 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 magasin dans l’administrateur.

Activation des fonctionnalités B2B dans l’administration

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

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