Genel Bakış
Etkinlik Sistemi, Rezervasyon Motorumuzun diğer kişiler ve dış programlarla iletişim kurmasını sağlayan bir özelliktir. Bu sayede kullanıcılar, Rezervasyon Motorunu kullanırken güncellemeler alabilir veya belirli görevleri otomatikleştirebilir. Ayarlara belirli talimatlar ekleyerek, sistem gerisini halleder.
Bu makale, üçüncü taraf entegrasyonları için bir referans olarak hizmet verir ve Etkinlik Sistemini etkili bir şekilde bağlamanıza ve kullanmanıza yardımcı olur.
Özel Kod Sınırlamaları ve Bakım Notları
- Not: Burada verilen adımlar, HTML ve CSS konusunda zaten deneyimli olanlar için ek bir bilgi kaynağıdır; sadece deneyimli web geliştiricilere önerilir.
- Cloudbeds ürünleri ve Rezervasyon Motoru geliştikçe, kendi uyguladığınız özelleştirmeler güncelliğini yitirebilir veya ek çalışma gerektirebilir. Bu, devam eden bakımın normal bir parçasıdır ve özel kod işlevselliği için destek veremeyiz.
- Kullanıcı sorumluluğu ve öneriler
- Uygulama sonrası kod davranışını hem masaüstü hem de mobil sürümlerde test et.
- Kodların işlevselliğini korumak için düzenli olarak güncellendiğinden emin ol ve güncelliğini yitirenleri kaldır.
- Cloudbeds, otel web sitesi tasarımı/geliştirmesi veya profesyonel Özelleştirme Hizmetleri tarafından sağlanmayan özelleştirmeler konusunda destek sunmaz.
Etkinlik Yayım Sistemi Nasıl Kullanılır
-
Ayarlar sayfasına git
Hesap Menüsü
ve Rezervasyon Motoru bölümüne tıkla
- Özelleştir seçeneğine tıkla
-
Aşağıdaki kodu JavaScript alanına ekle
Etkinlik Sistemini kullanmak için, on-booking-engine-ready etkinliği için bir etkinlik dinleyicisi eklemen gerekiyor. Bu etkinlik, eventSystem nesnesini şu şekilde sunar:<script> window.addEventListener('on-booking-engine-ready', (e) => { const { eventSystem } = e.detail; }); </script> -
Kaydet butonuna tıkla
-
eventSystem IExternalEventSystem arayüzünü uygular:
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; }Burada EventType, tetikleyebileceğimiz veya dinleyebileceğimiz etkinlik türünü ifade eder ve PayloadOf<EventType> ise etkinlikle birlikte gönderilen veri yükünü belirtir.
Rezervasyon Motoru tarafından tetiklenen etkinlikler
- currency-change etkinliği:
Bu etkinlik, kullanıcı Rezervasyon Motorunun para birimini üst bilgideki para birimi seçicisinden değiştirdiğinde tetiklenir. payload içindeki currency değeri, seçilen para biriminin kısaltmasıdır ve URL'deki currency sorgu parametresinde göründüğü şekildedir.
export type CurrencyChangeEvent = {
event: 'currency-change';
payload: { currency: Currency };
};- language-change event:
Bu olay, kullanıcının üst bilgideki dil seçicisinden Rezervasyon Motoru dilini değiştirdiğinde tetiklenir. Payload içindeki language değeri, seçilen dilin URL'de göründüğü gibi kısaltmasıdır.
type LanguageChangeEvent = {
event: 'language-change';
payload: { language: Language };
};- reservation-created event:
Bu olay, Rezervasyon Motoru'nda bir rezervasyon oluşturulduğunda tetiklenir.
type ReservationCreatedEvent = {
event: 'reservation-created';
payload: CreatedReservation;
};CreatedReservation şu şekildedir:
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;
};Rezervasyon Motoru'nun abone olduğu olaylar
- custom-payment-option-change
Bu etkinlik, müşterilerine Özel Ödeme Seçeneği sunmak isteyen tesisler için kullanılır.
type CustomPaymentOptionChangeEvent = {
event: 'custom-payment-option-change';
payload: {
id: string;
instructions?: string;
name: string;
};
};Etkinlik Yayımcısı Kullanım Örneği: Özel ödeme seçeneği ve hediye kartları
Etkinlik Sisteminin pratikte nasıl kullanıldığını öğrenmek için bkz.: Rezervasyon Motoruna Üçüncü Taraf ödeme ağ geçitleri ve hediye kartları ekleme.
Yorumlar
Yorum yazmak için lütfen oturum açın: oturum aç.