Las variables de sesión sirven para almacenar información durante todo el tiempo que esté un usuario en nuestra página. Antes de explicaros cómo generar dichas variables, hay que explicar que Magento nos ofrece cuatro «tipos de variable de sesión» y que deberíamos usar dependiendo de las características del dato que queremos guardar.
Tipos de variables de sesión
Core Session: Es la sesión más básica, se usa para guardar datos «anónimos» sobre el visitante (cookies, direcciones IP, los mensajes de error).
1 2 3 |
Mage_Core_Model_Session::getCookie() Mage_Core_Model_Session::addMessage() Mage_Core_Model_Session::useValidateRemoteAddr() |
Se accede a ella desde:
1 |
Mage::getSingleton('core/session') |
Customer Session: Guarda información sobre el usuario que está visitando nuestro site (ingresar o salir, nombre, identificación, dirección de correo electrónico, el grupo de cliente)
1 2 3 |
Mage_Customer_Model_Session::getCustomerId() Mage_Customer_Model_Session::isLoggedIn() Mage_Customer_Model_Session::getCustomerGroupId() |
Se accede a ella desde:
1 |
Mage::getSingleton('customer/session') |
Shopping Cart Session: Guarda información sobre el carrito de la compra, si es un invitado o no, el total, los productos y el progreso de compra.
1 2 3 |
Mage_Checkout_Model_Session::getQuote() Mage_Checkout_Model_Session::setStepData() Mage_Checkout_Model_Session::getQuote()->getTotals() |
Se accede a ella desde:
1 |
Mage::getSingleton('checkout/session')->getQuote() |
Admin Session: Se usa para guardar datos en la zona de administración de Magento. Se accede a ella desde:
1 |
Mage::getSingleton('adminhtml/session') |
Cómo trabajar con ellas
Una vez que conocemos los tipos de variables de sesión de las que dispone Magento, es tan fácil como usar un setter, un getter y un unset para jugar con nuestra variable. Por ejemplo, tenemos un usuario que ha hecho una compra de 100€ y queremos que le salga un mensaje dándole las gracias cuando visite nuestra página principal. Podemos crear una variable asociada al usuario (Customer Session) de esta forma:
1 |
Mage::getSingleton('customer/session')->setHasSpendMoreThan100('1'); |
Para recuperar su valor:
1 |
$customerHasSpendMoreThan100 = Mage::getSingleton('customer/session')->getHasSpendMoreThan100(); |
Para borrarla cuando ya no la necesitamos:
1 |
Mage::getSingleton('customer/session')->unsHasSpendMoreThan100(); |
Comments are closed.