Plantillas

Como configurar las plantillas

Actualizado esta semana

Índice

Preguntas Frecuentes

Introducción

En este artículo veremos cómo crear y editar las plantillas para nuestros emails de confirmación y/o facturas, entre otros. Por defecto, Golfmanager tiene predefinidas algunas plantillas que luego podrán ser editadas y personalizadas por el club.

Vamos a mostrarte que significan cada uno de estos campos para que seas capaz de personalizar estas plantillas en incluso crearlas desde cero. En caso de querer editar una plantilla ya existente, por tu seguridad, recomendamos realizar una copia de la misma y trabajar sobre esta.

Si necesitas crear cualquier tipo de plantilla (reservas, facturas, etc..) traducida a otro idioma, no te preocupes lo puedes hacer tu solo ya que no hace falta tener conocimientos de lenguaje HTML.

El proceso es muy sencillo, solo tienes que seguir estas instrucciones:

Consejos extra:

  • No te olvides de declarar correctamente todos los caracteres especiales usando códigos de entidad HTML para mejorar la experiencia de usuario.

  • Siempre crea plantillas nuevas a partir del botón Nuevo en vez de Copiar

Sección General

Sección: Menú Configuración > Configuración General > Plantillas

  • Tipo. En este campo seleccionaremos el tipo de plantilla. Los tipos existentes son:

    • Albarán. Se usará esta plantilla para tus órdenes de compra.

    • Cancelación de compra online. Se usará esta plantilla cuando un cliente cancele su venta a través de la página web.

    • Confirmación de compra online. Se usará esta plantilla cuando un cliente compre a través de la página web.

    • Enviar para pago online. Se usará esta plantilla cuando solicitemos el pago de una venta a un cliente via email.

    • Factura. Se usará esta plantilla para crear facturas. Puedes tener más de una plantilla y seleccionarlas manualmente al generar la factura.

    • Factura por email. Ahora, al enviar una factura por email a un cliente podrás elegir de entre una de tus plantillas con el texto por defecto, la firma, etc. ¡Ahorra tiempo con esta nueva funcionalidad!

    • Factura proforma. Se usará esta plantilla para crear facturas proforma. Puedes tener más de una plantilla y seleccionarlas manualmente al generar la factura proforma.

    • Factura recapitulativa. Se usará esta plantilla para crear facturas. Puedes tener más de una plantilla y seleccionarlas manualmente al generar la factura.

    • Reserva. Se mostrará esta plantilla al querer mandar una confirmación de reserva desde el plano de reservas. Puedes tener más de una plantilla.

  • Nombre. Le pondremos un nombre a esta plantilla, por ejemplo Confirmación de compra online.

  • Prioridad. Orden de envío, en caso de haber más de una plantilla del mismo tipo y de ser una tarea automática como "enviar un email de confirmación de compra online", se enviará la de la prioridad con el número más bajo.

  • Marcar HTML. Si está activado este campo, nuestra plantilla tiene formato HTML. Si vamos a mandar un texto plano, no hace falta marcar esta opción, pero recomendamos fuertemente crear unas plantillas que impacten positivamente a tu cliente.

  • De sistema. Este campo nos dice si la plantilla fue creada por el Sistema o no:

    • SI: por el Sistema:

      • No podréis guardar modificaciones.

      • Puede sufrir modificaciones internas por nuestros desarrolladores.

    • NO: por un Usuario.

      • Podréis guardar modificaciones.

      • No sufre modificaciones internas por nuestros desarrolladores.

      • Para plantillas personalizadas.

      NOTA: Si deseas tener una plantilla personalizada, recomendamos de crear una plantilla Nueva. NO usar el botón de Copiar.

  • Cuerpo. Aquí es donde editaremos nuestro HTML. Para editar el contenido de una plantilla en formato HTML, la mejor opción es copiarla y modificar la copiada. Si no sabes sobre HTML es recomendable utilizar un editor web o pedir ayuda a un desarrollador web. Por internet podemos encontrar muchos editores HTML, entre ellos uno sencillo y efectivo como https://html5-editor.net/.

    ATENCIÓN a mantener intacto los códigos de la plantilla que "pintan" información dinámica de una reserva o factura como por ejemplo <%= publicPath %><%= info.logo %>. Todas estas son fácilmente reconocibles porque empiezan por <% y acaban por %>.

NOTA. Puedes configurar para que el sistema envíe un email automático nada más hacer una reserva desde administración sin tener que mandar manualmente. Esta plantilla puede tener un código que, según sea una confirmación de reserva, actualización o cancelación, mande un texto u otro al cliente.

Consulta con el equipo técnico para recuperar este código en caso de haberlo perdido en alguna modificación.

Cómo traducir o modificar el texto/palabra de una plantilla existente

Sección: Menú Configuración > Configuración General > Plantillas

  1. Selecciona en el ID de la plantilla que se quiere traducir o modificar el texto o palabra

  2. Selecciona en el botón de Ver pantalla completa

  3. Selecciona con el ratón en cualquier parte del Cuerpo de la Plantilla

  4. Selecciona las teclas de tu teclado CTRL+F y se abrirá una ventana donde puedes escribir los conceptos o palabras que quieres modificar ("total" en el ejemplo adjunto)

  5. Una vez escrito el concepto o frase o palabra a modificar, encontrarás a la derecha el número de veces (4 veces en el ejemplo adjunto) que se encuentra ese concepto en la plantilla y seleccionando en las flechas, el sistema os indicará con un color distinto cada una de las repeticiones (repetición número 2 en el ejemplo adjunto).

  6. Reemplazar los conceptos o palabras de la plantilla original por las modificaciones correspondientes

  7. Selecciona en el botón de Guardar y Seguir

Plantilla Reservas: envío automático confirmación, modificación y cancelación

<% if (type == "confirmed") { %>

<h1 style="font-size: 2.4em; margin-bottom: 40px">

Thanks for your booking!

</h1>

<% } else if (type == "updated") { %>

<h1 style="font-size: 2.4em; margin-bottom: 40px">

Your reservation has been updated!

</h1>

<% } else if (type == "canceled") { %>

<h1 style="font-size: 2.4em; margin-bottom: 40px">

Your reservation has been canceled!

</h1>

<% } %>

Plantilla Reservas: añadir código QR

Sección: Menú Configuración > Configuración General > Plantillas

<%== runtime.exec("autocheckin.getQrLinksFromReservations", model.reservations, "text-decoration:none; color:#865bf4; font-weight:600;")?.replace(" ", "<br>") %>


Plantilla Confirmación compra online: añadir código QR

Sección: Menú Configuración > Configuración General > Plantillas

<% if (runtime.context.hasPlugin("autocheckin")) { %>

<%== runtime.exec("autocheckin.getQrLinks", model.sale, "text-decoration:none; color:#865bf4; font-weight:600;")?.replace(" ", "<br>") %>

Plantilla Facturas: modificar el código del país

Sección: Menú Configuración > Configuración General > Plantillas

Antes: <%= T("@@País") %>: <%= invoice.billingCountry || invoice.clientCountry %><br>

Añadir: T(.....)

Después: <%= T("@@País") %>: <%= T(invoice.billingCountry || invoice.clientCountry) %><br>

Plantilla Facturas: para solventar el mensaje de error 505 en todas las plantillas

Sección: Menú Configuración > Configuración General > Plantillas

Antes: let price = gLines.sum(t => t.total) / gLines.sum(t => t.quantity)

Añadir: (... || 1)

Después: let price = gLines.sum(t => t.total) / (gLines.sum(t => t.quantity) || 1)

Plantilla Facturas: cómo visualizar los motivos de cancelación

Sección: Menú Configuración > Configuración General > Plantillas

Código: <%= invoice.cancelationReason %>

Plantilla Pedidos: para solventar el mensaje de error 505 en la línea 20

Sección: Menú Configuración > Configuración General > Plantillas

Si visualizas este mensaje al intentar imprimir un Pedido, hay que modificar en la plantilla Albarán, las líneas que te aparecen en el mensaje:

  • Se visualiza el mensaje de error por estos códigos:

    <div class="date">
    <%= T("@@Fecha") %>: <%= deliveryNote.date.local().format("d") %>

  • Hay que modificarlos por estos:

    <div class="createDate">
    <%= T("@@Fecha") %>: <%= deliveryNote.createDate.local().format("d") %>

Antes: <div class="date">
<%= T("@@Fecha") %>: <%= deliveryNote.date.local().format("d") %>

Añadir: createDate

Después: <div class="createDate">
<%= T("@@Fecha") %>: <%= deliveryNote.createDate.local().format("d") %>

NOTA. En caso de que no tengas permisos para modificar una Plantilla, ponte en contacto con soporte técnico a través de la burbuja azul.

Plantilla "Enviar pago online" en HTML y con botón de Pagar

Sección: Menú Configuración > Configuración General > Plantillas

<p>Estimado/a <%= model.client.name %>,</p>

<p>A continuación puede encontrar el link donde acceder al pago con tarjeta del producto que nos ha solicitado.</p>

<br><br><a style="color: #fff; background-color: #15c; padding: 8px 15px; text-decoration: none; border-radius: 3px; font-family: arial, sans-serif; font-size: 1.3em;" href="<%= model.url %>"><%= T("@@Pagar") %></a><br><br>

<br><br><% if (model.timeout) { %>Fecha de caducidad: <%= model.timeout.format("g") %><% } %><br><br>

<p>Por favor, en caso de cualquier duda o incidencia póngase en contacto con nosotros llamando al <%= model.tenant.phone %> o enviando un email al <%= model.tenant.email %>.</p>
<p>Muchas gracias.</p>

<p>Un saludo,</p>

<p><%= model.tenant.name %></p>

propiedades con[] al final son arrays,

listados de elementos que se iteran con for (let v of x) { } para acceder a sus propiedades

*** model.invoice

id

number

date

cancelationNumber

comments

idTemplate

idCancelationOf

idClient

idFirstTicket // recapitulativas, el id del primer ticket

// las siguientes 7 propiedades se guardan en la factura, abajo están las deli cliente y empresa

name

street

town

province

zipCode

country

countryCode

// las siguientes 4 son de recapitulativas, primer y ultimo numero, normal y cancelación

firstTicketNumber

lastTicketNumber

firstTicketCanceledNumber

lastTicketCanceledNumber

// los siguientes 3 bloques son direcciones: cliente normal, cliente facturación y empresa

clientName

clientNationalID

clientAccount

clientStreet

clientTown

clientProvince

clientZipCode

clientCountry

clientCountryCode

billingName

billingStreet

billingTown

billingProvince

billingZipCode

billingCountry

billingCountryCode

idCompany

companyName

companyCIF

companyStreet

companyTown

companyProvince

companyZipCode

companyPhone

companyEmail

----------------------aquí termina model.invoice------------------------

*** model.lines[] // listado de líneas

id // id de la saleline

idInvoiceLine

description

quantity

price

discount

taxes

total

canceled

coupon

useDate

createDate

idProduct

name // nombre del producto

supplied

idTax

taxName

taxPercent

taxDescription

subfamily

family

idClient

clientName

guestName // nombre guardado en la saleline

guestEmail // email guardado en la saleline

idBeneficiary

beneficiaryName

idTicket

ticketNumber

*** model.payments[] // listado de pagos

amount // importe pagado en una forma de pago

paymentMethodName // la forma de pago

*** model.account

id

idCompany

companyName

account

bic

lastDigits

bankName

priority

*** model.company // contiene las propiedades de Centro, no incluí todas

name

cif

headerLabel

description

language

currency

currencySymbol

email

phone

web

street

town

province

zipCode

country

countryCode

latitude

longitude

*** model.taxItems[] // listado de taxItems

id

idTaxType

name

percent

realPercent

account

*** model.client // incluye customfields_

id

avatar

name

memberCode

fiscalType

nationalID

issueDate

expirationDate

gender

birthDate

password

nationality

email

idGroup

tags

phoneCountryCode

phoneCountryCodeName

phone

phoneCountryCode2

phoneCountryCode2Name

phone2

street

town

province

regionCode

region

zipCode

country

countryCode

billingName

billingStreet

billingTown

billingRegionCode

billingRegion

billingZipCode

billingCountryCode

billingCountry

idInvoiceClient

account

requiresInvoice

isCompany

contact

invoicesEmail

alert

comments

tag

tagColor

tagBackgroundColor

other1

other2

centerCard

acceptedTerms

acceptedMarketing

isPublic

api

hasApp

isAgency

onCredit

online

emailValidated

blocked

idPrivacyPolicy

fails

federationCode

hcpExact

*** model.taxes[] // listado de impuestos

name // nombre del impuesto

total // total de este impuesto

model.net // importe base

model.total // importe total

model.tenant // el subdominio del tenant

model.footerData // Pie de página guardado en Empresa

¿Ha quedado contestada tu pregunta?