Sistema de emisión de eventos del motor de reservas Plus

Información general

El sistema de eventos es una función de nuestro motor de reservas que facilita la comunicación con personas y programas externos. Permite a usuarios recibir actualizaciones o automatizar tareas en el motor de reservas. Luego de agregar instrucciones específicas, el sistema se encarga del resto. 

Este artículo sirve como referencia para crear integraciones externas y ayudarte a conectar y usar el sistema de evento de manera efectiva.

 Limitaciones del código personalizado y notas de mantenimiento

  • Nota: Los pasos indicados aquí son recursos de información adicional para quienes tienen experiencia en el uso de HTML y CSS. Se recomiendan sólo para desarrolladores web experimentados.
  • A medida que los productos de Cloudbeds y del motor de reservas continúan evolucionando, es posible que las personalizaciones propias se vuelvan obsoletas o requieran de trabajo adicional para adecuarse a los cambios en la tecnología. Eso es parte normal del mantenimiento continuo. Nosotros no brindamos asistencia a funciones con códigos propios o personalizados.
  • Responsabilidad de los usuarios y recomendaciones
    • Prueba el comportamiento del código luego de implementarlo en las versiones para ordenadores y dispositivos móviles.
    • Asegúrate de actualizar tus códigos con regularidad para mantenerlos en funcionamiento. Elimina los códigos que se vuelvan obsoletos.
  • Cloudbeds no ofrece asistencia en diseño web ni en el desarrollo de los sitios web de los hoteles. Tampoco ofrece asistencia para ajustes o códigos personalizados que no son creados por nuestros servicios profesionales de personalización.

Cómo usar el sistema de emisión de eventos

  1. Haz clic en ConfiguraciónSettings.pngen el menú de tu CuentaAccount menu.pngy selecciona Motor de reservas
  2. Haz clic en Personalizar
  3. Agrega este código en el campo JavaScript
    Para usar el sistema de eventos, tienes que agregar un event listeneron-booking-engine-ready, que expone eventSystem de esta manera:

    <script>
     window.addEventListener('on-booking-engine-ready', (e) => {
       const { eventSystem } = e.detail;
     });
    </script>
  4. Guarda los cambios
  5. El eventSystem implementa la interfaz IExternalEventSystem

    interface IExternalEventSystem {
     addEventListener: (
       event: EventType,
       listener: (payload: PayloadOf<EventType>) => void
     ) => void;
     dispatchEvent: (event: EventType, payload: PayloadOf<EventType>) => void;
     removeEventListener: (
       event: EventType,
       listener: (payload: PayloadOf<EventType>) => void
     ) => void;
    }

    Donde EventType se refiere al tipo de eventos que se pueden activar o escuchar y PayloadOf<EventType>se refiere a la carga útil que se envía con el evento.

Eventos enviados por el motor de reservas

  1.  currency-change

Este evento se activa cuando el usuario cambia la moneda en el motor de reservas desde el desplegable de divisas en el encabezado. El valor currency en payload es la abreviatura de la moneda seleccionada, la misma que se ve en el parámetro de consulta currency de la URL.

export type CurrencyChangeEvent = {
 event: 'currency-change';
 payload: { currency: Currency };
};
  1. language-change

Este evento se activa cuando el usuario cambia el idioma del motor de reservas desde el desplegable de idiomas en el encabezado. El valor language en la carga útil es la abreviatura del idioma seleccionado, la misma que se ve en la URL.

type LanguageChangeEvent = {
 event: 'language-change';
 payload: { language: Language };
};
  1. reservation-created

Este evento se activa al crear una reserva en el motor de reservas.

type ReservationCreatedEvent = {
  event: 'reserva-creada';
  payload: CreatedReservation;
};

Cuando CreatedReservation es:

interface CreatedReservation {
 booking_id?: `${number}`;
 booking_total?: number;
 checkin_date?: string;
 checkout_date?: string;
 city?: string;
 currency_code?: string;
 hotel_name?: string;
 real_booking_total?: number;
 resRooms?: {
   adults: `${number}`;
   id: `${number}`;
   kids: `${number}`;
   package: `${number}`;
   package_name: string | null;
   rate_id: `${number}`;
   room_total: `${number}`;
   room_type_id: `${number}`;
   room_type_name: string;
   room_type_photos: ({
     TYPE?: string;
     alt: string;
     cropParam: string | null;
     croppedImage: string;
     fullPath: string;
     galleryPath?: string | null;
     id: string;
     imageHeight: string;
     imageWidth: string;
     mime?: string;
     originalName: string;
     ownerId?: string;
     ownerType?: string;
     parentId: string;
     path: string;
     section?: string;
     size?: string;
     thumbPath: string;
     uploadedAt?: string;
     utype?: string;
   } & {
     featured: number;
     featuredPath: string | null;
   })[];
 }[];
 rooms?: Record<string, {
   adults: number;
   amount: number;
   bookedId: string[];
   kids: number;
   name: string;
   packageId?: string;
   packageName?: string;
   picture?: string;
   price?: number;
   rateId: string;
   roomId: string;
   unit?: string;
 }>;
 state?: string;
 total_tax?: number;
 widget_property?: number;
};

Eventos a los que se suscribe el motor de reservas

  •  custom-payment-option-change 

Este evento se usa en propiedades que quieren ofrecer una opción de pago personalizada a sus huéspedes. 

type CustomPaymentOptionChangeEvent = {
 event: 'cambio-opción-pago-personalizada';
 payload: {
   id: string;
   instructions?: string;
   name: string;
 };
};

  Ejemplo de uso del emisor de eventos: Opción de pago personalizada y tarjetas de regalo 

Para más información sobre el sistema de eventos, lee: Soporte para pasarelas de pago personalizadas y tarjetas de regalo en el motor de reservas Plus.

¿Fue útil este artículo?
Usuarios a los que les pareció útil: 0 de 0

Comentarios

0 comentarios

Inicie sesión para dejar un comentario.