PS PrestaShop Intermedio

Precio por País, Tienda y Divisa: documentación

Crear reglas, entender el cálculo del precio, simular, recalcular, deshacer un recálculo y automatizar por cron.

Actualizado Versión del módulo 1.1.4

Precio por País, Tienda y Divisa aplica un coeficiente de margen y un redondeo psicológico por mercado, y escribe el resultado como precios específicos nativos de PrestaShop. Esta guía cubre la instalación, la creación de reglas, el cálculo del precio, la simulación, el recálculo, cómo deshacer un recálculo y la automatización por cron.

Instalación y actualización

El módulo es compatible con PrestaShop 8.0 a 9.x, en tienda única o multitienda.

  1. En el back office, abre Módulos > Gestor de módulos, haz clic en Subir un módulo y selecciona el archivo ZIP.
  2. El módulo crea sus tablas, una pestaña DF Multi Price bajo Catálogo y un token de cron.
  3. Abre la configuración del módulo para ajustar la aplicación automática, el tamaño de los lotes y obtener la URL del cron.

¿Vienes de la versión 1.0.0? Recalcula tus reglas tras la actualización, sobre todo las ligadas a una divisa distinta de la divisa por defecto: la 1.0.0 guardaba esos precios en la divisa equivocada. Las reglas existentes mantienen su comportamiento, con «Fijar precio por combinación» y «Conservar las promociones activas» desactivadas. Actívalas en cada regla si lo necesitas.

Crear una regla de precio

Abre Catálogo > DF Multi Price y haz clic en Añadir una regla. El formulario tiene cuatro bloques.

Quién ve este precio

  • Tienda: una tienda o todas. Con «Todas las tiendas», los precios base se leen de la tienda por defecto.
  • País: su IVA sirve para calcular el precio con impuestos redondeado. Un visitante sin dirección se asigna al país por defecto de la tienda, salvo si la geolocalización está activada, y cambiar de divisa no cambia su país. Una regla para otro país solo llega por tanto a los clientes con una dirección en ese país. Para una regla por divisa, deja «Todos los países».
  • Divisa: crea una regla por divisa para controlar la terminación en cada una. Con «Todas las divisas», el precio se expresa en la divisa por defecto y PrestaShop lo convierte para las demás, que pierden la terminación.
  • Grupo de clientes: para tarifas B2B. Los descuentos de grupo definidos en Clientes > Grupos se siguen aplicando encima.

Qué productos

  • Categoría: la categoría y todas sus subcategorías, o todo el catálogo.
  • Marca: limita la regla a una marca.
  • Productos excluidos: ID de productos separados por comas.
  • Conservar las promociones activas: consulta la sección dedicada más abajo.

Cómo se construye el precio

  • Base de precio: precio de venta sin impuestos o precio de coste. Con el precio de coste, los productos sin él se omiten.
  • Coeficiente de margen: precio = base x coeficiente. 1,20 añade un 20 %. Usa 1 para aplicar solo el redondeo.
  • Fijar precio por combinación: recomendado. Cada combinación recibe su propio precio, impacto incluido. Sin esta opción, PrestaShop suma el impacto de la combinación después del redondeo y la terminación se pierde.
  • Redondeo: terminación más cercana, siempre hacia arriba, siempre hacia abajo o sin redondeo.
  • Terminación psicológica: x,90, x,95, x,99, x,50 o x,00.
  • Paso de redondeo: redondea al múltiplo de un paso en lugar de una terminación. Pasos disponibles: 0,05, 0,10, 0,20, 0,25, 0,50, 1, 5 y 10. El sentido sigue el campo Redondeo: con 0,10 y Terminación más cercana, 23,47 pasa a 23,50; con 10 y Siempre hacia arriba, 23,47 pasa a 30; con 10 y Siempre hacia abajo, a 20. Si se elige un paso, sustituye a la terminación. El precio nunca se redondea a cero: vale al menos un paso. «Ninguno» (por defecto) mantiene la terminación.
  • Redondear el precio con impuestos: recomendado en B2C. Desactívalo para tarifas B2B mostradas sin impuestos: el redondeo se aplica entonces al precio sin impuestos.

Salvaguardas

  • Precio mínimo: precio mostrado mínimo, en la divisa de la regla. 0 = sin mínimo.
  • Margen mínimo sobre el coste: coeficiente sobre el precio de coste por debajo del cual el precio nunca baja, por ejemplo 1,15. Se aplica a productos con precio de coste. 0 = desactivado.
  • Prioridad: los valores bajos se procesan primero. Si dos reglas apuntan a la misma tienda, país, divisa y grupo, la primera conserva el precio y la otra cuenta un conflicto.
  • Activa: desactivar una regla retira los precios que generó.

Cómo se calcula el precio final

El redondeo solo tiene sentido sobre el importe que ve el cliente. El motor sigue esta secuencia:

  1. Precio base sin impuestos (combinación incluida si la opción está activa) multiplicado por el coeficiente.
  2. Conversión a la divisa de la regla al tipo de cambio de la tienda.
  3. Paso a precio con impuestos con el IVA del país de la regla, más la ecotasa si está activada en PrestaShop.
  4. Redondeo a la terminación elegida, o al múltiplo del paso si hay un paso de redondeo definido.
  5. Precio mínimo y luego margen mínimo, ambos redondeados hacia arriba.
  6. Vuelta al precio sin impuestos, guardado en la divisa de la regla.

Ejemplo: un precio base de 69,99 € sin impuestos, un coeficiente de 1,20, un IVA del 19 % y una terminación x,99 dan 99,99 € con impuestos en la tienda.

PrestaShop lee un precio específico ligado a una divisa en esa divisa, sin conversión. Por eso el módulo lo guarda directamente en la divisa de la regla: una regla en libras esterlinas muestra el importe en libras calculado por la regla.

Comprobar un precio en la tienda

El panel Comprobar un precio en la tienda, encima de la lista de reglas, reproduce el cálculo de PrestaShop para un contexto concreto. Introduce un ID de producto, y un ID de combinación si hace falta, y elige la tienda, el país (por defecto el de la tienda), la divisa y el grupo (Visitante por defecto). El panel muestra:

  • el país al que se asignan los visitantes sin dirección y el estado de la geolocalización;
  • el precio mostrado, con o sin impuestos según el grupo;
  • el precio específico que usa PrestaShop y su origen: regla del módulo, precio introducido a mano o regla de precio de catálogo;
  • el estado de cada regla: aplicada, otro contexto (con la tienda, el país, la divisa o el grupo al que apunta), producto fuera de la regla, por recalcular, promoción conservada o anulada por otro precio específico.

La lista de reglas también muestra un aviso cuando una regla apunta a un país distinto del país por defecto de su tienda sin geolocalización, o cuando una regla «Todas las tiendas» cubre tiendas con países por defecto distintos.

Simular antes de aplicar

En la lista de reglas, la acción Simular abre una ventana que muestra, para los primeros productos afectados, el precio actual en tienda, el nuevo precio y la variación en porcentaje. No se guarda nada. Los productos que se dejan de lado aparecen con su motivo: promoción activa o sin precio base.

La acción Exportar vista previa CSV genera la lista completa (ID de producto, ID de combinación, referencia, nombre, precio actual, nuevo precio, precio almacenado sin impuestos, estado) en CSV separado por punto y coma, legible en Excel.

Recalcular

  • La acción Recalcular de una regla aplica esa regla al catálogo.
  • El botón Recalcular todas las reglas activas de la barra de herramientas encadena las reglas por orden de prioridad.

El proceso se hace por lotes con una barra de progreso y después un resumen:

  • Creados, Actualizados, Sin cambios: precios escritos por la regla.
  • Promociones conservadas: productos que no se tocan por estar en promoción.
  • Conflictos: precios que ya tiene una regla prioritaria con las mismas dimensiones.
  • Omitidos: productos sin precio base utilizable.
  • Retirados: precios eliminados o devueltos al comerciante, por ejemplo de un producto que salió del alcance de la regla.

Una regla modificada después de su último recálculo muestra el indicador Por recalcular en la lista. El tamaño de los lotes (10 a 500 productos) se ajusta en la configuración del módulo.

Deshacer un recálculo

Cada recálculo, manual o por cron, guarda el estado anterior de cada precio que modifica. Para volver atrás:

  • en la lista de reglas, usa la acción Deshacer el último recálculo;
  • o, en la configuración del módulo, haz clic en Deshacer en el historial.

Deshacer elimina los precios creados por el recálculo, devuelve su valor a los precios modificados y vuelve a crear los precios retirados. Funciona en orden inverso: primero el recálculo más reciente, luego el anterior, hasta 5 recálculos atrás por regla. Un recálculo interrumpido (ventana cerrada durante el proceso) se puede deshacer una hora después de su inicio.

Tras deshacer, la regla muestra Por recalcular, ya que los precios ya no corresponden a su configuración. Modifica la regla si es necesario, simula y recalcula.

La regla debe estar activa para deshacer su recálculo. Los recálculos hechos con la versión 1.0.0 o 1.1.0 no se pueden deshacer: la función está disponible a partir del primer recálculo hecho con la 1.1.1.

Promociones y precios manuales

PrestaShop aplica un único precio específico por producto: gana el más preciso. Un precio por país y divisa ocultaría por tanto una promoción más amplia. Con Conservar las promociones activas, un producto con un descuento activo (no creado por el módulo) no se toca y se recalcula en el primer recálculo tras el fin de la promoción. Programa el cron para que esto ocurra automáticamente.

Si ya existe un precio fijo manual con las mismas dimensiones que la regla, sin descuento ni fechas, la regla lo asume en lugar de crear un duplicado. Su valor original se conserva y se le devuelve al deshacer el recálculo, al desactivar o eliminar la regla, o al desinstalar el módulo. Las promociones y los precios con otras dimensiones nunca se modifican.

Automatizar con el cron

La URL del cron, protegida por un token, se muestra en la configuración del módulo:

https://tutienda.com/index.php?fc=module&module=dfmultiprice&controller=cron&token=TU_TOKEN

Añade &id_rule=3 para recalcular una sola regla. Programa la URL en tu alojamiento, por ejemplo cada noche: los precios siguen así las variaciones de los tipos de cambio y de los costes, y el fin de las promociones. El cron devuelve un resumen JSON por regla y cada ejecución se puede deshacer como un recálculo manual. Si el token se filtra, regéneralo en la configuración: la URL antigua deja de funcionar.

Aplicación automática

Si la opción está activada, crear o modificar un producto o una combinación aplica las reglas activas a ese producto. Útil para importaciones periódicas.

PrestaShop no ejecuta los hooks de un módulo para un empleado sin el permiso «Ver» sobre ese módulo. Mantén el cron como red de seguridad.

Historial

La configuración del módulo muestra los 20 últimos recálculos: fecha, regla, origen (manual o cron), estado, contadores y número de cambios registrados para deshacer.

Desactivación, eliminación y desinstalación

  • Desactivar o eliminar una regla retira los precios que generó y devuelve su valor a los precios manuales que había asumido.
  • Duplicar una regla crea una copia desactivada, lista para adaptarla a otro mercado.
  • La desinstalación retira todos los precios generados y devuelve su valor a los precios manuales asumidos.

Resolución de problemas

Un producto no se actualiza

Comprueba que está activo en la tienda de la regla, que pertenece a la categoría y la marca objetivo y que no está excluido. Lanza una simulación: el estado indica si está en promoción o sin precio base. Con la base «Precio de coste», necesita un precio de coste.

El precio mostrado no tiene la terminación correcta

Comprueba que «Redondear el precio con impuestos» está activado y que el país de la regla coincide con el del cliente. Para una combinación con impacto, activa «Fijar precio por combinación». En otra divisa distinta de la de la regla, PrestaShop convierte el precio: crea una regla para esa divisa.

El precio es correcto en euros pero no en otra divisa

La regla está en «Todas las divisas»: el precio se guarda en la divisa por defecto y PrestaShop lo convierte, por ejemplo 23,90 € en 27,84 $. La terminación no se conserva. El panel Comprobar un precio muestra entonces el mismo precio específico en ambas divisas. Crea una regla por divisa, con País en «Todos los países», y recalcula.

Una regla por país no se aplica a los visitantes

Los visitantes sin dirección se asignan al país por defecto de la tienda. Una regla para otro país solo se aplica a los clientes con una dirección en ese país, o a todos los visitantes de ese país si la geolocalización está activada (Internacional > Localización > Geolocalización).

La terminación falla en una sola tienda

En multitienda, el redondeo usa el IVA del país por defecto de la tienda a la que apunta la regla. Una regla «Todas las tiendas» se basa en la tienda por defecto: si tus tiendas no tienen el mismo país por defecto, crea una regla por tienda.

La terminación no aparece en el precio sin impuestos que ven los visitantes

Si el grupo Visitante muestra los precios sin impuestos, desactiva «Redondear el precio con impuestos»: la terminación se aplica entonces al precio sin impuestos que ven los visitantes.

El resumen muestra conflictos

Otra regla con la misma tienda, país, divisa y grupo ya tiene esos precios. Ajusta las prioridades o fusiona las dos reglas.

No aparece el botón Deshacer

Solo se puede deshacer el último recálculo de cada regla, siempre que se hiciera con la 1.1.1 y esté entre los 5 últimos. Un recálculo en curso desde hace menos de una hora aún no se puede deshacer.

El cron devuelve «Invalid token»

El token de la URL ya no coincide con el guardado. Obtén la URL actualizada en la configuración.

Aparece una etiqueta «-0,00 €» en algunos productos

No es un problema del tema. PrestaShop 8.1 y posteriores calculan el descuento mostrado restando el precio redondeado a 2 decimales del precio sin descuento, que conserva 6 decimales. Como el precio de una regla se guarda sin impuestos, al volver a sumar el IVA queda a veces una diferencia de 0,000001 con un IVA del 19, 21 o 23 %, que el tema muestra como un descuento de -0,00 €. Desde la versión 1.1.4 el módulo anula esa diferencia en sus propios precios: actualiza el módulo y vacía la caché en Parámetros avanzados > Rendimiento. No hace falta recalcular.

¿Te ha resultado útil esta página?

¿Sigues atascado? Contacta con soporte