🌐 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

PropiedadTipoDescripcion
$context->cartCartCarrito actual del cliente
$context->customerCustomerCliente actual (o guest)
$context->currencyCurrencyMoneda seleccionada
$context->languageLanguageIdioma activo
$context->countryCountryPais del cliente
$context->shopShopTienda activa (multitienda)
$context->linkLinkGenerador de URLs
$context->smartySmartyMotor de plantillas
$context->cookieCookieObjeto de cookies de sesion
$context->controllerControllerControlador actual
$context->employeeEmployeeEmpleado (solo en BO)
$context->mobile_detectMobileDetectDeteccion 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
}
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.