[Alleen PaaS]{class="badge informative" title="Is alleen van toepassing op Adobe Commerce op Cloud-projecten (door Adobe beheerde PaaS-infrastructuur) en op projecten in het veld."}

ACSD-67166: dubbele uitvoering van de cataloginventory_stock_status -query bij het laden van een aanhalingsteken in de winkel

De ACSD-67166-patch verhelpt het probleem waarbij dubbele uitvoering van de cataloginventory_stock_status -query plaatsvindt wanneer een aanhalingsteken in de winkel wordt geladen, wat leidt tot redundante DB-aanroepen. Deze patch is beschikbaar wanneer Quality Patches Tool (QPT) 1.1.70 wordt geïnstalleerd. De patch-id is ACSD-67166. Dit probleem wordt volgens de planning opgelost in Adobe Commerce 2.4.9.

Betrokken producten en versies

het flard wordt gecreeerd voor de versie van Adobe Commerce:

  • Adobe Commerce (alle implementatiemethoden) 2.4.5-p13

Compatibel met de versies van Adobe Commerce:

  • Adobe Commerce (alle implementatiemethoden) 2.4.4 - 2.4.8-p2
NOTE
De patch kan van toepassing worden op andere versies met nieuwe Quality Patches Tool versies. Om te controleren of de patch compatibel is met uw Adobe Commerce-versie, werkt u het magento/quality-patches -pakket bij naar de meest recente versie en controleert u de compatibiliteit op de Quality Patches Tool : zoek naar patches op de pagina ​ . Gebruik de patch-id als een zoekwoord om de patch te zoeken.

Probleem

De dubbele uitvoering van de vraag cataloginventory_stock_status komt voor wanneer het laden van een citaat op de storefront, veroorzakend overtollige vraag van DB.

Stappen om te reproduceren:

  1. Installeer een schone instantie.

  2. Maak een Category en een Simple Product .

  3. Ga naar de categorie en voeg een product aan de kar toe.

  4. Ga naar de winkelwagentje pagina: /checkout/cart/

  5. Onderbrekingspunten instellen in xDebug :

    1. app/code/Magento/CatalogInventory/Model/StockRegistryPreloader.php:115
    2. app/code/Magento/InventoryCatalog/Model/LegacyStockStatusCache.php:73
    3. lib/internal/Magento/Framework/Data/AbstractSearchResult.php:233
    4. Voorwaarde van het onderbrekingspunt: strpos($this->query->getSelectSql(true), 'stock_status') !==false
      Voeg $_SERVER['REQUEST_URI'] aan horloges in PHPStorm toe om te verifiëren de vraag tweemaal binnen het zelfde verzoek wordt geroepen.

Verwachte resultaten :

De query wordt één keer per aanvraag uitgevoerd.

Ware resultaten :

Dezelfde query wordt tweemaal uitgevoerd:

SELECT `main_table`.*, `cp_table`.`sku`, `cp_table`.`type_id` FROM `cataloginventory_stock_status` AS `main_table`
 INNER JOIN `catalog_product_entity` AS `cp_table` ON main_table.product_id = cp_table.entity_id AND (cp_table.created_in <= 1 AND cp_table.updated_in > 1) WHERE (`main_table`.`product_id` IN(2)) AND (`main_table`.`website_id` = '0')

De patch toepassen

Om individuele flarden toe te passen, gebruik de volgende verbindingen afhankelijk van uw plaatsingsmethode:

Gerelateerde lezing

Meer informatie over Quality Patches Tool vindt u in:

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