Call to a member function extend() on a non-object en Magento

Hace un tiempo ya me encontré con éste error.

En ese momento, en los foros no había información alguna (al principio me pareció extraño y supuse que podría ser algo particular de mi entorno de desarrollo).

El error que se nos imprime es el siguiente:

Fatal error: Call to a member function extend() on a non-object in /var/www/magento/app/code/core/Mage/Core/Model/Mysql4/Config.php on line 136

La clase en la que se da el error es Mage_Core_Model_Mysql4_Config ubicada en:

/app/code/core/Mage/Core/Model/Mysql4/Config.php

El problema lo encontramos a partir de la línea 133 (puede variar dependiendo de la versión de Magento que estemos utilizando). Es ahí donde se presenta un foreach que lee información sobre las configuraciones de la plataforma.

// extend website config values to all associated stores
foreach ($websites as $wId=>$website) {
    $extendSource = $xmlConfig->getNode('websites/'.$website['code']);
    if (isset($website['stores'])) {
        foreach ($website['stores'] as $sId=>$sCode) {
            $storeNode = $xmlConfig->getNode('stores/'.$sCode);
            /**
            * $extendSource need overwrite source
            */
            $storeNode->extend($extendSource, true);
        }
    }
}

Hasta acá todo muy lindo, pero ¿qué significa?.

El error se originó debido a una inconsistencia entre store_id’s. En un proyecto que estamos por poner en producción, utilizamos una buena cantidad de store views. De hecho, va a servir para poner a prueba el rendimiento de la plataforma.

Volviendo al problema, la forma de solucionarlo fue eliminado la información residual que pudiera haber quedado en las tablas core_sotre_group, core_store y core_config_data.

Es recomendable también eliminar la carpeta /var/cache y recién ahí, actualizamos nuestro navegador.

Ahora si, todo debiera volver a la normalidad.

Cabe aclarar que este lío que se me presentó es por la forma en la que, para el proyecto, estamos manejando los store views. Si usamos la herramienta que viene pro defecto, no deberíamos tener mayores problemas.

Tweet about this on TwitterShare on Google+Email this to someoneShare on FacebookShare on LinkedIn