[僅限PaaS]{class="badge informative" title="僅適用於雲端專案(Adobe管理的PaaS基礎結構)和內部部署專案的Adobe Commerce 。"}

ACSD-67643:在高巢狀類別環境中進行排程更新期間建立的重複專案

ACSD-67643修補程式修正了在具有大量巢狀類別的環境中進行排程更新期間建立重複專案的問題。 安裝Quality Patches Tool (QPT) 1.1.71時,即可使用此修補程式。 修補程式ID為ACSD-67643。 請注意,此問題已排程在Adobe Commerce 2.4.9中修正。

受影響的產品和版本

已為Adobe Commerce版本建立修補程式:

  • Adobe Commerce (所有部署方法) 2.4.8-p1

與Adobe Commerce版本相容:

  • Adobe Commerce (所有部署方法) 2.4.8 - 2.4.8-p2
NOTE
此修補程式可能適用於發行版本為Quality Patches Tool的其他版本。 若要檢查修補程式是否與您的Adobe Commerce版本相容,請將magento/quality-patches套件更新至最新版本,並在Quality Patches Tool上檢查相容性:搜尋修補程式頁面。 使用修補程式ID作為搜尋關鍵字,以尋找修補程式。

問題

為具有大量巢狀類別的環境建立排程更新時,會發生重複專案。

要再現的步驟

  1. 產生範例資料:
    使用含有修改的效能夾具檔案(例如: small.xml):
    Categories2,500
    Products250,000

  2. 執行以下命令:

    code language-bash
    bin/magento setup:performance:generate-fixtures var/performance-toolkit/profiles/ce/small.xml
    
  3. 建立產品和類別後,請執行以下步驟,確保所有類別都是錨點:

    code language-sql
    UPDATE catalog_category_entity_int SET value = 1 WHERE attribute_id = (SELECT attribute_id FROM eav_attribute WHERE attribute_code = 'is_anchor');
    
  4. 執行完整重新索引。

  5. 登入後端並開啟​ Categories ​頁面。

  6. 將​ 類別2 ​移動到​ 類別1 ​以增加樹狀結構巢狀結構。

  7. 移至最巢狀化的類別(例如: 類別2.1.1)。

  8. 建立​ 排程更新 ​並儲存類別。

預期結果

類別已成功儲存。

實際結果

發生​ 錯誤500,且日誌中顯示下列訊息:

    Magento\Framework\DB\Adapter\DuplicateException:
    SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '6-165' for key 'PRIMARY',
    query was: INSERT INTO `temp_category_descendants_68a35aea273fc` (`category_id`, `descendant_id`)
    SELECT `ce`.`entity_id` AS `category_id`, `ce2`.`entity_id` AS `descendant_id`
    FROM `catalog_category_entity` AS `ce`
    INNER JOIN `catalog_category_entity` AS `ce2` ON ce2.path LIKE CONCAT(ce.path, '/%')

套用修補程式

若要套用個別修補程式,請根據您的部署方法使用下列連結:

相關閱讀

若要進一步瞭解Quality Patches Tool,請參閱:

recommendation-more-help
c2d96e17-5179-455c-ad3a-e1697bb4e8c3