安裝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的​ Admin大量作業 ​選項設定為​ 非同步執行 ​時,此為必要專案。
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