Apartado técnico nueva experiencia de venta de hoteles
Servicios Web Utilizados
Los servicios que se utilizan para el flujo de la nueva experiencia de venta son los siguientes:
Página | Nombre del Servicio | App Servicios Web |
---|---|---|
Página de resultados - Widget | Search → Autocomplete | Static Content |
Página de resultados | GetGuestSession → Creación sesion usuario invitado | NetCoreApi |
Página detalle del hotel y habitación | Get Details → Obtener Info estática del hotel y habitaciones | Static Content |
Página de pasajeros | HotelValidate → Obtener politicas de cancelación, comment contras y validacion de precios | NetCoreApi |
Estructura de la URL de la nueva experiencia de venta
En el flujo de la nueva experiencia de venta definimos una nueva estructura de url para flujo de hoteles, con un nuevo sufijo que acompañará al flujo de hoteles desde la búsqueda, detalle del hotel hasta página de pasajeros.
Las 3 instancias de páginas del Front-end serán:
Página de resultados → results
Página de detalle del hotel → details
Página de pasajeros → passengers
Front-end | Tipo de Request NetCoreAPI | Estructura URL Front-end | Ejemplo |
Página de resultados | HotelSearchV3/ HotelResultsV2 | var url = $"{AgencyDomain}”+ Parámetros no obligatorios: | |
Página de detalle hotel | HotelDetails | var url = $"{AgencyDomain}" + Parámetros no obligatorios: Ej: ?noHeaders=true&branchCode=001 | |
Página de pasajeros | HotelValidate | var url = $"{AgencyDomain}" + Parámetros no obligatorios:
Ej: ?noHeaders=true&branchCode=001 |
NOTAS:
{DestinationPoint} → puede ser un LocationId antepuesto por la l, por ejemplo: l190928. O un HotelId antepuesto por una h, por ejemplo: h77617
{Occupancy} → Las habitaciones son distinguidas por "!". Las personas son distinguidas por "-". El primer número de cada habitación es la cantidad de adultos. Cada "-" después de la cantidad de adultos debe presentar la edad de un niño. Ejemplo: Una búsqueda para dos habitaciones:
Habitación 1: 2 adultos y 1 niño de 6 años
Habitación 2: 1 adultos, 1 niño de 2 años y un niño de 0 años
"2-6!1-2-0"
{branchCode} → Codigo de la sucursal. Es opcional
{noHeaders=true/false} → Para ocultar header y footer. Es opcional. Por defecto queda false. Se pone true para sacar el header, en caso de que no se ponga nada entonces se presenta el header.
{sessionToken} → Token de sesión para identificar el usuario logueado. Es opcional. Si no se recibe se crea un token de usuario tipo guest, en caso de recibirlo en la primera búsqueda se mantiene durante todo el flujo, aun si lanzan una nueva búsqueda desde el widget del nuevo front.
{salesChannelCode} → Código del canal de venta. Es opcional
{businessUnitCode} → Código de unidad de negocio. Es opcional
{promoCode} → Código promocional. Es opcional
{clientId} → Id del cliente que quedara asociado a la reserva. Es opcional
{noShowTagTax} → Para ocultar la información del tag de impuesto desde los resultados. Es opcional. Por defecto queda false. Se pone true para sacar el tag de impuestos, en caso de que no se ponga nada entonces se presenta el tag.
Estructura de los tokens:
Estructura del token página de detalles
btoa(culture/userService/destination/checkin/checkout/occupancy/hotelId/apiTokenId/searchId)Estructura del token página de pasajeros
btoa(culture/userService/destination/checkin/checkout/occupancy/hotelId/rateId/apiTokenId/searchId)btoa - Función que crea una string base64-encoded
Netactica.com