2009-07-08 7 views
9

Estoy tratando de acceder a la sesión del cliente de Magento en otra parte de mi sitio web.¿Cómo acceder a la sesión del usuario de Magento desde fuera de Magento?

domain.com/shop/ <- Magento 
domain.com/test.php 

La tienda en sí funciona como un encanto, sin embargo estoy tratando de determinar dentro prueba.php si un cliente está conectado, por lo que puede mostrar su nombre con un enlace a su carrito.

Contenido de prueba.php hasta ahora:

<?php 
require_once dirname(__FILE__).'/shop/app/Mage.php'; 
umask(0); 
Mage::app('default'); 
Mage::getSingleton('core/session', array('name' => 'frontend')); 
var_dump(Mage::getSingleton('customer/session')->isLoggedIn()); 
?> 

me siguen dando bool (false) devueltos. Estoy conectado a Magento en domain.com/shop/ por lo que se espera 'verdadero'.

¿Olvidé algo?

+0

> "Excepción: Warning: include (DoppelGangerView.php) ......" Mi conjetura sería que no puede encontrar DoppelGangerView.php archivo de alguna manera .. - no es situado en el directorio actual .. - No se encuentra dentro de su include_path –

Respuesta

14

Yo recomendaría verificar la ruta de la cookie que establece Magento. Lo más probable es que esté configurado en /shop, por lo que la cookie no podrá acceder a su archivo arriba.

se puede modificar el camino que Magento utiliza para establecer la galleta en el panel de control bajo System -> Configuration -> Web (under the General heading) -> Session cookie management

+0

¡Ahora lo he configurado en/y eso funciona perfectamente! Gracias. –

+0

Por qué esto no funciona con joomla Lo probé en una página separada donde está funcionando pero no funciona con joomla siempre devuelve bool (falso) –

+1

@Positivo porque esta pregunta MAGENTO es sobre MAGENTO, no joomla. – Benubird

0

está bajo confuguration-> web en Magento ver. 1.10.1.1

0

El mismo problema me estaba volviendo loco. Trabajé a través de lo siguiente hasta que el último elemento lo resolvió:

  • ¿Se ha configurado la identificación de la tienda Mage correcta (almacén actual)?
  • ¿Está utilizando la misma ruta de sesión que Magento?
  • ¿Está utilizando el mismo (sub) dominio para fines de cookies?
  • ¿Está utilizando HTTP o HTTPS tanto dentro como fuera de Magento?

Si ha comprobado todo lo anterior, asegúrese de inicializar una sesión de núcleo "frontend" en su propio primero de esta manera:

// Initialise the core "frontend" session 
Mage::getModel('core/session', array('name' => 'frontend')); 

Entonces, podrá acceder al cliente/sesión de la siguiente manera:

$customer = Mage::getSingleton("customer/session", array('name' => 'frontend'))->getCustomer(); 
Cuestiones relacionadas