[Solo PaaS]{class="badge informative" title="Se aplica solo a proyectos de Adobe Commerce en la nube (infraestructura PaaS administrada por Adobe) y a proyectos locales."}

ACSD-67166: Duplicar la ejecución de la consulta cataloginventory_stock_status al cargar un presupuesto en la tienda

La revisión ACSD-67166 corrige el problema en el que la ejecución duplicada de la consulta cataloginventory_stock_status se produce al cargar una cotización en la tienda, lo que provoca llamadas de BD redundantes. Esta revisión está disponible cuando está instalado Quality Patches Tool (QPT) 1.1.70. El ID del parche es ACSD-67166. Este problema está programado para solucionarse en Adobe Commerce 2.4.9.

Productos y versiones afectados

El parche se ha creado para la versión de Adobe Commerce:

  • Adobe Commerce (todos los métodos de implementación) 2.4.5-p13

Compatible con versiones de Adobe Commerce:

  • Adobe Commerce (todos los métodos de implementación) 2.4.4 - 2.4.8-p2
NOTE
El parche podría ser aplicable a otras versiones con las nuevas versiones de Quality Patches Tool. Para comprobar si el parche es compatible con su versión de Adobe Commerce, actualice el paquete magento/quality-patches a la última versión y compruebe la compatibilidad en la página Quality Patches Tool: buscar parches ​. Utilice el ID de parche como palabra clave de búsqueda para localizar el parche.

Problema

La ejecución duplicada de la consulta cataloginventory_stock_status se produce al cargar un presupuesto en la tienda, lo que provoca llamadas de BD redundantes.

Pasos a seguir:

  1. Instale una instancia limpia.

  2. Crear un Category y un Simple Product.

  3. Vaya a la categoría y añada un producto al carro de compras.

  4. Ir a la página del carro: /checkout/cart/

  5. Establecer puntos de interrupción en 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. Condición de punto de interrupción: strpos($this->query->getSelectSql(true), 'stock_status') !==false
      Agregue $_SERVER['REQUEST_URI'] a relojes en PHPStorm para verificar que se llame dos veces a la consulta dentro de la misma solicitud.

Resultados esperados:

La consulta se ejecuta una vez por solicitud.

Resultados reales:

La misma consulta se ejecuta dos veces:

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')

Aplicar el parche

Para aplicar parches individuales, utilice los siguientes vínculos según el método de implementación:

Lectura relacionada

Para obtener más información sobre Quality Patches Tool, consulte:

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