安装Adobe Commerce B2B扩展

Adobe Commerce B2B扩展magento/extension-b2b适用于所有受支持的Adobe Commerce版本。 它会在安装Adobe Commerce之后安装。

要求

IMPORTANT
Adobe Commerce B2B版本1.4.2+与PHP 8.3不兼容。如果将Commerce实例升级到Commerce版本2.4.7+,请确保该实例上安装的PHP版本是PHP 8.2,以保持与B2B 1.4.2+的兼容性。

支持的平台

  • 云基础架构上的Adobe Commerce (ECE)
  • Adobe Commerce内部部署(EE)

安装步骤

recommendation-more-help

先决条件

使用编辑器安装B2B扩展(magento/b2b-extension)。 该扩展是一个编辑器中继包,其中包含可为Adobe Commerce实例启用B2B功能的模块集合。 有关包含的模块的列表,请参阅B2B包

云基础架构
note tip
TIP
在云基础架构上安装Adobe Commerce B2B时,Adobe建议您在开始之前将Adobe Commerce应用程序部署到集成或暂存环境。

将B2B扩展添加到项目时,Adobe建议在开发分支中工作。 如果没有分支,请参阅创建用于开发的分支。 安装B2B扩展时,Magento_B2b扩展名会自动插入app/etc/config.php文件中。 无需直接编辑文件。

安装B2B扩展

  1. 在本地工作站上,转到您的项目目录。

  2. 创建或签出开发分支。

  3. 将B2B扩展添加到composer.json文件的require部分。

    code language-bash
    composer require magento/extension-b2b --no-update
    
  4. 更新项目依赖关系。

    code language-bash
    composer update
    
  5. 添加、提交和推送代码更改。

    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
    将更新推送到云环境会启动Commerce云部署过程以应用更改。 从部署日志中检查部署状态。 如果遇到部署错误,请参阅从组件故障中恢复
  6. 构建和部署完成后,使用SSH登录到远程环境,并验证是否已安装和启用B2B扩展。

    code language-bash
    bin/magento module:status Magento_B2b
    

    扩展名使用格式: <VendorName>_<ComponentName>

    示例响应:

    code language-none
    Magento_B2b : Module is enabled
    
内部部署
  1. 从Adobe Commerce应用程序根目录中,更新composer.json以添加B2B扩展的依赖项:

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

    如果出现错误,例如:

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

    检查包的拼写、版本限制,以及包是否可用并符合最低稳定性(稳定)要求。

  2. 如果出现提示,请输入您的身份验证密钥

    您的​ 公钥 ​是您的用户名;私钥 ​是您的密码。 如果您已将公钥和私钥存储在auth.json中,则不会提示您进行身份验证。

  3. 在Composer完成更新模块后运行以下命令:

    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
    在生产模式下,您可能会收到发送给Please rerun Magento compile command的消息。 输入命令以完成安装。 Adobe Commerce不会提示您以开发人员模式运行编译命令。

完成安装后,配置并启动消息使用者。

消息使用者

Adobe Commerce B2B扩展使用MySQL进行消息队列管理。 下表列出了支持B2B功能的消息使用者。 安装该扩展后,启动消息消费者,了解Commerce店面所需的B2B功能。

消费者
描述
sharedCatalogUpdatePrice
更新共享目录中每个产品的价格。 在管理系统配置设置中启用 Shared Catalogs 选项时必需。
sharedCatalogUpdateCategoryPermissions
更新分配给共享目录类别的类别。 在管理系统配置设置中启用 Shared Catalogs 选项时必需。
negotiableQuotePriceUpdate
更新可协商报价的价格。 在管理系统配置设置中启用 Quotes 选项时必需。
purchaseorder.toorder
将采购订单转换为订单。 在管理系统配置设置中启用 Purchase Orders 选项时必需。
purchaseorder.transactional.email
发送采购订单电子邮件。 在管理系统配置设置中启用 Purchase Orders 选项时必需。
purchaseorder.validation
根据相关审批规则验证采购订单。 在管理系统配置设置中启用 Purchase Orders 选项时必需。
quoteItemCleaner
从目录中删除或从购物车中删除产品时,删除无效或不活动的报价。 在管理系统配置设置中启用 Quotes 选项时必需。
inventoryQtyCounter
在下达订单或移除产品后,异步更正股票指数。 在管理员配置设置中为Inventory management启用 Use deferred stock update 选项时必需。 请参阅性能最佳实践
async.operations.all
批量操作的每个单独任务创建消息,例如导入或导出物料、批量更改价格以及将产品分配给仓库。 当Inventory Management的​ 管理员批量操作 ​选项在管理员系统配置设置中设置为​ 异步运行 ​时需要。
NOTE
有关所有Adobe Commerce消息使用者的列表,请参阅​_配置指南_​中的消息队列使用者

配置消息使用者

在针对B2B功能启动消息使用者时,通过添加以下参数防止可能的处理问题或延迟。

  • --max-messages <value> — 指定每个使用者在终止前必须处理的最大消息数(默认值= 10000)。 虽然Adobe不建议这样做,但您可以使用0来阻止使用者终止。 PHP应用程序的最佳做法是重新启动长时间运行的进程,以防止可能的内存泄漏。

  • --batch-size <value> — 允许您限制使用者使用的系统资源(CPU、内存)。 使用较小的批会减少资源用量,因此会导致处理速度变慢。 如果指定,则队列中的消息将以<value>批次(每批)使用。 此选项仅适用于批处理消费者。 如果未定义--batch-size,则批处理使用者将接收队列中的所有可用消息。

有关其他配置选项的信息,请参阅特定配置

启动消息使用者

要为B2B功能启用异步操作,您必须启动多个消息使用者。

  1. 列出可用的消息使用者:

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

    该命令返回可用的消息使用者,包括所有B2B消息使用者

  2. 分别启动每个消费者:

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

    例如:

    code language-bash
    bin/magento queue:consumers:start quoteItemCleaner
    
TIP
若要在后台运行它,请将&附加到命令,返回到提示符,然后继续运行命令。 例如: bin/magento queue:consumers:start sharedCatalogUpdatePrice &

有关详细信息,请参阅​ 配置指南 ​中的管理消息队列

将消息使用者添加到cron

通过将计划添加到cron配置文件/app/code/Magento/MessageQueue/etc/crontab.xml,可以自动执行SharedCatalogUpdateCategoryPermissionsSharedCatalogUpdatePrice消息使用者的运行计划。

* * * * * 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 &

您还可以从“管理员”中的存储配置设置为消息使用者配置计划。

在管理员中启用B2B功能

安装Adobe Commerce B2B扩展并启动邮件使用者后,您还必须在管理员中启用B2B功能

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