---
title: Context Object — referencia completa
section: front
slug: context
description: "Referencia completa del objeto Context de PrestaShop: cart, customer, currency, language, shop, link, cookie, controller y como acceder a el desde cualquier punto."
keywords: prestashop context objeto cart customer currency language shop link cookie controller front office
last_updated: 2024-12-01
source_url: "https://ayudaprestashop.es/front/context"
---

# Context Object — referencia completa

> Referencia completa del objeto Context de PrestaShop: cart, customer, currency, language, shop, link, cookie, controller y como acceder a el desde cualquier punto.

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');
```


---

*Fuente: [https://ayudaprestashop.es/front/context](https://ayudaprestashop.es/front/context). Version Markdown generada automaticamente para consumo por LLMs.*
