Cuando el checkout se vuelve lento, el profiler de Magento es el primer lugar donde mirar.
1) Activa el profiler en el entorno de staging:
```
bin/magento dev:profiler:enable html
```
2) Repite el flujo y revisa los bloques más costosos.
Lo que suele aparecer arriba:
- Totals collectors innecesarios.
- Plugins que hacen queries repetidas.
- Layout updates que recalculan bloques en cada step.
Acciones rápidas:
- Desactivar collectors que no usas.
- Memoizar llamados a APIs externas.
- Aplanar plugins anidados en `after`/`around`.
Si el tiempo total está “OK” pero el CPU se dispara, revisa los observers. Si el tiempo total sube, el problema suele ser queries o IO.
Checklist extra que casi siempre ayuda:
- Revisa `\Magento\Checkout\Model\Cart` y cualquier `before`/`around` agresivo.
- Inspecciona `quote` en cada step: si estás recalculando totals más de 1 vez, hay un plugin de más.
- Desactiva módulos de terceros y vuelve a medir (A/B por módulo).
Debug rápido:
```
bin/magento dev:profiler:enable html
bin/magento setup:config:set --lock-config
```
Bloquear la configuración evita cambios accidentales en prod cuando debugueas.
La meta: bajar el tiempo del bloque más caro, no el total “a ojo”. Si el bloque top no baja, el resto es ruido.
1) Activa el profiler en el entorno de staging:
```
bin/magento dev:profiler:enable html
```
2) Repite el flujo y revisa los bloques más costosos.
Lo que suele aparecer arriba:
- Totals collectors innecesarios.
- Plugins que hacen queries repetidas.
- Layout updates que recalculan bloques en cada step.
Acciones rápidas:
- Desactivar collectors que no usas.
- Memoizar llamados a APIs externas.
- Aplanar plugins anidados en `after`/`around`.
Si el tiempo total está “OK” pero el CPU se dispara, revisa los observers. Si el tiempo total sube, el problema suele ser queries o IO.
Checklist extra que casi siempre ayuda:
- Revisa `\Magento\Checkout\Model\Cart` y cualquier `before`/`around` agresivo.
- Inspecciona `quote` en cada step: si estás recalculando totals más de 1 vez, hay un plugin de más.
- Desactiva módulos de terceros y vuelve a medir (A/B por módulo).
Debug rápido:
```
bin/magento dev:profiler:enable html
bin/magento setup:config:set --lock-config
```
Bloquear la configuración evita cambios accidentales en prod cuando debugueas.
La meta: bajar el tiempo del bloque más caro, no el total “a ojo”. Si el bloque top no baja, el resto es ruido.
Comentarios