Prestashop

Variables Smarty en Plantilla Prestashop

Variables Smarty en Plantilla Prestashop. EL CMS de comercio electrónico Prestashop 1.7.1, trabaja en base a variables Smarty y son almacenadas en ficheros de tipo TPL, son definidas mediante llaves, por ejemplo: {$shop.name}

Si estamos usando el CMS Prestashop para desarrollar su sitio de comercio electrónico, es posible que deba ver un producto o página en función de una condicional y/o quitar o agregar un valor.

Variables Smarty en Plantilla Prestashop

Para gestionar estas variables, debe editar los archivos del tema especialmente los ficheros «.tpl» y utilizando algunas variables de lenguaje Smarty utilizadas por Prestashop. En el presente post les dejare varias categorías donde pueden aplicar estas formidables variables.

Entonces, podemos usar la variable “$currency” en los archivos de tipo “.tpl” , para obtener distintos valores de la moneda activa en tu tienda.

Variables de tienda Prestashop

Al estar configurando y personalizando tu tienda vas a tener que llegar a este punto la de conocer las variables que manejan la tienda para mostrar una determinada Información, aquí te dejare los datos generales sobre tu tienda online

{$shop.name} Nombre de la tienda
{$shop.email} Correo electrónico de la tienda
{$shop.logo} Logotipo de la tienda
{$shop.favicon} Icono de tienda (mapa, título de la ventana del navegador, etc.)
{$shop.address.address1} Dirección de la tienda 1
{$shop.address.address2} Dirección de la tienda 2
{$shop.address.postcode} Código postal de la tienda
{$shop.address.city} Ciudad de la tienda
{$shop.address.state} Estado de la tienda (provincia)
{$shop.address.country} País de la tienda
{$shop.phone} Tienda Teléfono
{$shop.fax} Almacenar fax

Variables Smarty de Idioma Prestashop

Para manejar el idioma en Prestashop puedes echarle mano a estas 5 variables que quizá utilizaras en tu proyecto.

{$language.name} Nombre del idioma en uso (ejemplo: inglés)
{$language.iso_code} Código ISO del idioma en uso (it para italiano, fr para francés, etc.)
{$language.language_code} Código del idioma en uso (it para italiano, en-us para inglés americano, etc.)
{$language.is_rtl} (1 cuando el idioma se escribe de derecha a izquierda; 0 si se escribe de izquierda a derecha)
{$language.id} Valor de ID del idioma en uso

Manejando variables de Divisa

Por defecto, la moneda en este CMS está en dólares americanos y para gestionar este tema te dejare estas variables Smarty para que lo personalices.

{$currency.name} Nombre de la moneda en uso (euro, dólar americano, etc.)
{$currency.iso_code} Moneda Código ISO de la moneda en uso (Eur, USD, etc.)
{$currency.sign} Símbolo de la moneda en uso (€, $, etc.)
{$currency.iso_code_num} Número de código ISO de la moneda en uso (978 para euros, 840 para dólares americanos, etc.)

Páginas y elementos del sitio de comercio electrónico.

Manejar otros datos generales de la tienda como ser la URL BASE o la URL de las imágenes podemos usar estas variables para personalizar nuestros módulos o themes de este famoso CMS.

{$urls.base_url} Dirección web de la tienda (ejemplo: https://www.midominio.com)
{$urls.current_url} Dirección web actual (url), la página que estamos viendo
{$urls.shop_domain_url} Dominio de la tienda
{$urls.img_ps_url} URL del directorio raíz de la imagen
{$urls.img_cat_url} URL del directorio de imágenes de categorías
{$urls.img_lang_url} URL del directorio de imágenes de idiomas
{$urls.img_prod_url} URL del directorio de imágenes de productos
{$urls.img_manu_url} URL del directorio de imágenes de fabricantes
{$urls.img_sup_url} URL del directorio de imágenes de proveedores
{$urls.img_ship_url} URL del directorio de imágenes de los transportistas
{$urls.img_store_url} URL del directorio de imágenes de la tienda física
{$urls.img_url} URL del directorio de imágenes del tema
{$urls.css_url} Url del directorio de archivos css utilizado por el tema
{$urls.js_url} URL del directorio de archivos javascript utilizado por el tema
{$urls.pic_url} URL del directorio cargado del archivo
{$page.page_name} Nombre de la página (plantilla de archivo)
{$page.meta.title} Título de la página (SEO)
{$page.meta.description} Contenido de la descripción de la etiqueta (SEO)
{$page.meta.keywords} Etiquetar contenido de palabras clave (SEO)
{$page.meta.robots} Regla para motores de búsqueda: bloquea o no la indexación de páginas (SEO)
{$page.canonical} Indica la URL canónica (principal) para evitar duplicidad de contenidos (SEO)
{$urls.pages.address} Url de la sección "Mi dirección" (usuario registrado)
{$urls.pages.addresses} Url de la sección "Mis direcciones" (usuario registrado)
{$urls.pages.authentication} URL de la página de autenticación
{$urls.pages.cart} URL de la página del carrito (resumen del pedido)
{$urls.pages.category} URL de la categoría
{$urls.pages.cms} URL de la página (tipo CMS)
{$urls.pages.contact} URL de la página de contacto
{$urls.pages.discount} URL de la página del cupón de descuento
{$urls.pages.guest_tracking} URL de seguimiento para clientes no registrados
{$urls.pages.history} URL de la página "Historial de pedidos" (usuario registrado)
{$urls.pages.identity} Url de la página "Datos personales" (usuario registrado)
{$urls.pages.index} URL de la página de inicio
{$urls.pages.my_account} URL de la página "Mi cuenta" (usuario registrado)
{$urls.pages.order_confirmation} Url de la página "Confirmación de pedido"
{$urls.pages.order_follow} Url en el "Seguimiento de pedidos" (usuario registrado)
{$urls.pages.order} URL de la página "Pedido"
{$urls.pages.order_return} URL de la página "Devolución de pedido"
{$urls.pages.order_slip} Url de la página "Comprobante de pedido"
{$urls.pages.pagenotfound} Url del "404 - Página no encontrada"
{$urls.pages.password} URL de la página "Recuperar contraseña"
{$urls.pages.pdf_invoice} Url de factura en PDF
{$urls.pages.pdf_order_return} URL de devolución de pedido en PDF
{$urls.pages.pdf_order_slip} URL del comprobante de pedido en PDF
{$urls.pages.prices_drop} URL de la página "Nuestras ofertas"
{$urls.pages.product} URL de la página "Producto"
{$urls.pages.search} Url de la página "Buscar"
{$urls.pages.sitemap} URL de la página "Mapa del sitio"
{$urls.pages.stores} URL de la página "Tiendas/Nuestras tiendas"
{$urls.pages.supplier} URL de la página "Proveedores"
{$urls.pages.register} URL de la página "Registrarse"
{$urls.pages.order_login} URL de la página "Iniciar sesión"
{$urls.theme_assets} Url del directorio "assets" del tema
{$urls.actions.logout} Url para desconectarse del sitio (usuario registrado)

Variables Smarty de Carrito de compras Prestashop

Para personalizar nuestro carrito de compras tenemos estas 11 variables que puedes utilizar.

{$cart.totals.total.amount}La cantidad total del carrito sin moneda (ej: 45,00)
{$cart.totals.total.value} El importe total del carrito con moneda (ej: 45,00 €)
{$cart.totals.total_incluidos_impuestos.cantidad} El importe total del carrito, impuestos incluidos, sin moneda (ej: 45,00)
{$cart.totals.total_incluidos_impuestos.valor} El importe total del carrito, impuestos incluidos, con moneda (por ejemplo, 45,00 €)
{$cart.totals.total_excluyendo_tax.amount} El importe total del carrito, sin incluir impuestos, sin moneda (esempio: 35,70)
{$cart.totals.total_exclusive_tax.value} El importe total del carrito, sin impuestos, con moneda (esempio: 35,70 €)
{$cart.products_count} Número de productos en el carrito
{$cart.subtotals.products.amount} La cantidad de productos en el carrito sin moneda
{$cart.subtotals.products.value} La cantidad de productos en el carrito con moneda
{$cart.subtotals.shipping.amount} La cantidad de envío en el carrito sin moneda
{$cart.subtotals.shipping.value} La cantidad de envío en el carrito con moneda

Área de clientes: Variables Smarty

En los ficheros TPL de Prestashop puedes utilizar estas variables para gestionar los datos de nuestros clientes en la tienda online.

{$cliente.apellido} Apellido del cliente
{$customer.firstname} Nombre del cliente
{$customer.email} Correo electrónico del cliente (proporcionado durante el registro)
{$cliente.cumpleaños} Cumpleaños del cliente
{$customer.newsletter} Suscrito al boletín (1 si está suscrito, 0 si no está suscrito)
{$customer.newsletter_date_add} Fecha de suscripción al boletín
{$customer.ip_registration_newsletter} IP de Clientes en el registro del boletín
{$customer.optin} Suscrito a ofertas de socios (1 si está suscrito, 0 si no está suscrito)
{$customer.date_add} Registro de clientes
{$customer.date_upd} Última actualización (registro de cliente)
{$cliente.id} ID de cliente
{$customer.id_default_group} Grupo de ID al que está asociado el cliente
{$customer.is_logged} Comprobar si el cliente está "registrado" (1 sí, 0 no)
{$customer.gender.name[$customer.gender.id]} Género del cliente (ejemplo: Sra., Sr., etc.)
{$customer.addresses[AddressID].city} Cliente Ciudad de la dirección con un ID (AddressID, ejemplo 8, donde 8 es el ID de la dirección del cliente), porque un cliente podría tener varias direcciones)
{$customer.addresses[AddressID].alias} Alias ​​de dirección
{$customer.addresses[AddressID].firstname} Nombre del titular de la dirección
{$cliente.direcciones[AddressID].apellido} Apellido del titular de la dirección
{$customer.addresses[AddressID].company} Dirección Empresa titular
{$customer.addresses[AddressID].address1} Dirección del titular de la dirección 1
{$customer.addresses[AddressID].address2} Dirección del titular de la dirección 2
{$customer.addresses[AddressID].postcode} Dirección Titular Código postal
{$customer.addresses[AddressID].id_state} Estado del ID del titular de la dirección
{$customer.addresses[AddressID].state} Nombre del estado del titular de la dirección
{$customer.addresses[AddressID].state_iso} Código ISO del estado del titular de la dirección
{$customer.addresses[AddressID].id_country} ID del titular de la dirección país
{$customer.addresses[AddressID].country} Nombre del país del titular de la dirección
{$customer.addresses[AddressID].country_iso} País del titular de la dirección ISO
{$customer.addresses[AddressID].phone} Dirección Teléfono del titular
{$customer.addresses[AddressID].phone_mobile} Teléfono móvil del titular de la dirección
{$cliente.direcciones[AddressID].dni} Dirección Titular DNI
{$customer.addresses[AddressID].vat_number} Número de IVA del titular de la dirección
{$customer.addresses[AddressID].formatted} Dirección Dirección con formato del titular

Condicionales: Variables Smarty

Ahora, con las variables inteligentes utilizadas por Prestashop, puede mostrar un elemento en función de una condición o no.

1.- Página de inicio: condicional

Por ejemplo:

Mostrar un elemento si la página activa está en la página de inicio

{if $page.page_name == 'index'}
content to show
{/if}

2.- Página CMS

Mostramos un elemento si la página que está viendo es una página de contenido (CMS)

{if $page.page_name == 'cms'}
content to show
{/if}

3.- Página actual en carrito de compras

Mostrar un artículo si la página que está viendo es la página del carrito por parte del cliente

{if $page.page_name == 'cart'}
content to show
{/if}

4.- Al iniciar sesión

Si el usuario se ha logueado mostrara un elemento si el usuario ha iniciado sesión (login) en Prestashop

{if $customer.is_logged}
content to show
{/if}

5.- Mensaje personalizado por usuario logueado

Esta condicional mostrara un mensaje de bienvenida traducible y el nombre si el usuario ha iniciado sesión en la plataforma de comercio electrónico.

{if $customer.is_logged && $customer.firstname}
{l s='Hi' d='Shop.Theme.Global'} {$customer.firstname}
{/if}

6.- Condicional Smarty en boletín (Newsletter)

Simplemente mostrara un mensaje traducible dependiendo de si el usuario está registrado o no a la Newsletter

{if $customer.newsletter == 0}
{l s='Sign up to our newsletter!' d='Shop.Theme.Customeraccount'}
{else}
{l s='You are already subscribed to our newsletter' d='Shop.Theme.Customeraccount'}
{/if}

Otras variables Smarty en Prestashop muy útiles que puedes usar tanto en plantillas como en módulos.

{$subcategory.id_image|@print_r} ==> Print an array

{$page|@print_r} ==> Print page array

{if $subcategory.id_image neq it-default1} {else} {/if} ==> Check if subcategory has image

{$urls.base_url} ==> Prestashop site baseUrl

{$urls.base_url} ==> Store address

{$urls.current_url} ==> Current address (url) where we are

{$urls.shop_domain_url} ==> Store domain

{$urls.img_ps_url} ==> Image root directory url

{$urls.img_cat_url} ==> Url directory of images of the categories

{$urls.img_lang_url} ==> Url of the language images directory

{$urls.img_prod_url} ==> Url of the product images directory

{$urls.img_manu_url} ==> Url directory of manufacturers images

{$urls.img_sup_url} ==> Url of the providers directory

{$urls.img_ship_url} ==> Url directory of images of carriers

{$urls.img_url} ==> Url of the image directory of the template

{$urls.css_url} ==> Template URL directory url

{$urls.js_url} ==> Template JS directory url

{$urls.pic_url} ==> Url file directory uploaded

{$urls.pages.address} ==> Url from the "My Address" section

{$urls.pages.addresses} ==> Url from the "My addresses" section

{$urls.pages.authentication} ==> Url section of the authentication page

{$urls.pages.cart} ==> Cart section url (order summary)

{$urls.pages.category} ==> Url section of categories

{$urls.pages.cms} ==> Url of the content section

{$urls.pages.contact} ==> Url section of the contact form

{$urls.pages.discount} ==> Url of the discount voucher section

{$urls.pages.guest_tracking} ==> Tracking url for unregistered clients

{$urls.pages.history} ==> Url from the order history section

{$urls.pages.identity} ==> Url of the section "Personal data"

{$urls.pages.index} ==> Page url

{$urls.pages.my_account} ==> Url section of my account

{$urls.pages.order_confirmation} ==> Url section of the order confirmation page.

{$urls.pages.order_follow} ==> Url in the "Order Tracking"

{$urls.pages.pagenotfound} ==> Url of section "404 (Page not found)"

{$urls.pages.password} ==> Url of the section "Recover Password"

{$urls.pages.prices_drop} ==> Url section we lowered prices / products discount / discounts

{$urls.pages.product} ==> Product tab url

{$urls.pages.search} ==> Url of the searcher section

{$urls.pages.sitemap} ==> Site Map section url

{$urls.pages.stores} ==> Url of the section "Shops / Our stores"

{$urls.pages.supplier} ==> Url from the providers section

{$urls.pages.register} ==> Url log page

{$urls.theme_assets} ==> Url of the "assets" directory of the template / themes / template / assets /

{$urls.actions.logout} ==> Url to close section in the store

{$cart} ==> Information about cart. Read entries below for more informations

{$cart->id} ==> ID of customer cart

{$cart->id_shop_group} ==> ID of shop group (multistore feature)

{$cart->id_shop} ==> ID of shop (multistore feature)

{$cart->id_address_delivery} ==> ID of customer address delivery (only if order was made)

{$cart->id_address_invoice} ==> ID of customer address invoice (only if order was made)

{$cart->id_currency} ==> ID of cart currency

{$cart->id_customer} ==> ID of customer for which cart belongs (only if customer is logged)

{$cart->id_guest} ==> ID of shop guest

{$cart->id_lang} ==> ID of cart language

{$cart->recycable} ==> Bool value if recycable checked for this cart

{$cart->gift} ==> Bool value if gift checed for this cart

{$cart->gift_message} ==> Gift message

{$cart->mobile_theme} ==> Bool value if cart was created on mobile device

{$cart->date_add} ==> Date of cart creation

{$cart->date_upd} ==> Date of cart update

{$cart->id_carrier} ==> Id of cart carrier (if selected)

{$cart->checkedTos} ==> Bool value if terms of service is checked

{$img_cat_dir} ==> URL for the directory with categories images

{$img_ps_dir} ==> URL for the directory with PrestaShop image

{$img_lang_dir} ==> URL for the directory with languages images

{$img_sup_dir} ==> URL for the directory with suppliers images

{$img_ship_dir} ==> URL for the directory with carriers images

{$img_prod_dir} ==> URL for the directory with products images

{$img_manu_dir} ==> URL for the directory with manufacturers images

{$img_dir} ==> URL for the directory with theme’s images

{$css_dir} ==> URL for the directory with theme’s CSS

{$modules_dir} ==> URL for the directory with modules

{$mail_dir} ==> URL for the directory with mail templates

{$js_dir} ==> URL for the directory with theme’s JavaScript

{$tpl_dir} ==> URL for the directory with current theme's

{$pic_dir} ==> URL for the directory with uploaded pictures

{$lang_iso} ==> ISO code for the current language

{$cart_qties} ==>Number of products in the cart

{$come_from} ==> URL for the visitor’s origin

{$shop_name} ==> Shop name

{$currency} ==> Currency object (currently used currency).

{$currencies} ==> The various available currencies

{$id_currency_cookie} ==> ID of the current currency

{$cookie} ==> User cookie

{$languages} ==> The various available languages

{$priceDisplay} ==> Price display method (with or without taxes…)

{$roundMode} ==> Rounding method in use

{$logged} ==> Indicates whether the visitor is logged to a customer account

{$page_name} ==> Page name

{$customerName} ==> Client name (if logged in)

{$use_taxes} ==> Indicates whether taxes are enabled or not

Resumen

En este articulo hemos aprendido a conocer las variables Smarty de diferentes categorías que se puede usar en nuestra tienda. Sin embargo, se puede agregar etiquetas HTML

Además, vimos el uso de condicionales para mostrar o no una determinada información, esta puede ser una consulta SQL desde MySQL o algún mensaje estático.

También se pueden crear variables por consiguiente ese tema lo abordaremos en otro articulo

Nestor Tapia

Bloggero, amante de la programación PHP, innovador y me fascina compartir información. Desde que conocí el entorno informatico y el internet me llamó la atención la programación, Por tal motivo he creado mi blog BAULPHP.COM para compartir mis experiencias con todos ustedes. ¡Gracias por leerme!.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba