Cuando se realizan cambios de diseño en Magento o cuando se tienen que actualizar productos del catálogo, a veces no se ven los cambios en el frontoffice de la web. Eso es porque no se ha limpiado la caché de Magento. ¿Cómo se hace? A continuaciónte damos las instrucciones para limpiar y desactivar la caché de Magento.

A) LIMPIAR LA CACHE DESDE EL BACKOFFICElimpiar la cache desde el backoffice

  1. Abra el panel de admin de Magento
  2. Click en el menu System>Cache Management (sistema > administración de caché)
  3. Marque todos Cache types (tipos de caché) y en Actions box (caja de selección de acciones) elija refresh (actualizar)
  4. Haga clic en Flush Magento Cache y Flush Cache Storage

B) DEJAR DESACTIVADA LA CACHÉ (recomendado solo en caso de que este haciendo cambios en las plantillas o algún fichero fuente )

  1. En la misma pantalla del paso 2, marque todos Cache types (tipos de caché) y en Actions box (caja de selección de acciones) elija disable (desactivar)

Otras de las formas de hacer una limpieza de la cache pasa por utilizar la consola (‘shell’ de Magento).

Directamente desde la consola o ‘terminal’ (en Mac y Linux, en el caso de Windows con CMD bastaría, siempre y cuando tengamos en el PATH la referencia a las librerías PHP), este código se ejecuta desde el mismo directorio donde tengamos hecha la instalación de Magento:

Primero deshabilitamos la ruta por defecto, después limpiamos la caché y finalmente volvemos a ‘compilar’.

  1. php -f shell/compiler.php disable
  2. php -f shell/compiler.php clear
  3. php -f shell/compiler.php compile

Si después de realizar todos los pasos anteriores no eres capaz de ver los cambios en su tienda de Magento puedes intentar con el siguiente script php


Mage::setIsDeveloperMode(true);

if (!Mage::app()->isInstalled()) {
echo «Application is not installed yet, please complete install wizard first.»;
exit(1);
}

// Only for urls
// Don’t remove this
$_SERVER[‘SCRIPT_FILENAME’] = ‘index.php’;

try
{
// CLEAN CACHE
Mage::app()->cleanCache();
echo ‘Cleared all caches’ . «n»;

// CATALOG REWRITES
try {
Mage::getSingleton(‘catalog/url’)->refreshRewrites();
echo ‘Catalog Rewrites were refreshed successfully’ . «n»;
}
catch (Mage_Core_Exception $e) {
echo $e->getMessage() . «n»;
}
catch (Exception $e) {
echo ‘Error while refreshed Catalog Rewrites. Please try again later’ . «n»;
}

// IMAGE CACHE
try {
Mage::getModel(‘catalog/product_image’)->clearCache();
echo ‘Image cache was cleared succesfuly’ . «n»;
}
catch (Mage_Core_Exception $e) {
echo $e->getMessage() . «n»;
}
catch (Exception $e) {
echo ‘Error while cleared Image cache. Please try again later’ . «n»;
}

// LAYERED NAV
try {
$flag = Mage::getModel(‘catalogindex/catalog_index_flag’)->loadSelf();
if ($flag->getState() == Mage_CatalogIndex_Model_Catalog_Index_Flag::STATE_RUNNING) {
$kill = Mage::getModel(‘catalogindex/catalog_index_kill_flag’)->loadSelf();
$kill->setFlagData($flag->getFlagData())->save();
}

$flag->setState(Mage_CatalogIndex_Model_Catalog_Index_Flag::STATE_QUEUED)->save();
Mage::getSingleton(‘catalogindex/indexer’)->plainReindex();
echo ‘Layered Navigation Indices were refreshed successfully’ . «n»;
}
catch (Mage_Core_Exception $e) {
echo $e->getMessage() . «n»;
}
catch (Exception $e) {
echo ‘Error while refreshed Layered Navigation Indices. Please try again later’ . «n»;
}

// SEARCH INDEX
try {
Mage::getSingleton(‘catalogsearch/fulltext’)->rebuildIndex();
echo ‘Search Index was rebuilded successfully’ . «n»;
}
catch (Mage_Core_Exception $e) {
echo $e->getMessage() . «n»;
}
catch (Exception $e) {
echo ‘Error while rebuilded Search Index. Please try again later’ . «n»;
}

// STOCK STATUS
try {
Mage::getSingleton(‘cataloginventory/stock_status’)->rebuild();
echo ‘CatalogInventory Stock Status was rebuilded successfully’ . «n»;
}
catch (Mage_Core_Exception $e) {
echo $e->getMessage() . «n»;
}
catch (Exception $e) {
echo ‘Error while rebuilded CatalogInventory Stock Status. Please try again later’ . «n»;
}

// CLEAN CACHE
Mage::app()->cleanCache();
echo ‘Cleared all caches’ . «n»;

echo «n» . ‘Cache clear complete!’ . «n»;

exit(0);
}
catch (Exception $e) {
Mage::printException($e);
}

exit(1);

Ingeniero informático, lleva desde el año 2013 trabajando en Sinapsis. Apasionado de la programación y del proceso de desarrollo de software en general, sus primeras líneas fueron en Basic. Pero luego llegó el salto a C# y la orientación a objetos en la universidad. Actualmente lleva unos 10 años trabajando con PHP, con múltiples frameworks y CMS. Pricipalmente Laravel, Vue JS, Magento, Prestashop, Symfony, Wordpress.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio esta protegido por reCAPTCHA y laPolítica de privacidady losTérminos del servicio de Googlese aplican.