¿Cómo incluyo un bloque dinámico en la página del producto con el almacenamiento en caché de página completa activado?

Nos gustaría agregar un bloque dinámico a la página del producto. El problema es que la página del producto tiene un almacenamiento en caché de página completa (y no podemos desactivarlo debido a problemas de velocidad). Queremos mostrar información diferente en cada página de producto en función de la cuenta del usuario conectado, y varía de un producto a otro.

Creé un bloque separado que tiene su propio almacenamiento en caché, pero esto muestra el mismo bloque de la página del producto anterior. Estoy tratando de alterar su método de almacenamiento en caché para que no guarde el caché de la página del producto anterior.

Funciona las primeras veces que voy a las páginas del producto, pero de repente comienza a mostrar una página de error de Magento que dice: "El sitio web encontró un error al recuperarhttp: //www.mycompany.com/productpage.htm. Puede estar inactivo por mantenimiento o configurado incorrectamente. "

Esto es lo que he hecho hasta ahora. Creé app / code / local / MyCompany / MyModule / PageCache / etc / config.xml para agregar MyCompany_PageCache_Model.

Luego creé el archivo que controla el almacenamiento en caché en la aplicación / código / local / MyCompany / MyModule / PageCache / Model / Container / MyFile.php con estas funciones:

protected function _getCacheId()
{
    return 'CONSTANT_CACHE' . md5($this->_placeholder->getAttribute('cache_id'));
}

protected function _saveCache($data, $id, $tags = array(), $lifetime = null)
{
    return false;
}

protected function _renderBlock()
{
    $blockClass = $this->_placeholder->getAttribute('block');
    $template = $this->_placeholder->getAttribute('template');

    $block = new $blockClass;
    $block->setTemplate($template);
    $block->setLayout(Mage::app()->getLayout());
    return $block->toHtml();
}

También creé cache.xml en Catálogo / etc con mi marcador de posición para CONSTANT_CACHE.

Es incorrecta la sintaxis anterior o hay una manera más fácil de hacer esto?

Respuestas a la pregunta(8)

Su respuesta a la pregunta