Instalar la extensión Adobe Commerce B2B

La extensión B2B de Adobe Commerce magento/extension-b2b está disponible para todas las versiones compatibles de Adobe Commerce. Se instala después de instalar Adobe Commerce.

Requisitos

  • Adobe Commerce, todas las versiones compatibles
  • PHP 8.1 y 8.2
  • Composer
IMPORTANT
Adobe Commerce B2B versión 1.4.2+ no es compatible con PHP 8.3. Si actualiza la instancia de Commerce a Commerce versión 2.4.7 o posterior, asegúrese de que la versión de PHP instalada en la instancia sea PHP 8.2 para mantener la compatibilidad con B2B 1.4.2 o posterior.

Plataformas compatibles

  • Adobe Commerce en infraestructura en la nube (ECE)
  • Adobe Commerce local (EE)

Pasos de instalación

recommendation-more-help

Requisitos previos

Instale la extensión B2B (magento/b2b-extension) mediante Composer. La extensión es un metapaquete de compositor que incluye la colección de módulos que habilitan las capacidades B2B para una instancia de Adobe Commerce. Para obtener una lista de los módulos incluidos, consulte Paquetes B2B.

Infraestructura en la nube
note tip
TIP
Al instalar Adobe Commerce B2B en la infraestructura en la nube, Adobe recomienda implementar la aplicación de Adobe Commerce en un entorno de integración o ensayo antes de comenzar.

Adobe recomienda trabajar en una rama de desarrollo al añadir la extensión B2B al proyecto. Si no tiene una rama, consulte Crear una rama para desarrollo. Al instalar la extensión B2B, el nombre de la extensión Magento_B2b se inserta automáticamente en el archivo app/etc/config.php. No es necesario editar el archivo directamente.

Para instalar la extensión B2B:

  1. En la estación de trabajo local, cambie al directorio del proyecto.

  2. Cree o desproteja una rama de desarrollo.

  3. Agregue la extensión B2B a la sección require del archivo composer.json.

    code language-bash
    composer require magento/extension-b2b --no-update
    
  4. Actualice las dependencias del proyecto.

    code language-bash
    composer update
    
  5. Agregar, confirmar y enviar cambios de código.

    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
    Al insertar actualizaciones en el entorno de la nube de, se inicia el proceso de implementación de la nube de Commerce para aplicar los cambios. Compruebe el estado de implementación desde el registro de implementación. Si encuentra errores de implementación, consulte Error al recuperar del componente.
  6. Una vez finalizada la generación y la implementación, utilice SSH para iniciar sesión en el entorno remoto y comprobar que la extensión B2B está instalada y habilitada.

    code language-bash
    bin/magento module:status Magento_B2b
    

    Un nombre de extensión usa el formato: <VendorName>_<ComponentName>.

    Respuesta de ejemplo:

    code language-none
    Magento_B2b : Module is enabled
    
Local
  1. En el directorio raíz de la aplicación de Adobe Commerce, actualice composer.json para agregar las dependencias para la extensión B2B:

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

    Si se produce un error, por ejemplo:

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

    Compruebe la ortografía del paquete, la restricción de versión y que el paquete está disponible y coincide con el requisito de estabilidad mínima (estable).

  2. Si se le solicita, escriba sus claves de autenticación.

    Su clave pública es su nombre de usuario; su clave privada es su contraseña. Si ha almacenado las claves pública y privada en auth.json, no se le pedirá que se autentique.

  3. Ejecute los siguientes comandos una vez que Composer haya terminado de actualizar los módulos:

    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 el modo Producción, podría recibir un mensaje dirigido a Please rerun Magento compile command. Introduzca los comandos para completar la instalación. Adobe Commerce no le pide que ejecute el comando de compilación en modo de desarrollador.

Después de completar la instalación, configure e inicie los consumidores de mensajes.

Consumidores de mensajes

La extensión Adobe Commerce B2B utiliza MySQL para la administración de colas de mensajes. En la tabla siguiente se enumeran los consumidores de mensajes que admiten las capacidades B2B. Después de instalar la extensión, inicie los consumidores de mensajes para las funciones B2B necesarias para su tienda de Commerce.

Consumidor
Descripción
sharedCatalogUpdatePrice
Actualiza el precio de cada producto en un catálogo compartido. Necesario cuando la opción Shared Catalogs está habilitada en las opciones de configuración de Admin System.
sharedCatalogUpdateCategoryPermissions
Actualiza las categorías asignadas a una categoría de catálogo compartido. Necesario cuando la opción Shared Catalogs está habilitada en las opciones de configuración de Admin System.
negotiableQuotePriceUpdate
Actualiza los precios de las ofertas negociables. Necesario cuando la opción Quotes está habilitada en las opciones de configuración de Admin System.
purchaseorder.toorder
Convierte el pedido de compra en pedido. Necesario cuando la opción Purchase Orders está habilitada en las opciones de configuración de Admin System.
purchaseorder.transactional.email
Enviar correos electrónicos de pedidos de compra. Necesario cuando la opción Purchase Orders está habilitada en las opciones de configuración de Admin System.
purchaseorder.validation
Valida el pedido de compra con reglas de aprobación relevantes. Necesario cuando la opción Purchase Orders está habilitada en las opciones de configuración de Admin System.
quoteItemCleaner
Elimina las ofertas de precios no válidas o inactivas cuando un producto se elimina del catálogo o del carro de compras. Necesario cuando la opción Quotes está habilitada en las opciones de configuración de Admin System.
inventoryQtyCounter
Corrige de forma asíncrona el índice de existencias después de realizar un pedido o de eliminar un producto. Necesario cuando la opción Use deferred stock update está habilitada para Inventory management en las opciones de configuración de administración. Consulte Prácticas recomendadas de rendimiento.
async.operations.all
Crea mensajes para cada tarea individual de una operación masiva, como importar o exportar artículos, cambiar precios a escala masiva y asignar productos a un almacén. Necesario cuando la opción Operaciones masivas de administración para Inventory Management está establecida en Ejecutar asincrónicamente en los ajustes de configuración del sistema de administración.
NOTE
Para obtener una lista de todos los consumidores de mensajes de Adobe Commerce, consulte Consumidores de colas de mensajes en la Guía de configuración.

Configuración de consumidores de mensajes

Evite posibles problemas o retrasos en el procesamiento agregando los siguientes parámetros al iniciar los consumidores de mensajes para las capacidades B2B.

  • --max-messages <value>: especifica el número máximo de mensajes que cada consumidor debe procesar antes de finalizar (predeterminado = 10000). Aunque el Adobe no lo recomienda, puede utilizar 0 para evitar que el consumidor finalice. La práctica recomendada para una aplicación PHP es reiniciar los procesos de larga ejecución para evitar posibles fugas de memoria.

  • --batch-size <value>: permite limitar los recursos del sistema consumidos por los consumidores (CPU, memoria). El uso de lotes más pequeños reduce el uso de recursos y, por lo tanto, ralentiza el procesamiento. Si se especifica, los mensajes de una cola se consumen en lotes de <value> cada uno. Esta opción solo se aplica al consumidor de lotes. Si --batch-size no está definido, el consumidor por lotes recibe todos los mensajes disponibles en una cola.

Para obtener información acerca de opciones de configuración adicionales, vea Specific-configuration.

Iniciar consumidores de mensajes

Para habilitar operaciones asincrónicas para las capacidades B2B, debe iniciar varios consumidores de mensajes.

  1. Enumerar los consumidores de mensajes disponibles:

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

    El comando devuelve los consumidores de mensajes disponibles, incluidos todos los consumidores de mensajes B2B.

  2. Inicie cada consumidor por separado:

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

    Por ejemplo:

    code language-bash
    bin/magento queue:consumers:start quoteItemCleaner
    
TIP
Para ejecutarlo en segundo plano, agregue & al comando, vuelva a un símbolo del sistema y continúe ejecutando comandos. Por ejemplo: bin/magento queue:consumers:start sharedCatalogUpdatePrice &.

Para obtener más información, consulte Administrar colas de mensajes en la Guía de configuración.

Añadir consumidores de mensajes a cron

Puede automatizar la programación de ejecución para los consumidores de mensajes SharedCatalogUpdateCategoryPermissions y SharedCatalogUpdatePrice agregando la programación al archivo de configuración de 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 &

También puede configurar programaciones para consumidores de mensajes desde Configuración de almacenamiento en el Administrador.

Habilitar funciones B2B en el administrador

Después de instalar la extensión B2B de Adobe Commerce e iniciar los consumidores de mensajes, también debe habilitar las características B2B en el administrador.

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