Logo de islavisual
Isotipo de islavisual IslaVisual
imagen de sección

Ultima revisión 29/03/2013

Trucos y cosas que deberías saber sobre PrestaShop

PrestaShop es el software más utilizado en España para montar tiendas online y por ello me preguntan mucho a diario sobre él. Aquí os doy algunos consejos que debéis conocer para que vuestro trabajo con esta herramienta sea más fácil.

Saber en la página en la que estás

En las plantillas de smarty existe una variable de acceso global denominada $page_name que podemos utilizar para conocer en qué ventana nos encontramos.

{if $page_name == 'index'}
     <div class="index">
{else}
      <div class="secundaria">
{/if}

Variables útiles que siempre tienes que tener a mano

  • $base_dir { Directorio raíz de la tienda }
  • $base_dir_ssl { Directorio raiz utilizando el protocolo SSL }
  • $content_dir { La carpeta de los contenidos }
  • $img_ps_dir { La carpeta donde van las imagenes usualmente “/img/” }
  • $img_dir { Carpeta de imágenes pero a diferencia del anterior se refiere a la carpeta en la plantilla }
  • $css_dir { Carpeta de la plantilla donde van los archivos CSS }
  • $js_dir { Carpeta de la plantilla donde va el javascript }
  • $tpl_dir { La carpeta donde esta nuestra plantilla }
  • $modules_dir { La carpeta donde van los módulos }
  • $mail_dir { La carpeta donde están las plantillas de los correos  }
  • $lang_iso { Código ISO del idioma }
  • $come_from { ruta absoluta previa [absolute] }
  • $shop_name { Nombre de la tienda }
  • $cart_qties { Número total de productos }
  • $cart { Contenidos del carrito }
  • $currencies { Monedas disponibles }
  • $id_currency_cookie { Id de la moneda activa }
  • $currency { moneda activa }
  • $cookie { cookie activa }
  • $languages { muestra los lenguajes disponibles }
  • $logged { Reviza si el usuario esta logeado }
  • $page_name { Titulo de la página actual }
  • $customerName { Nombre del cliente [depende de la sesión] }
  • $priceDisplay { Configuración para mostrar el precio  [depende la moneda] }

Las provincias de España

Código SQL para que añadais automáticamente todas las provincias de España en PrestaShop. En el código siguiente suponemos que España tiene el country_id = 6 y que la zona asignada a este country_id es Europa que tiene el zone_id = 1. Comprobarlo antes de ejecutar las instrucciones SQL.

También suponemos que las Islas Canarias y las Baleares están asignadas a la zona de Europa aunque en otras páginas podéis encontrarlas asignadas a otras zonas personalizadas.

INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Álava", "ALA", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Albacete", "ALB", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Alicante", "ALC", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Almería", "ALM", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Asturias", "AST", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Ávila", "AVL", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Badajoz", "BDJ", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Islas Baleares", "BLS", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Barcelona", "BCN", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Burgos", "BUG", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Cáceres", "CCR", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Cádiz", "CAD", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Cantabria", "CNT", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Castellón", "CST", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Ceuta", "CET", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Ciudad Real", "CRE", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Córdoba", "COR", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Cuenca", "CUE", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Gerona", "GIR", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Granada", "GRA", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Guadalajara", "GUA", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Guipúzcoa", "GIZ", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Huelva", "HUV", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Huesca", "HUS", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Jaén", "JAN", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "La Coruña", "COR", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "La Rioja", "LRJ", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Las Palmas", "LPS", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "León", "LEO", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Lérida", "LER", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Lugo", "LUG", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Madrid", "MAD", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Málaga", "MAG", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Melilla", "MEL", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Murcia", "MUR", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Navarra", "NAV", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Orense", "ORE", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Palencia", "ESP", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Pontevedra", "PNT", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Salamanca", "SAL", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Santa Cruz de Tenerife", "STF", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Segovia", "SGV", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Sevilla", "SEV", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Soria", "SOR", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Tarragona", "TAR", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Teruel", "TER", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Toledo", "TOL", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Valencia", "VLN", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Valladolid", "VAL", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Vizcaya", "VIZ", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Zamora", "ZAM", 0, 1);
INSERT INTO ps_state (id_country, id_zone, name, iso_code, tax_behavior, active) VALUES (6, 1, "Zaragoza", "ZAG", 0, 1);

¿Cómo linkar páginas estáticas del CMS?

Se pueden enlazar páginas estáticas forma fácil:

{$link->getCMSLink($id_cms, $alias = NULL)}

O hacia categorías

{$link->getCategoryLink($id_category, $alias = NULL)}

Desactivar caché y forzar compilación (Panel de control)

Cuando nos ponemos a desarrollar bajo PrestaShop es recomendable desactivar el caché y forzar la compilación para que los cambios se realicen correctamente. Estas opciones harán que el sistema vaya más lento ya que cada vez que actualicemos PrestaShop tendrá que recompilar el theme desde cero. Pero, nos aseguraremos de que, en todo momento, estemos viendo la última versión del código.

Para hacer esto simplemente vamos a: Preferencias » Rendimiento


Revisar la traducción

Desde el BackEnd de PrestaShop, si pulsáis en en los iconos de las banderas podréis acceder a las traducciones y revisarlas porque en ellas podemos encontrar errores graves de traducción.

Sobre el autor

Imagen de Pablo Enrique Fernández Casado
Pablo Enrique Fernández Casado

CEO de IslaVisual, Manager, Full Stack Analyst Developer y formador por cuenta ajena con más de 25 años de experiencia en el campo de la programación y más de 10 en el campo del diseño, UX, usabilidad web y accesibilidad web. También es escritor y compositor de música, además de presentar múltiples soft kills como la escucha activa, el trabajo en equipo, la creatividad, la resiliencia o la capacidad de aprendizaje, entre otras.

Especializado en proveer soluciones integrales de bajo coste y actividades de consultoría de Usabilidad, Accesibilidad y Experiencia de Usuario (UX), además de ofrecer asesoramiento en SEO, optimización de sistemas y páginas web, entre otras habilidades.