Saltar al contenido principal

Configuración Multi-tienda y Multi-idioma

Order Payment Reminders Pro almacena el contenido de los recordatorios, las variables personalizadas y las plantillas de correo por separado para cada tienda y cada idioma, de modo que sus clientes siempre reciban un recordatorio redactado en su propio idioma desde la tienda correcta.

nota

Disponible desde v1.0.0

Descripción general

Cada mensaje de recordatorio que crea tiene un asunto y un cuerpo para cada idioma activo en su instalación de PrestaShop. Cuando se ejecuta el cron diario, busca el idioma que el cliente usó en el momento de la compra y envía la versión correspondiente del mensaje. Si no existe ninguna traducción para ese idioma, el recordatorio se omite para ese pedido — por lo que es importante completar todos los idiomas activos antes de activarlo en producción.

Las variables personalizadas siguen el mismo patrón por tienda: una variable llamada {bank_details} en su tienda española puede contener un contenido diferente al de la misma variable en su tienda francesa. Esto permite que cada tienda incluya sus propios números de cuenta bancaria, direcciones de contacto u otro texto específico de la tienda sin necesidad de crear mensajes de recordatorio separados.

Los ajustes globales — como el modo de prueba, las reglas de cancelación automática, la clave de seguridad del cron y la plantilla HTML del correo — se comparten entre todas las tiendas de su instalación. Se configuran una sola vez y se aplican en todas partes.

El contexto de tienda en el que se encuentra cuando abre la página de configuración del módulo determina qué datos de tienda ve y edita. Trabajar en el contexto de tienda incorrecto es la fuente de confusión más habitual en las configuraciones multi-tienda.

Configuración

Cambiar al contexto de tienda correcto

Antes de configurar mensajes o variables para una tienda concreta, asegúrese de estar en el contexto de esa tienda:

  1. Inicie sesión en su Back Office.
  2. Use el selector de tienda en la barra superior (el desplegable etiquetado con el nombre de su tienda o "Todas las tiendas").
  3. Seleccione la tienda específica que desea configurar — no un grupo de tiendas ni Todas las tiendas.
  4. Vaya a Módulos > Gestor de módulos y haga clic en Configurar en Order Payment Reminders Pro.

Los mensajes de recordatorio que cree o edite, y las variables personalizadas que añada, se almacenan vinculados a la tienda que está activa al guardar. Si está en el contexto "Todas las tiendas", el contenido del mensaje se escribe en todas las tiendas del grupo de tiendas actual. Compruebe siempre el selector de tienda antes de guardar.

Traducir un mensaje de recordatorio

Cada formulario de mensaje de recordatorio contiene una barra de pestañas de idioma encima de los campos Asunto y Mensaje. Al hacer clic en la bandera o el nombre de un idioma, el campo cambia a ese idioma sin perder el contenido ya introducido para otros idiomas.

  1. Abra la página de configuración del módulo en el contexto de tienda correcto.
  2. Haga clic en Añadir nuevo mensaje o haga clic en el icono Editar de un recordatorio existente.
  3. El formulario se abre con el idioma predeterminado del Back Office seleccionado.
  4. Rellene el Asunto y el Mensaje para ese idioma.
  5. Haga clic en una pestaña de idioma diferente — por ejemplo, ES para español.
  6. Rellene el Asunto y el Mensaje en español.
  7. Repita el proceso para cada uno de los demás idiomas activos que aparecen en la barra de pestañas.
  8. Haga clic en Guardar.

El módulo requiere un asunto y un cuerpo de mensaje no vacíos para cada idioma activo. Si deja alguno de esos campos en blanco para un idioma activo, el guardado queda bloqueado con el error: "No se puede guardar. El asunto del correo para [idioma] está vacío." Los idiomas inactivos pueden tener contenido en blanco.

Traducir la plantilla de correo

La envoltura HTML del correo — el diseño exterior que rodea cada mensaje — también es por idioma y se configura en la pestaña Plantilla de correo del panel de configuración.

  1. Vaya a Módulos > Gestor de módulos > Order Payment Reminders Pro > Configurar.
  2. Haga clic en la pestaña Plantilla de correo.
  3. Aparece una barra de pestañas de idioma encima del área del editor. Seleccione la primera pestaña de idioma y edite la plantilla.
  4. Cambie a cada pestaña de idioma adicional y proporcione la envoltura traducida.
  5. Haga clic en Guardar.

La plantilla se guarda como un archivo HTML en disco en mails/{iso_code}/wiretransferreminder.html — por ejemplo, mails/en/wiretransferreminder.html para inglés y mails/es/wiretransferreminder.html para español.

Mantenga siempre los marcadores de posición {wr_title} y {wr_message} en cada versión de idioma de la plantilla. Si los elimina, el asunto y el cuerpo del recordatorio desaparecerán del correo enviado.

Configurar variables personalizadas por tienda

Las variables personalizadas se almacenan con el ID de tienda, por lo que cada tienda mantiene su propio conjunto. Para configurar variables por tienda:

  1. Confirme que el selector de tienda muestra la tienda correcta.
  2. Vaya a la sección Variables personalizadas de la configuración del módulo.
  3. Añada o edite las variables. Cada guardado escribe en la tienda activa en ese momento.
  4. Cambie a una tienda diferente en el selector de tienda y repita el proceso para las variables que difieran entre tiendas.

Si dos tiendas comparten valores de variable idénticos, igualmente deberá añadir la variable por separado en cada tienda. Las variables nunca se copian automáticamente entre tiendas.

Ajustes: globales frente a por tienda

AjusteClave de configuraciónÁmbitoNotas
Clave de seguridad del cronwr_cron_keyGlobalUna sola clave para toda la instalación. Al cambiarla se invalidan todas las URLs de cron existentes en todas las tiendas.
Caché del directorio de administraciónwr_admin_dirGlobalSe almacena en caché automáticamente. La utiliza el controlador de cron para generar URLs correctas del Back Office en el contexto del cron.
Cancelar pedidoswr_cancel_ordersGlobalActiva o desactiva la función de cancelación automática para todas las tiendas.
Cancelar después de N díaswr_cancel_daysGlobalEl número de días antes de que un pedido no pagado sea cancelado. Se aplica a todas las tiendas.
Modo de prueba activado/desactivadowr_test_modeGlobalActivar el modo de prueba afecta a todas las tiendas. Desactívelo antes de pasar a producción.
Salida del modo de pruebawr_test_mode_outputGlobalIndica si la salida de prueba se muestra en pantalla.
Dirección de correo de pruebawr_test_emailGlobalRecibe todos los correos de prueba independientemente de la tienda a la que pertenezca el pedido.
Resumen de administración activado/desactivadowr_admin_digestGlobalLa función de resumen de administración es global — un ajuste cubre todas las tiendas.
Correo del resumen de administraciónwr_admin_digest_emailGlobalLa dirección de destino para el resumen diario.
Horas del resumen de administraciónwr_admin_digest_hoursGlobalHoras antes de la cancelación en las que un pedido se incluye en el resumen.
Último envío del resumen de administraciónwr_admin_digest_last_sentGlobalMarca de tiempo de limitación. Se actualiza globalmente cuando se envía cualquier resumen.
Indicador del asistente de configuraciónwr_firstPor tiendaIndica si el asistente de configuración se ha completado para esta tienda específica.
HTML de la plantilla de correowr_email_templateGlobal (archivo en disco)Se almacena como un archivo por código ISO de idioma, compartido por todas las tiendas en el mismo servidor.
Lista de módulos de pagowr_payment_modulesGlobalLos métodos de pago que desencadenan recordatorios. Cambiar esto afecta a todas las tiendas.
Programación y tipo de recordatorioTabla wrCompartido entre tiendasLas reglas de temporización (días/horas, módulo de pago, indicador de cancelación) se almacenan una sola vez y se aplican a todas las tiendas.
Asunto y cuerpo del recordatorioTabla wr_langPor tienda + por idiomaEl contenido se almacena por (id_wr, id_lang, id_shop). Cada combinación de tienda e idioma tiene su propia copia.
Variables personalizadasTabla wr_variablesPor tiendaEl nombre, tipo y valor de la variable se almacenan cada uno con id_shop.

La estructura del recordatorio — cuándo se activa, qué método de pago, si cancela el pedido — se comparte entre todas las tiendas. Lo que difiere por tienda es el contenido del mensaje: lo que el correo dice realmente en cada idioma. Tenga en cuenta esta distinción al planificar su secuencia de recordatorios.

Cómo funciona

Cómo se envían los correos en una configuración multi-tienda

Cuando se ejecuta el cron, obtiene los pedidos pendientes y lee las columnas id_shop e id_lang de cada pedido. El correo se envía usando el ID de esa tienda, de modo que PrestaShop utilice la dirección de remitente, el nombre de tienda y el logotipo correctos para esa tienda.

El contenido del mensaje (asunto y cuerpo) se recupera de la tabla wr_lang donde id_wr, id_lang e id_shop coinciden con el pedido. Si no existe ninguna fila para la combinación de idioma y tienda del pedido, el recordatorio se omite para ese pedido.

Los archivos de plantilla de correo se comparten en disco

El archivo de plantilla utilizado para un correo determinado es siempre mails/{iso_code}/wiretransferreminder.html en el servidor. Dado que estos archivos se almacenan en disco y no en la base de datos, todas las tiendas de la misma instalación de PrestaShop comparten los mismos archivos de plantilla. Editar la plantilla en cualquier contexto de tienda sobrescribe el archivo para todas las tiendas.

Un único cron cubre todas las tiendas

No necesita un cron separado para cada tienda. La URL de cron única procesa los pedidos pendientes de todas las tiendas de la instalación. La clave de cron es global, por lo que una sola URL funciona para toda la configuración.

Comportamiento de reserva de idioma

No existe ninguna reserva automática al idioma predeterminado. Si un cliente realiza un pedido en un idioma para el que no ha proporcionado ninguna traducción, ese recordatorio simplemente no se envía para ese pedido. Esto es intencionado — un correo sin traducir podría confundir al cliente más que no recibir nada.

Ejemplos de uso

Ejemplo: Dos tiendas con datos bancarios diferentes

Gestiona una tienda española y una tienda francesa. Ambas aceptan pagos por transferencia bancaria. Quiere que cada recordatorio incluya la cuenta bancaria correcta para cada país.

  1. Cambie a la tienda española en el selector de tienda.
  2. Vaya a Variables personalizadas y añada una variable llamada bank_details con el texto de la cuenta bancaria española.
  3. Cambie a la tienda francesa.
  4. Añada el mismo nombre de variable bank_details con el texto de la cuenta bancaria francesa.
  5. En el cuerpo del mensaje de recordatorio de cada tienda, incluya {bank_details} donde quiera que aparezca la información bancaria.

Cada tienda envía correos con sus propios datos bancarios sin necesidad de crear mensajes de recordatorio separados.

Ejemplo: Tres idiomas, una sola tienda

Su tienda única atiende a clientes en inglés, alemán y español. Los tres idiomas están activos en PrestaShop.

  1. Abra el formulario de edición del mensaje de recordatorio.
  2. Escriba el asunto y el cuerpo en inglés bajo la pestaña EN.
  3. Haga clic en la pestaña DE y escriba la versión en alemán.
  4. Haga clic en la pestaña ES y escriba la versión en español.
  5. Haga clic en Guardar.

Cuando llega un pedido, el cron envía el correo en el idioma que el cliente usó en el momento de la compra. Un cliente que realizó la compra en alemán recibe automáticamente la versión en alemán.

Ejemplo: Actualizar todas las tiendas de un grupo a la vez

Si necesita aplicar el mismo contenido de recordatorio a todas las tiendas de un grupo — por ejemplo, tras un cambio de política que afecta a todos los establecimientos — puede usar el contexto de grupo:

  1. Cambie el selector de tienda al grupo de tiendas (no Todas las tiendas ni una tienda individual).
  2. Abra la configuración del módulo y edite el mensaje de recordatorio.
  3. Guarde. El contenido se escribe en todas las tiendas de ese grupo.

Utilice esta opción con cuidado. Las traducciones específicas de tienda ya guardadas para las tiendas individuales del grupo serán sobreescritas.

Notas importantes

  • Las reglas de temporización de los recordatorios — los campos de la tabla wr para la programación, el módulo de pago y el indicador de cancelación — no son por tienda. Un recordatorio configurado para activarse después de 3 días se activa para todas las tiendas con la misma programación.
  • Si un idioma está activo en PrestaShop, debe proporcionar un asunto y un cuerpo no vacíos para ese idioma en cada mensaje de recordatorio. No existe reserva automática al idioma predeterminado.
  • La URL de cron y la clave de seguridad son globales. Un único cron procesa todas las tiendas — no necesita varios cron jobs.
  • El correo de resumen de administración se envía en el idioma predeterminado del contexto de tienda en el momento en que se ejecuta el cron, basándose en PS_LANG_DEFAULT.
  • En una instalación de una sola tienda, todo funciona como por tienda y la distinción multi-tienda no se aplica en la práctica.

Resolución de problemas

ProblemaSolución
Los clientes de una tienda reciben recordatorios, pero los de otra tienda noCompruebe que los mensajes de recordatorio tienen el asunto y el cuerpo rellenados para todos los idiomas activos en la segunda tienda. Abra el módulo en el contexto de esa tienda e inspeccione las pestañas de idioma de cada recordatorio.
Al guardar un recordatorio aparece el error "El asunto del correo para [idioma] está vacío"Todos los idiomas activos deben tener un asunto. Cambie a la pestaña del idioma indicado e introduzca el texto del asunto. Si no necesita ese idioma, desactívelo en PrestaShop en Internacional > Traducciones > Idiomas — este es un cambio a nivel de tienda y afecta a más cosas que solo a este módulo.
La variable personalizada {my_var} aparece en blanco en los correos de una tiendaProbablemente la variable se creó en el contexto de otra tienda. Cambie a la tienda correcta en el selector, vaya a Variables personalizadas y confirme que la variable existe allí. Si no es así, añádala.
Todas las tiendas están enviando el diseño de plantilla de correo incorrectoLos archivos de plantilla HTML se comparten en disco. Editar la plantilla en cualquier contexto de tienda sobrescribe el archivo para todas las tiendas. Edite la plantilla de forma intencionada para el idioma específico que necesita cambiar.
Los cambios en los mensajes de recordatorio no aparecen para una tienda específicaEs posible que haya guardado mientras estaba en el contexto Todas las tiendas o en un grupo de tiendas. Abra el módulo específicamente en el contexto de la tienda individual, luego vuelva a editar y guardar el recordatorio.
El cron envía un recordatorio en inglés a un cliente francésEs posible que falte la fila wr_lang para ese recordatorio en francés en esa tienda, o que esté vacía. Edite el recordatorio, cambie a la pestaña del idioma francés, confirme que el contenido está ahí y vuelva a guardar.

Preguntas frecuentes

¿Necesito instalar el módulo por separado en cada tienda?

No. Instale el módulo una sola vez y estará disponible para todas las tiendas. El panel de configuración inicial registra la finalización por tienda mediante un indicador específico de tienda, por lo que verá la lista de verificación de configuración la primera vez que abra el módulo en una tienda que aún no ha sido configurada.

Si creo un nuevo mensaje de recordatorio, ¿aparece automáticamente en todas mis tiendas?

La regla de temporización se comparte entre tiendas, pero el contenido del mensaje (asunto y cuerpo) no. Después de crear el recordatorio, cambie a cada tienda en el selector de tienda y rellene el contenido traducido para esa tienda en las pestañas de idioma.

¿Puedo usar períodos de cancelación diferentes para tiendas distintas?

No. El ajuste de cancelación automática es global y aplica el mismo número de días a todas las tiendas. Si necesita diferentes plazos de cancelación por tienda, tendría que desactivar la cancelación automática globalmente y gestionar las cancelaciones de forma manual.

¿Qué ocurre si el idioma del pedido de un cliente no tiene traducción para un mensaje de recordatorio?

El correo no se envía para ese recordatorio. No existe reserva automática al idioma predeterminado — un correo sin traducir podría confundir al cliente más que no recibir nada. Rellene siempre todos los idiomas activos para evitar vacíos.

¿Cambiar el contexto de tienda afecta a la clave de cron?

No. La clave de cron se almacena globalmente y es la misma independientemente de la tienda que esté viendo. Una sola URL de cron funciona para toda la instalación.

¿Pueden diferentes tiendas tener distintos módulos de pago configurados para los recordatorios?

Por el momento, no. La lista de módulos de pago que desencadenan recordatorios es global, por lo que todas las tiendas comparten la misma lista. El filtrado se produce a nivel del contenido del mensaje — cada tienda puede tener contenido diferente — pero no a nivel del módulo de pago.

Tengo cuatro idiomas activos pero uno apenas se usa. ¿Aun así debo traducir todos los mensajes para él?

Sí, siempre que el idioma esté activo en PrestaShop. La solución más sencilla es copiar el contenido del idioma predeterminado en la pestaña del idioma poco utilizado — guardar una copia idéntica satisface la validación y garantiza que el cron no omita los pedidos realizados en ese idioma.

¿Los archivos de plantilla de correo (la envoltura HTML) se almacenan por tienda o globalmente?

Los archivos de plantilla se almacenan en disco, un archivo por código ISO de idioma (mails/en/wiretransferreminder.html, mails/es/wiretransferreminder.html, etc.). Dado que son archivos en un servidor compartido, editar la plantilla en cualquier contexto de tienda la cambia para todas las tiendas. Actualmente no se admiten diseños de envoltura diferentes por tienda a través del panel de configuración.

Funciones relacionadas