---
title: Clase Link — generador de URLs
section: front
slug: link-class
description: "Referencia completa de la clase Link de PrestaShop: getProductLink, getCategoryLink, getModuleLink, getAdminLink, getImageLink y todos sus metodos para generar URLs."
keywords: prestashop link clase url generador producto categoria modulo admin imagen rewrite
last_updated: 2024-12-01
source_url: "https://ayudaprestashop.es/front/link-class"
---

# Clase Link — generador de URLs

> Referencia completa de la clase Link de PrestaShop: getProductLink, getCategoryLink, getModuleLink, getAdminLink, getImageLink y todos sus metodos para generar URLs.

La clase `Link` de PrestaShop genera todas las URLs de la tienda teniendo en cuenta la configuracion de URLs amigables (rewrite), HTTPS, multitienda y el idioma activo. Nunca construyas URLs manualmente — usa siempre `Link`.

## Obtener la instancia de Link

*Acceder al objeto Link*

```php
<?php

// Desde el Context
$link = Context::getContext()->link;

// Desde dentro de un modulo
$link = $this->context->link;

// Crear nueva instancia (raro, normalmente usa el del Context)
$link = new Link();
```

## URLs de contenido

*URLs de productos, categorias, CMS y paginas estandar*

```php
<?php

$link = Context::getContext()->link;

// ── PRODUCTOS ──
// Por objeto o ID
$url = $link->getProductLink($product);          // objeto Product
$url = $link->getProductLink(42);                // ID
$url = $link->getProductLink(42, null, null, null, (int)Context::getContext()->language->id);
// Con combinacion
$url = $link->getProductLink(42, 'mi-producto', 'es', 3);  // id, rewrite, lang_iso, id_attribute

// ── CATEGORIAS ──
$url = $link->getCategoryLink(2);                // Home category
$url = $link->getCategoryLink($category);        // objeto Category

// ── CMS ──
$url = $link->getCMSLink(1);                     // ID pagina CMS
$url = $link->getCMSCategoryLink(1);             // Categoria CMS

// ── PAGINAS ESTANDAR ──
$url = $link->getPageLink('cart');               // /carrito (o ?controller=cart)
$url = $link->getPageLink('order');              // /proceso-compra
$url = $link->getPageLink('authentication');     // /login
$url = $link->getPageLink('my-account');         // /mi-cuenta
$url = $link->getPageLink('contact');            // /contacto
$url = $link->getPageLink('sitemap');            // /mapa-del-sitio

// Con parametros GET
$url = $link->getPageLink('order', true, null, 'step=1');

// ── FABRICANTES Y PROVEEDORES ──
$url = $link->getManufacturerLink(1);
$url = $link->getSupplierLink(1);

// ── BUSCADOR ──
$url = $link->getSearchLink();
```

## URLs de modulos y admin

*URLs de FrontControllers de modulos y del BO*

```php
<?php

$link = Context::getContext()->link;

// ── MODULO FRONT CONTROLLER ──
$url = $link->getModuleLink('mymodule', 'mypage');
// Con parametros
$url = $link->getModuleLink('mymodule', 'mypage', ['id' => 5, 'action' => 'view']);
// Forzar SSL
$url = $link->getModuleLink('mymodule', 'mypage', [], true);
// Idioma especifico
$url = $link->getModuleLink('mymodule', 'mypage', [], null, 2);  // id_lang = 2

// ── BACK OFFICE (ADMIN) ──
$adminUrl = $link->getAdminLink('AdminOrders');
$adminUrl = $link->getAdminLink('AdminProducts', true);          // con token
$adminUrl = $link->getAdminLink('AdminOrders', true, [], ['id_order' => 5]);

// ── URL BASE DE LA TIENDA ──
$baseUrl  = $link->getBaseLink();
$baseUrl  = $link->getBaseLink(null, null, true);  // forzar HTTPS
```

## URLs de imagenes

*URLs de imagenes de productos, categorias y logos*

```php
<?php

$link = Context::getContext()->link;

// ── IMAGENES DE PRODUCTO ──
// $rewrite = URL amigable del producto
// $ids     = cadena de IDs de imagen (p.ej. '1-2-3')
$imgUrl = $link->getImageLink('mi-producto', '1-large_default');
$imgUrl = $link->getImageLink('mi-producto', '1-medium_default');
$imgUrl = $link->getImageLink('mi-producto', '1-home_default');
$imgUrl = $link->getImageLink('mi-producto', '1-small_default');

// Imagen de categoria
$catImgUrl = $link->getCatImageLink('electronics', 3, 'category_default');

// Logo de la tienda
$logoUrl = _PS_IMG_ . Configuration::get('PS_LOGO');

// ── TIPOS DE IMAGEN TIPICOS ──
// large_default  = 800x800
// medium_default = 452x452
// home_default   = 250x250
// small_default  = 98x98
// cart_default   = 80x80
// thumbnail      = 35x35 (admin)
```

## Metodos utiles adicionales

*Otros metodos de Link frecuentemente usados*

```php
<?php

$link = Context::getContext()->link;

// Verificar si el protocolo activo es HTTPS
$isSSL = $link->isProtectedURL();

// Obtener URL amigable de un producto sin objeto completo
$rewriteUrl = Product::getProductLink(
    42,           // id_product
    'es',         // iso_code del idioma
    2             // id_lang
);

// URL de la pagina actual con parametros extras
$currentUrl = Tools::getCurrentUrlProtocolPrefix() . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

// En Smarty, el objeto $link esta disponible globalmente:
// {$link->getProductLink($product.id_product)}
// {$link->getModuleLink('mymodule','page')}
// {$link->getPageLink('cart')}
```


---

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