The Cookie
component is in charge of managing everything that the PrestaShop stores in the cookie
mechanism of the browser.
It helps set, get, and delete data stored in the cookie
storage.
All information stored in the Cookie
component is encrypted before being stored in the cookie
mechanism for safety reasons.
Cookie
instanceA Cookie
instance is available through Context
.
To get a Context
instance from a Controller
subclass or a Module
subclass, the Context
should be called with this shortcut:
$this->context
From anywhere else, you can get the Context
instance by calling:
Context::getContext()
Once retrieved a Context
instance, simply access Cookie
with:
$context->cookie
Cookie
To set a cookie key with the name mycookie
and the value myvalue
, do the following:
$cookie = $this->context->cookie;
$cookie->mycookie = 'myvalue';
Cookie
component uses the magic method __set()
to allow setting values to the object like they were public properties.Cookie
To get the cookie key with the name mycookie
, do the following:
$cookie = $this->context->cookie;
$myCookieValue = $cookie->mycookie;
Cookie
component uses the magic method __get()
to allow getting values to the object like they were public properties.Cookie
To test if a given key exists in the cookie exists, do the following:
$cookie = $this->context->cookie;
$cookieExists = isset($cookie->mycookie);
Cookie
component uses the magic method __isset()
to allow testing for existence values in the object like they were public properties.Cookie
To delete the key with name mycookie
from the PrestaShop’s cookie, do the following:
$cookie = $this->context->cookie;
unset($cookie->mycookie);
Cookie
component uses the magic method __unset()
to allow unsetting values in the object like they were public properties.PrestaShop stores natively in its core (or in native modules) lots of information in Cookies, such as:
Cookie name | Description | Type | Personal information | Module | Back office context |
---|---|---|---|---|---|
date_add |
Date when the cookie was created | date (Y-m-d H:i:s) |
|||
id_lang |
Current language ID | integer |
|||
id_currency |
Current currency ID | integer |
|||
last_visited_category |
ID of the last visited category | integer |
ps_categorytree | ||
id_guest |
ID of the guest customer account | integer |
|||
id_customer |
ID of the customer account | integer |
|||
id_connections |
ID of the Connection entity | integer |
|||
id_country |
ID of the selected country | integer |
|||
shop_context |
Current shop ID | integer |
|||
checksum |
Checksum validation string for the cookie | string |
|||
customer_lastname |
Customer’s lastname | string |
✅ | ||
customer_firstname |
Customer’s firstname | string |
✅ | ||
passwd |
Password of the customer | string |
✅ | ||
logged |
Indicates whether the customer is logged | boolean |
|||
email |
Email of the customer | string |
✅ | ||
id_cart |
ID of the cart | integer |
|||
remote_addr |
IP address of the customer | string |
|||
account_created |
Indicates if the customer created their account | integer |
|||
iso_code_country |
Customer prefered ISO code country | string |
|||
checkedTOS |
Deprecated Replaced with check_cgv |
integer |
|||
check_cgv |
Indicates if customer checked terms and conditions | integer |
|||
contactFormToken |
Contact form token value | string |
contactform | ||
contactFormTokenTTL |
Contact form token time to live (for expiration) | integer |
contactform | ||
viewed |
Viewed product IDs | array |
ps_viewedproduct | ||
is_contributor |
Indicates if employee is contributor | boolean |
✅ | ||
collapse_menu |
Indicates if the admin menu should be collapsed by default | boolean |
✅ | ||
last_activity |
Last activity timestamp of employee | timestamp (integer) |
✅ | ||
employee_form_lang |
ID of the lang for the logged employee | integer |
✅ | ||
entity_selected |
Export entity selected | integer |
✅ | ||
csv_selected |
Export format selected | integer |
✅ | ||
separator_selected |
Export csv separator selected | integer |
✅ | ||
multiple_value_separator_selected |
Export csv multiple value separator selected | integer |
✅ | ||
stats_year |
Year selected for stats | integer |
✅ | ||
stats_month |
Month selected for stats | integer |
✅ | ||
stats_day |
Day selected for stats | integer |
✅ | ||
checkup_order |
Checkup module ordering | integer |
statscheckup | ✅ | |
stats_granularity |
Granularity of stats module | integer |
statsforecast | ✅ | |
stats_id_zone |
ID of the zone for stats module | integer |
statsforecast | ✅ | |
statsstock_id_category |
ID of the category for statsstock module | integer |
statsstock | ✅ |
Cookie
component.If you have questions regarding the GDPR subject on PrestaShop, you will find more information on: PrestaShop user guide - GDPR
The cookie
mechanism in browsers has some limitations about how much data you can put in.
According to RFC 6265 (chapter 6.1), browsers must support at least 50 cookie
per domain and a minimum size of 4096 bytes (4kb)
per cookie (cookie
name + value / attributes).
PrestaShop will create only one cookie, in the $_COOKIE
array, with each key and value data appended to a string and finally encrypted for safety reasons.
Please note that most browsers will ignore the cookie
if its size is superior to 4096 bytes
, which makes a limit around 1000 characters before encryption.
session
or database
, or use browser-side storage such as localStorage.