ACSD-50858: rendimiento mejorado para cargar contenido de titulares
El parche ACSD-50858 corrige un problema de rendimiento del banner en la página de carrito/cierre de compra: consultas de BD excesivas y tiempo de carga de página aumentado. Esta revisión está disponible cuando está instalado Quality Patches Tool (QPT) 1.1.31. El ID del parche es ACSD-50858. Tenga en cuenta que el problema está programado para solucionarse en Adobe Commerce 2.4.7.
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-p1
Compatible con versiones de Adobe Commerce:
- Adobe Commerce (todos los métodos de implementación) 2.4.4 - 2.4.6
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
El rendimiento del banner se ve afectado en la página del carro de compras/cierre de compra debido a consultas de BD excesivas y tiempo de carga de la página aumentado.
Esto se solucionó refactorizando la forma en que se cargan los contenidos de los banners, lo que redujo el número de consultas de DB en un 99,99 % y el tiempo de carga de la página en ~99 %.
Pasos a seguir:
-
Inicie sesión en Admin y cree un producto sencillo.
-
Cree un cliente, ya sea desde Administración o desde el front-end, y añada una dirección de envío para él.
-
Mueva banners.php a la carpeta
magento_root/pub/
. -
Genere titulares utilizando el comando
php pub/banners.php
. Generará 10.000 banners simples y 1.000 banners con reglas de venta. -
Inicie sesión en el cliente creado anteriormente en el front-end.
-
Añadir el producto creado anteriormente al carro de compras.
-
Vaya a la página de cierre de compra (cierre de compra/carro).
-
Supervisar el tiempo de carga de la solicitud
banner/ajax/load
:-
Sin
bin/magento dev:query-log:enable
-
Con
bin/magento dev:query-log:enable
code language-none grep 'magento_banner_content' var/debug/db.log | wc -l
-
Resultados esperados:
Disminución en el número de consultas de BD para magento_banner_content
y el tiempo de carga de la página de carrito/cierre de compra.
Resultados reales:
Aumento en el número de consultas de BD para magento_banner_content
y el tiempo de carga de la página del carro de compras/cierre de compra.
Aplicar el parche
Para aplicar parches individuales, utilice los siguientes vínculos según el método de implementación:
- Adobe Commerce o Magento Open Source local: Quality Patches Tool > Uso en la guía Quality Patches Tool.
- Adobe Commerce en la infraestructura de la nube: Actualizaciones y parches > Aplicar parches en la guía Commerce en la infraestructura de la nube.
Más información
banners.php content:
\Banner::class);
$banner->setIsEnabled(
\Magento\Banner\Model\Banner::STATUS_ENABLED
)->setName(
'Test Dynamic Block '.$i
)->setTypes(
''
)->setStoreContents(
[0 => 'Dynamic Block Content '.$i]
)->save();
}
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
/** @var \Magento\SalesRule\Model\Rule $salesRule */
$salesRule = $objectManager->create(\Magento\SalesRule\Model\Rule::class);
$salesRule->setData(
[
'name' => '50% Off ',
'is_active' => 1,
'customer_group_ids' => [\Magento\Customer\Model\GroupManagement::NOT_LOGGED_IN_ID],
'coupon_type' => \Magento\SalesRule\Model\Rule::COUPON_TYPE_NO_COUPON,
'conditions' => [
[
'type' => \Magento\SalesRule\Model\Rule\Condition\Address::class,
'attribute' => 'base_subtotal',
'operator' => '>',
'value' => 0
]
],
'simple_action' => 'by_percent',
'discount_amount' => 50,
'discount_step' => 0,
'stop_rules_processing' => 1,
'website_ids' => [
1
]
]
);
$salesRule->save();
for ($i = 0; $i < 1000; $i++) {
$banner = $objectManager->create(\Magento\Banner\Model\Banner::class);
$banner->setData(
[
'name' => 'Get 50% Off ',
'is_enabled' => \Magento\Banner\Model\Banner::STATUS_ENABLED,
'types' => [], /*Any Banner Type*/
'store_contents' => ['<img src="http://example.com/banner_40_percent_off.png" />'],
'banner_sales_rules' => [$salesRule->getId()],
]
);
$banner->save();
}
Lectura relacionada
Para obtener más información sobre Quality Patches Tool, consulte:
- Quality Patches Tool publicado: nueva herramienta para autodistribuir parches de calidad en la base de conocimiento de soporte.
- Compruebe si el parche está disponible para su problema de Adobe Commerce usando Quality Patches Tool en la guía Quality Patches Tool.
Para obtener información sobre otros parches disponibles en QPT, consulte Quality Patches Tool: Buscar parches en la guía Quality Patches Tool.