🌐 Context Object — referencia completa
Actualizado: 2024-12-01
El objeto Context es el contenedor global de PrestaShop que da acceso a todos los objetos del estado actual de la peticion: carrito, cliente, moneda, idioma, tienda y mas. Esta disponible en cualquier clase del core y en los modulos.
#Acceder al Context
Formas de acceder al Context
php
<?php
// Desde cualquier clase — acceso estatico (recomendado)
$context = Context::getContext();
// Desde dentro de un modulo (ya disponible como $this->context)
$context = $this->context;
// Desde una clase ObjectModel o helper
$context = Context::getContext();
// Alias tipico para codigo conciso
$ctx = Context::getContext();
#Propiedades principales
| Propiedad | Tipo | Descripcion |
|---|---|---|
| $context->cart | Cart | Carrito actual del cliente |
| $context->customer | Customer | Cliente actual (o guest) |
| $context->currency | Currency | Moneda seleccionada |
| $context->language | Language | Idioma activo |
| $context->country | Country | Pais del cliente |
| $context->shop | Shop | Tienda activa (multitienda) |
| $context->link | Link | Generador de URLs |
| $context->smarty | Smarty | Motor de plantillas |
| $context->cookie | Cookie | Objeto de cookies de sesion |
| $context->controller | Controller | Controlador actual |
| $context->employee | Employee | Empleado (solo en BO) |
| $context->mobile_detect | MobileDetect | Deteccion de dispositivo movil |
#Context::getContext()->cart
Propiedades y metodos del carrito
php
<?php
$cart = Context::getContext()->cart;
// IDs
$idCart = (int) $cart->id;
$idCustomer = (int) $cart->id_customer;
$idAddress = (int) $cart->id_address_delivery;
// Totales
$total = $cart->getOrderTotal(true); // con impuestos
$products = $cart->getProducts(); // array de productos en el carrito
$nbItems = $cart->nbProducts(); // numero de articulos
// Verificar si el carrito tiene productos
if ($cart->id && $nbItems > 0) {
// hay productos
}
// Descuentos aplicados
$cartRules = $cart->getCartRules();
// Transportista seleccionado
$idCarrier = (int) $cart->id_carrier;
#Context::getContext()->customer
Propiedades del cliente actual
php
<?php
$customer = Context::getContext()->customer;
// Estado del login
$isLogged = $customer->isLogged(); // true si ha iniciado sesion
$isGuest = $customer->isGuest(); // true si es invitado
// Datos personales
$idCustomer = (int) $customer->id;
$email = $customer->email;
$firstname = $customer->firstname;
$lastname = $customer->lastname;
$idGroup = (int) $customer->id_default_group; // grupo de cliente
// Grupos del cliente
$groups = $customer->getGroups(); // array de id_group
// Verificar si pertenece a un grupo
$isVIP = in_array(5, $groups); // 5 = ID del grupo VIP
#Context::getContext()->currency
Moneda y formato de precios
php
<?php
$currency = Context::getContext()->currency;
$idCurrency = (int) $currency->id;
$isoCode = $currency->iso_code; // EUR, USD, GBP...
$symbol = $currency->symbol; // €, $, £...
$conversionRate = $currency->conversion_rate;
// Formatear precio con la moneda activa
$formattedPrice = Tools::displayPrice(19.99);
// Tambien:
$formattedPrice = $currency->symbol . number_format(19.99, 2);
#Context::getContext()->language
Idioma activo y traducciones
php
<?php
$language = Context::getContext()->language;
$idLang = (int) $language->id;
$isoCode = $language->iso_code; // es, en, fr...
$locale = $language->locale; // es-ES, en-US...
$name = $language->name; // Español, English...
$isRTL = $language->is_rtl; // true para arabe, hebreo...
// Obtener nombre de producto en idioma activo
$product = new Product(1);
$productName = $product->name[$idLang];
// Obtener todos los idiomas activos
$allLanguages = Language::getLanguages(true);
#Context::getContext()->shop
Tienda activa (multitienda)
php
<?php
$shop = Context::getContext()->shop;
$idShop = (int) $shop->id;
$idGroup = (int) $shop->id_shop_group;
$name = $shop->name;
$domain = $shop->domain; // dominio sin https://
$physPath = $shop->getBaseURI(); // path fisico de la tienda
// Verificar contexto multitienda
if (Shop::isFeatureActive()) {
$context = Shop::getContext();
// Shop::CONTEXT_ALL = 1, Shop::CONTEXT_GROUP = 2, Shop::CONTEXT_SHOP = 3
}
#Context::getContext()->link
Generar URLs con el objeto Link
php
<?php
$link = Context::getContext()->link;
// URL de producto
$productUrl = $link->getProductLink(1); // ID o objeto Product
// URL de categoria
$catUrl = $link->getCategoryLink(2);
// URL de pagina CMS
$cmsUrl = $link->getCMSLink(3);
// URL de modulo (front controller)
$moduleUrl = $link->getModuleLink('mymodule', 'mypage', ['param' => 'valor']);
// URL del admin
$adminUrl = $link->getAdminLink('AdminOrders');
// URL de imagen de producto
$imgUrl = $link->getImageLink('nombre-producto', '1-large_default');
Descargar en Markdown
Pensado para pegar en ChatGPT, Claude u otra IA. Incluye solo el contenido de esta pagina.