Sistema de Emissão de Eventos do Motor de Reservas Plus

Visão Geral

O Sistema de Eventos é um recurso do nosso Motor de Reservas que permite a comunicação com outras pessoas e programas externos. Isso permite que os usuários recebam atualizações ou automatizem certas tarefas ao usar o Motor de Reservas. Ao adicionar instruções específicas nas configurações, o sistema cuidará do resto.

Este artigo serve como uma referência para integrações externas, ajudando você a conectar e usar o Sistema de Eventos de forma eficaz.

Limitações do Código Personalizado e Observações de Manutenção

  • Observação: Os passos fornecidos aqui são um recurso informativo adicional para aqueles que já estão familiarizados com HTML e CSS; eles são sugeridos apenas para desenvolvedores web experientes.
  • À medida que os produtos da Cloudbeds e o Motor de Reservas continuam a evoluir, personalizações aplicadas por conta própria podem se tornar obsoletas ou exigir trabalho adicional à medida que a tecnologia evolui. Isso é uma parte normal da manutenção contínua, e não podemos oferecer suporte à funcionalidade de código personalizado.
  • Responsabilidade e recomendações do usuário:
    • Teste o comportamento do código após a implantação, tanto na versão desktop quanto na versão móvel.
    • Certifique-se de que os códigos estão regularmente atualizados para manter sua funcionalidade e remova qualquer um que se torne obsoleto.
  • A Cloudbeds não oferece assistência com design/desenvolvimento de sites de hotéis, ou personalização não fornecida pelos nossos Serviços de Personalização.

Como usar o Sistema de Emissão de Eventos

  1. Vá para a página de ConfiguraçõesSettings.pngem seu Menu de ContaAccount menu.pnge clique na seção do Motor de Reservas;
  2. Clique em Personalização;
  3. Adicione o código abaixo ao campo de JavaScript:
    Para usar o Sistema de Eventos, você precisa adicionar um ouvinte de eventos para o evento on-booking-engine-ready, que expõe o eventSystem da seguinte forma:

    <script>
    window.addEventListener('on-booking-engine-ready', (e) => {
    const { eventSystem } = e.detail;
    });
    </script>
  4. Clique em Salvar;
  5. O eventSystemimplementa a interfaceIExternalEventSystem :

    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;
    }

    Onde EventTyperefere-se ao tipo de eventos que podemos acionar ou ouvir, e PayloadOf<EventType>refere-se ao conteúdo que é enviado com o evento.

Eventos enviados pelo Motor de Reservas

  1. Evento currency-change:

Este evento é acionado quando o usuário altera a moeda do Motor de Reservas a partir do seletor de moeda no cabeçalho. O valor de currency no payload é a abreviação da moeda selecionada, assim como aparece no parâmetro de consulta currency da URL.

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

Este evento é acionado quando o usuário altera o idioma do Motor de Reservas a partir do seletor de idioma no cabeçalho. O valor language  no payload é a abreviação do idioma selecionado, assim como aparece na URL.

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

Este evento é acionado quando uma reserva é criada no Motor de Reservas.

type ReservationCreatedEvent = {
event: 'reservation-created';
payload: CreatedReservation;
};

Quando CreatedReservation é:

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 aos quais o Motor de Reservas se inscreve

  •  custom-payment-option-change

Este evento é utilizado para propriedades que desejam usar uma Opção de Pagamento Personalizada para oferecer aos seus clientes. 

type CustomPaymentOptionChangeEvent = {
event: 'custom-payment-option-change';
payload: {
id: string;
instructions?: string;
name: string;
};
};

  Exemplo de Uso do Emissor de Eventos: Opção de pagamento personalizada e cartões-presente 

Para aprender como o Sistema de Eventos é utilizado na prática, consulte: Adicionando processadores de pagamentos de terceiros e cartões-presente ao Motor de Reservas.

Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

Comentários

0 comentário

Por favor, entre para comentar.