Saltar al contenido

Modificar el Formato de Precio en PrestaShop 1.7 y 8 con Override

En la administración de PrestaShop, en Internacional > Localización y luego en la pestaña Monedas, puedes configurar cómo quieres que se muestre el precio en cada moneda dándole a editar cada una. Además, puedes cambiar el formato según el idioma, teniendo cuatro opciones.

opciones de moneda en Prestashop

Pero, ¿qué pasa si ninguna de las opciones se amolda a lo que necesitas?

En mi caso, necesitaba que no apareciera el separador de miles y que el precio se mostrara en el siguiente formato:

👉 1000,00 X (siendo X el símbolo de la moneda).

Además, la posición del símbolo siempre debía estar a la derecha.

Como PrestaShop no ofrecía esta opción de manera nativa, decidí crear un override para esta situación y compartirlo con vosotros.

📌 Consideraciones Antes de Modificar el Formato de Precio

Este método es útil solo si deseas un mismo formato para todas las monedas e idiomas.
Si necesitas formatos diferentes según el idioma o moneda, esta no es la mejor opción.
Ha sido probado en PrestaShop 1.7 y 8 y funciona correctamente.
Antes de modificar archivos del sistema, haz una copia de seguridad.

🚀 Pasos para Modificar el Formato de Precio con Override en PrestaShop

1️⃣ Crear un Override de la Clase Tools

Para cambiar el formato de los precios en toda la tienda, debemos crear un override en la clase Tools.

🔹 Ubicación: override/classes/Tools.php

Si el archivo Tools.php no existe en esa carpeta, créalo y añade el siguiente código:

<?php
class Tools extends ToolsCore
{
public static function displayPrice($price, $currency = null, $no_utf8 = false, Context $context = null)
{
if (!$currency) {
$context = Context::getContext();
$currency = $context->currency;
}

// Formatear el precio sin separador de miles y con coma como decimal
$formatted_price = number_format($price, 2, ',', '');

// Retornar el precio con el símbolo de la moneda a la derecha
return $formatted_price . ' ' . $currency->sign;
}
}

📌 ¿Qué hace este código?
Elimina el separador de miles.
Usa la coma como separador decimal.
Coloca el símbolo de la moneda a la derecha.
Aplica el cambio a todas las monedas de la tienda.

2️⃣ Limpiar la Caché para Aplicar los Cambios

Después de realizar estos cambios, PrestaShop necesita actualizar su caché para que el nuevo formato se aplique correctamente.

📍 Pasos para borrar la caché:

  1. Ve a Parámetros Avanzados > Rendimiento.
  2. Haz clic en Vaciar la caché.

❓ ¿Cuándo Usar esta Solución?

✔ Si necesitas un único formato de precio para todas las monedas e idiomas.
✔ Si los formatos predeterminados de PrestaShop no se adaptan a tu tienda.
✔ Si quieres un formato específico y constante en toda la tienda.

Si necesitas diferentes formatos según el idioma o la moneda, este método no es el adecuado, ya que sobrescribirá la configuración en todos los casos.

Conclusión

Modificar el formato del precio en PrestaShop puede ser necesario si los formatos predeterminados no cumplen con tus requisitos. Con este override, lograrás que los precios se muestren siempre de la forma “1000,00 €”, sin importar la moneda o el idioma.

Si tienes dudas o necesitas más personalización, déjalas en los comentarios. ¡Espero que este tutorial te haya sido útil! 🚀😊

Compartir este Articulo