ACSD-49973: Performance degradation occurs when fetching bundled products via GraphQL
Performance degradation occurs when fetching bundled products via GraphQL. Quality patch ACSD-49973 for magento/module-bundle applies to Magento Open Source and Adobe Commerce 2.4.4 to 2.4.4-p18.
- Categories
- GraphQL, Performance
- Components
- magento/module-bundle, magento/module-bundle-graph-ql, magento/module-catalog-inventory, magento/module-inventory-catalog, magento/module-inventory-catalog-search, magento/module-inventory-catalog-search-bundle-product, magento/module-inventory-catalog-search-configurable-product
- Origin
- adobe-commerce-support
- Since QPT
- 1.1.30
Issue
Performance degradation occurs when fetching bundled products via GraphQL.
Steps to reproduce
1. Enable the DB query logger: bin/magento dev:query-log:enable 1. Execute the following GraphQL query: { products( search: "bundle" pageSize: 2000, sort: { relevance: DESC } ) { total_count items { name sku } } } 1. Check var/log/db.log for requests to the catalog_product_bundle_selection table.
Adobe's page lists 2.4.4 - 2.4.4-p3 as compatible; the versions below are resolved from the current QPT constraints and are the ones the tool will offer.
Install
Install the Quality Patches Tool with composer require magento/quality-patches, apply the prerequisites listed for all files applicable to your distribution and version first, then run vendor/bin/magento-patches apply ACSD-49973. On Cloud, add ACSD-49973 under stage.build.QUALITY_PATCHES in .magento.env.yaml.
For cweagans/composer-patches, choose a compatible version below and download the bundle. Copy its ACSD-49973/ folder into patches/composer/, merge composer.patches.json into composer.json, then run composer install. Bundle prerequisites the same way and list them first. Paths are relative to each package root, using the default -p1 level. Prefer local files when configuring composer-patches; a remote URL can change.
Patch files and compatible versions
magento/magento2-base >=2.4.4 <2.4.5
- Magento Open Source
- 2.4.4-p18, 2.4.4-p17, 2.4.4-p16, 2.4.4-p15, 2.4.4-p14, 2.4.4-p13, 2.4.4-p12, 2.4.4-p11, 2.4.4-p10, 2.4.4-p9, 2.4.4-p8, 2.4.4-p7, 2.4.4-p6, 2.4.4-p5, 2.4.4-p4, 2.4.4-p3, 2.4.4-p2, 2.4.4-p1, 2.4.4
- Adobe Commerce
- 2.4.4-p18, 2.4.4-p17, 2.4.4-p16, 2.4.4-p15, 2.4.4-p14, 2.4.4-p13, 2.4.4-p12, 2.4.4-p11, 2.4.4-p10, 2.4.4-p9, 2.4.4-p8, 2.4.4-p7, 2.4.4-p6, 2.4.4-p5, 2.4.4-p4, 2.4.4-p3, 2.4.4-p2, 2.4.4-p1, 2.4.4
- Patch file
- patches/os/ACSD-49973_2.4.4-p2.patch
- vendor/magento/module-bundle/Model/Product/SelectionProductsDisabledRequired.php (deleted)
- vendor/magento/module-bundle/Model/ResourceModel/Indexer/Price/DisabledProductOptionPriceModifier.php (deleted)
- vendor/magento/module-bundle/Plugin/Catalog/Helper/Product.php (deleted)
- vendor/magento/module-bundle/etc/di.xml
- vendor/magento/module-bundle/etc/frontend/di.xml
- vendor/magento/module-bundle-graph-ql/Model/Resolver/Products/DataProvider/Product/DisabledProductOptionPostProcessor.php (deleted)
- vendor/magento/module-bundle-graph-ql/etc/di.xml
- vendor/magento/module-catalog-inventory/Model/ResourceModel/Stock/Status.php
magento/inventory-metapackage >=1.2.4 <1.2.5
- Magento Open Source
- 2.4.4-p18, 2.4.4-p17, 2.4.4-p16, 2.4.4-p15, 2.4.4-p14, 2.4.4-p13, 2.4.4-p12, 2.4.4-p11, 2.4.4-p10, 2.4.4-p9, 2.4.4-p8, 2.4.4-p7, 2.4.4-p6, 2.4.4-p5, 2.4.4-p4, 2.4.4-p3, 2.4.4-p2, 2.4.4-p1, 2.4.4
- Adobe Commerce
- 2.4.4-p18, 2.4.4-p17, 2.4.4-p16, 2.4.4-p15, 2.4.4-p14, 2.4.4-p13, 2.4.4-p12, 2.4.4-p11, 2.4.4-p10, 2.4.4-p9, 2.4.4-p8, 2.4.4-p7, 2.4.4-p6, 2.4.4-p5, 2.4.4-p4, 2.4.4-p3, 2.4.4-p2, 2.4.4-p1, 2.4.4
- Patch file
- patches/os/ACSD-49973_1.2.4-p2.patch
- vendor/magento/module-inventory-catalog/Model/ResourceModel/AddStockStatusToSelect.php
- vendor/magento/module-inventory-catalog-search/Model/Indexer/FilterProductByStock.php
- vendor/magento/module-inventory-catalog-search/Model/Indexer/SelectModifierInterface.php
- vendor/magento/module-inventory-catalog-search-bundle-product/Model/CatalogSearch/Indexer/BundleChildStockStatusModifier.php
- vendor/magento/module-inventory-catalog-search-configurable-product/Model/CatalogSearch/Indexer/ConfigurableChildStockStatusModifier.php
