PRESTASHOP

Prestashop: Uso de la clase Cookie. ¿Cómo verificar si ha iniciado sesión fuera de prestashop?



Para obtener los datos de una cookie en un archivo aparte fuera del ambito de Prestahop, se necesitan tener incluidos los siguientes archivos:

include_once(dirname(__FILE__) . '/config/config.inc.php');
include_once(dirname(__FILE__) . '/config/settings.inc.php');
include_once(dirname(__FILE__) . '/classes/Cookie.php');
include_once(dirname(__FILE__) . '/init.php');

Una vez tenemos incluidos los archivos necesarios para la utilización, obtendremos los parámetros de la cookie para poder utilizarla. Para ello lo haremos de la siguiente forma:

$cookie = new Cookie('psAdmin'); // para employees
$cookie = new Cookie('ps'); // para customers

Tipos de cookies en PrestaShop

Aquí os dejamos unos ejemplos de Cookies que utiliza Pretashop.

Hay dos tipos de cookies en prestashop, una para el lado del backoffice (empleados) o panel de gestión, y otra para el lado del usuario (cliente).

[1] Cookies psAdmin

Las cookies relacionadas con los empleados son las que se refieren a psAdmin.

$cookie = new Cookie('psAdmin');

Sus campos son los siguientes:

- [date_add] => [Fecha creación de la cookie]
- [id_lang] => [El ID del idioma seleccionado]
- [id_employee] => [El ID del empleado]
- [lastname] => [Nombre del empleado]
- [firstname] => [Apellidos del empleado]
- [email] => [Email del empleado]
- [profile] => [Perfil del empleado]
- [passwd] => [Contraseña del empleado codificada en MD5 junto con la _COOKIE_KEY_ del fichero config/settings.inc.php]
- [checksum] => [Código verificación de la cookie]

Ejemplo

Aquí tienes un ejemplo en PHP para obtener los siguientes campos relacionados con la cookie de employee:

if (isset($cookie->id_employee) && $cookie->id_employee) {
        echo 'Estoy Logado';
        echo 'Fecha: '.$cookie->date_add;
        echo 'Nombre: '.$cookie->firstname;
        echo 'Apellidos: '.$cookie->lastname;
        echo 'Email: '.$cookie->email;
} else {
        echo 'No estoy logado';
}

[2] Cookies ps

Las cookies relacionadas con los clientes o usuarios, son las que se refierena a ps.

$cookie = new Cookie('ps');

Puedes obtener los siguientes campos relacionados con la cookie de customer:

- [date_add] => [Fecha creación de la cookie]
- [id_lang] => [El ID del idioma seleccionado]
- [id_currency] => [El ID de la moneda seleccionada]
- [last_visited_category] => [ID de la última categoría visitada en el listado de productos]
- [ajax_blockcart_display] => [Para conocer si el carrito se encuentra Expandido o no lo está]
- [viewed] => [ID de los productos recién vistos separados por comas]
- [id_wishlist] => [ID actual de la lista en el Bloque de wishlist]
- [checkedTOS] => [Para saber si han marcado las condiciones del servicio en el checkbock (0 si no ha señalado nada, 1 si las ha aceptado]
- [id_guest] => [EL ID del usuario invitado]
- [id_connections] => [ID de la conexión actual de la sección del usuario]
- [id_customer] => [ID del cliente]
- [customer_lastname] => [Nombre Cliente]
- [customer_firstname] => [Apellidos Cliente]
- [logged] => [Sirve para comprobar si estas logeado]
- [passwd] => [Contraseña del empleado codificada en MD5 junto con la _COOKIE_KEY_ del fichero config/settings.inc.php]
- [email] => [Email cliente]
- [id_cart] => [ID del carrito actual]
- [checksum] => [Código verificación de la cookie]

Ejemplo

Un ejemplo en PHP para comprobar si se está logado puede ser de la siguiente forma:

if (Context::getContext()->customer->isLogged()) {
        echo 'Estoy Logado';
        echo 'Fecha: '.$cookie->date_add;
        echo 'Nombre: '.$cookie->customer_firstname;
        echo 'Apellidos: '.$cookie->customer_lastname;
        echo 'Email: '.$cookie->email;
} else {
        echo 'No estoy logado';
}