En este apartado, explicamos paso a paso lo necesario para agregar a tu plataforma la posibilidad de contratar seguros de camiones de varias compañías, con diferentes tipos de coberturas y precios.
Una vez que el widget esté embebido en tu plataforma, tendrá 2 estados:
Si el widget se inició y no se enviaron los parámetros mostramos un banner publicitario con call to action
referidos a seguros on-line
, como referencia tenemos esta imágen, donde irá ese banner.
Una vez que el widget es renderizado, se va a estirar y/o contraer automáticamente, según las necesidades de espacio del contenido, tal como se ve en la imagen que sigue.
Por defecto el renderizado va a ocupar el 100% del espacio horizontal asignado y una altura dinámica que se va ajustando según las necesidades de espacio. Es por esto que recomendamos no limitar el alto del contenedor asignado ya que lo que se busca con este comportamiento es NO mostrar una barra de scroll secundaria logrando que el usuario/cliente sienta el widget como parte del HOST y así mejorar la experiencia.
Para poder interactuar con nuestros servicios de manera segura es necesario contar con un par public-private keys que deberás gestionar poniéndote en contacto con nosotros aqui.
Para poder embeber uno de nuestros widget, solo necesitas seguir estos simples pasos!
Llamá nuestro script de integración desde tu frontend.
Asigna un lugar en tu frontend.
Crea una instancia del widget que quieras.
Solo hay que agregar esta linea en el HTML de tu pagina web.
Por ejemplo:
...Tus otros scripts
<script
type="module">
import
{
TruckFleetOffers
}
from
"https://widgets.fintoware.com/ftw_integration_worker.js";
...Tu código JS
</script>
Necesitamos que nos asignes un lugar en tu frontend donde renderizar el widget que quieras. Para esto tenés que agregar un nuevo elemento al DOM de tu página y asignarle un ID.
Por ejemplo:
...Tu código HTML
<div
id="ftw_widget_container">
</div>
...Más de tu código HTML
Perfecto, ahora para poder iniciar el widget primero tenés que crear una instancia del mismo diciéndole dos cosas, 'dónde' y 'quién'. Es fácil, solo necesitas 2 líneas de código JS.
En la primera, creas una instancia del widget que queres embeber pasando como parámetro el ID del elemento DOM asignado anteriormente (el 'dónde') y tu clave pública (el 'quién').
En la segunda, le indicas al widget que ya puede mostrarse
Por ejemplo:
<script
type="module">
// Import que vimos en el paso 1
import
{
TruckFleetOffers
}
from
"https://widgets.fintoware.com/ftw_integration_worker.js";
// … Tu código JS
// Create an TruckFleetOffers instance using idContainer & retailerPublicKey
const
ftw_truck_fleet_widget
=
new
TruckFleetOffers('ftw_widget_container',
'026....-XXX-XXX');
await ftw_truck_fleet_widget.init();
// … Más de tu código JS
</script>
Listo! Con eso ya tenés integrado el widget y se debería renderizar.
Este tipo de widget puede ser totalmente desatendida, es decir que no requiere de más interacciones por parte del HOST. Una vez que es renderizado, el usuario final interactúa directamente con el widget y nosotros nos encargamos de todo.
Antes comentamos que el widget tiene un interfaz de comunicación que podés usar para enviar/recibir información, bien, veamos un poco más sobre esto.
Supongamos que tenés algunos datos sobre tu usuario y los queres usar para ahorrarle trabajo. Para esto,
necesitas esperar que el widget esté listo y utilizando el método refreshData
podés enviar un JSON
como parámetro con los datos que tengas respetando la siguiente estructura.
Por ejemplo, si conocés cuanto esta pagando por su seguro actualmente tu cliente, podrías hacer algo como esto:
<script
type="module">
// … Tu código JS
// Recorda esperar el método init() antes de llamar a refreshData()
ftw_truck_fleet_widget.refreshData({
currentAmount:
'2500,50',// Precio de la cobertura actual.
});
// … Más de tu código JS
</script>
Este método puede ser invocado todas las veces que necesites y con cada invocación se refresca el estado del widget siempre que algún dato haya cambiado.
En caso que tengas más datos sobre tu usuario y quieras mejorar su experiencia, podés usar este método para enviarlos. En caso de no contar con todos los datos, no te preocupes, también podés usar este método para envío parcial de información.
Estos son los datos que podés enviar a este tipo de widget.
<script
type="module">
// … Tu código JS
// Recuerda esperar el método init() antes de llamar a refreshData()
ftw_truck_fleet_widget.refreshData({
currentAmount:
'2500,50',// Precio de la cobertura actual.
customer: {// Los datos que tengas de tu cliente.
type:
'Physical',// Tipo de persona, puede ser Physical o Legal
cuit:
'20123456780',// Nro de cuit
firstname:
'Juan',// Solo para personas de tipo Physical.
lastname:
'Perez',// Solo para personas de tipo Physical.
email:
'email@email.com',
name:
'Winse Online',// Solo para personas de tipo Legal.
},
});
// … Más de tu código JS
</script>
Estos son los valores aceptados en cada propiedad.
Nombre propiedad | Valores |
---|---|
currentAmount | Number | String |
customer.type | Physical | Legal |
customer.cuit | Number | String |
customer.firstname | String |
customer.lastname | String |
customer.email | String |
customer.name | String |
Podés hacer pruebas usando estos datos hasta conseguir tus credenciales de producción.
Nombre | Valores |
---|---|
Public key | test-public-4a8b-b813-ab3c465cfa3f |
Private key | test-private-4a8b-b813-ab3c465cfa3f |
Veamos un ejemplo funcionando !
La versión 1.0
del worker tiene 2 métodos con los que se puede interactuar.
Método | Detalle |
---|---|
async init(): Promise<boolean> | Inicializa una instancia y renderiza un widget. Retorna una promesa que se resuelve cuando el widget completa el renderizado y está listo para interactuar. |
refreshData(data): void | Envía un JSON con parámetros al widget para ser actualizado. |
getVersion(): string | Retorna la versión del worker de integración utilizado. |