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
- Vá para a página de Configurações
em seu Menu de Conta
e clique na seção do Motor de Reservas;
- Clique em Personalização;
-
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> - Clique em Salvar;
-
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
- 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 };
};- 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 };
};- 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.
Comentários
Por favor, entre para comentar.