ACSD-67166: Dubblettkörning av cataloginventory_stock_status-frågan när en offert läses in på butiken
ACSD-67166-korrigeringen åtgärdar ett problem där dubblettkörning av cataloginventory_stock_status-frågan inträffar när en offert läses in på butiken, vilket orsakar redundanta DB-anrop. Den här korrigeringen är tillgänglig när Quality Patches Tool (QPT) 1.1.70 har installerats. Korrigerings-ID är ACSD-67166. Observera att problemet är planerat att åtgärdas i Adobe Commerce 2.4.9.
Berörda produkter och versioner
Korrigeringen har skapats för Adobe Commerce-version:
- Adobe Commerce (alla distributionsmetoder) 2.4.5-p13
Kompatibel med Adobe Commerce-versioner:
- Adobe Commerce (alla distributionsmetoder) 2.4.4 - 2.4.8-p2
magento/quality-patches-paketet till den senaste versionen och kontrollerar kompatibiliteten på Quality Patches Tool: Sök efter korrigeringsfiler . Använd patch-ID:t som söknyckelord för att hitta patchen.Problem
Duplicerad körning av cataloginventory_stock_status-frågan inträffar när en offert läses in på butiken, vilket orsakar redundanta DB-anrop.
Steg som ska återskapas:
-
Installera en ren instans.
-
Skapa en Category och en Simple Product.
-
Gå till kategorin och lägg till en produkt i kundvagnen.
-
Gå till kundvagnssidan:
/checkout/cart/ -
Ange brytpunkter i xDebug:
app/code/Magento/CatalogInventory/Model/StockRegistryPreloader.php:115app/code/Magento/InventoryCatalog/Model/LegacyStockStatusCache.php:73lib/internal/Magento/Framework/Data/AbstractSearchResult.php:233- Brytpunktsvillkor:
strpos($this->query->getSelectSql(true), 'stock_status') !==false
Lägg till$_SERVER['REQUEST_URI']i bevakningar i PHPStorm för att verifiera att frågan anropas två gånger inom samma begäran.
Förväntade resultat:
Frågan körs en gång per begäran.
Faktiska resultat:
Samma fråga körs två gånger:
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')
Tillämpa korrigeringen
Använd följande länkar beroende på distributionsmetod för att tillämpa enskilda korrigeringsfiler:
- Lokal användning för Adobe Commerce eller Magento Open Source: Quality Patches Tool > Användning i guiden Quality Patches Tool
- Adobe Commerce om molninfrastruktur: Uppgraderingar och korrigeringar > Tillämpa korrigeringar i guiden för Commerce om molninfrastruktur
Relaterad läsning
Mer information om Quality Patches Tool finns i:
- Quality Patches Tool: Ett självbetjäningsverktyg för kvalitetspatchar i verktygshandboken