rateCHECKER Docs

Datenquellen

Als Datenquellen sind aktuell ASA, Xenus über AlpineBits und EasyChannel vorgesehen.

Installation

Zum Einfügen des rateChecker Widgets fügen Sie folgenden Code innerhalb des <body /> Tags ein.
<script type="text/javascript">
     (function(w,d,o,f,js,fjs){w["conWidgets"]=o;w[o]=w[o]||function(){(w[o].q=w[o].q||[]).push(arguments)};
         js=d.createElement("script"),fjs=d.getElementsByTagName("script")[0];js.id=o;js.src=f;js.async=1;fjs.parentNode.insertBefore(js,fjs)
     })(window,document,"_conWidgets","https://widgets.secure.consisto.net/js/modules/widget.min.js");
 </script>
Wichtig: dieser Code muss nur einmal pro Seite oberhalb des ersten Widgets eingefügt werden. Auch wenn mehrere verschiedene Widgets auf einer Seite verwendet werden, wird dieser Code nur einmal benötigt.

Konfiguration

Fügen Sie folgenden Code an der Stelle ein, an der der rateCHECKER erscheinen soll.
<con-pricecalendar id="pricecalendar"></con-pricecalendar>
 <script type="text/javascript">
     _conWidgets('init', document.querySelector("#pricecalendar"), {
          lang: 'de',
          widgetId: "[Domain]",
          bookingUrl: "BookingURL",
          requestUrl: "RequestURL"
     });
 </script>
ArgumentTypStandartwertBeschreibung
langstring""Sprache vom Widget
widgetIdstring""Festgelegter Wert, der das Widget identifiziert.
bookingUrlstring""URL zur Buchungsseite (falls leer, wird der Button ausgeblendet). Siehe auch "getBookingUrl()".
requestUrlstring""URL zur Anfrageseite (falls leer, wird der Button ausgeblendet). Siehe auch "getRequestUrl()".
roomstring""Codex des Zimmers, das im Zimmer-Dropdown vorausgewählt sein soll.
hideRoomDropDownboolfalseBlendet die Zimmerauswahl im Widget aus.
arrivalstring""Die Anreise im Format yyyy-MM-dd (z.b. 2021-05-10)
departurestring""Die Abreise im Format yyyy-MM-dd (z.b. 2021-05-16)
guestsint[]nullArray mit dem jeweiligen Alter der vorausgewählten Zimmerbelegung.
Kinder und Erwachsene werden automatisch erkannt, ab 18 zählt auf jeden Fall als Erwachsener,
der Punkt kann je nach Definition aber auch unter 18 liegen.
Z.B. [18, 18, 14, 8]
mealPlanstring""Einer von folgenden Strings:
AllInclusive, BedAndBreakfast, FullBoard, HalfBoard, RoomOnly
promotionstring[][null, null, null]UTM-Parameter für Buchungs- und Anfragelink. Beispiel: ['medium', 'source', 'campaign']
layoutBreakpoints int[] [1200, 1024, 768, 414]Breiten in px, an denen das Widget auf eine andere Ansicht umschaltet.
Achtung, hierbei handelt es sich um Breiten des Containers, in dem das Widget integriert ist.
(dreispaltig, zweispaltig, einspaltig, einspaltig kleiner)
getBookingUrl function(object) nullKann verwendet werden, um den Buchungs-Link dynamisch zu generieren.
Der Rückgabewert dieser Funktion ist ein Objekt mit 'url' und 'target',
das 1:1 für href sowie target des Buchungs-Buttons verwendet wird.

Der Übergabewert der Funktion ist das gleiche Objekt, wie von "getSelectedData()" zurückgegeben wird.
(Siehe API->getSelectedData() in dieser Dokumentation)

Der Wert von 'bookingUrl' wird ignoriert, falls diese Funktion gesetzt ist,
der Wert darf aber kein leerer String sein (damit wird der Button ausgeblendet).

Siehe Beispiel unterhalb der Tabelle.
getRequestUrl function(object) nullKann verwendet werden, um den Anfrage-Link dynamisch zu generieren.
Der Rückgabewert dieser Funktion ist ein Objekt mit 'url' und 'target',
das 1:1 für href sowie target des Anfrage-Buttons verwendet wird.

Der Übergabewert der Funktion ist das gleiche Objekt, wie von "getSelectedData()" zurückgegeben wird.
(Siehe API->getSelectedData() in dieser Dokumentation)

Der Wert von 'requestUrl' wird ignoriert, falls diese Funktion gesetzt ist,
der Wert darf aber kein leerer String sein (damit wird der Button ausgeblendet).

Siehe Beispiel von getBookingUrl() unterhalb der Tabelle.
 activeTab string PriceCalendarDefiniert eine Vorauswahl des aktiven Tabs.
Mögliche Werte: 'PriceCalendar', 'LastMinute', 'Offers'
 visibleTabs string[] nullArray von Tabs, die angezeigt werden sollen.
Kann verwendet werden, um angezeigte Tabs einzuschränken.
Es können hiermit keine Tabs eingeblendet werden, die standardmäßig nicht angezeigt werden.
Die Reihenfolge der Tabs im Array wird zur Sortierung verwendet.
Ein leeres Array blendet alle Tabs aus. Sollte nur ein Tab vorhanden sein, wird es nicht angezeigt.
Mögliche Werte sind gleich wie für den Parameter 'activeTab'.
 offerView string nullFalls auf einen passenden Wert gesetzt, wird die Angebotsansicht aktiviert.
Mögliche Werte: 'Small', 'Medium', 'Large'.
Funktioniert nur, wenn die Angebotsansicht in den Einstellungen aktiviert wurde.


getBookingUrl() Beispiel:
'getBookingUrl': function(selectedData) {
     var parameters = {
         adults: selectedData.Adults,
         childAges: '[' + selectedData.ChildAges.join(',') + ']'
     };
     if (selectedData.Room != null) {
         parameters['roomId'] = selectedData.Room.BookingCodex;
     }

     var url = new URL('https://www.google.com');
     url.search = new URLSearchParams(parameters);
     return {
         url: url.toString(),
         target: '_blank'
     }
 }
Url Parameter
Zusätzlich zu den Parametern beim Initialisieren vom Widget können in der URL folgende Parameter mitgeschickt werden:
ArgumentTypStandartwertBeschreibung
arrivalstring/Die Anreise im Format yyyy-MM-dd (z.b. 2021-05-10)
departurestring/Die Abreise im Format yyyy-MM-dd (z.b. 2021-05-16)
Angebots-Ansicht
Die Angebots-Ansicht bietet einen Überblick über alle aktuellen Angebote.
Anders als bei der normalen rateCHECKER-Ansicht kann vom Benutzer hier als erstes das Angebot gewählt werden und danach wird der rateCHECKER auf das Angebot gefiltert angezeigt.
Diese Ansicht muss über die Option "Angebotsansicht" aktiviert werden.

Angebots Widget

Fügen Sie folgenden Code an der Stelle ein, an der die Angebots-Übersicht angezeigt werden soll.
<con-pricecalendar id="pricecalendar"></con-pricecalendar>
 <script type="text/javascript">
     _conWidgets('init', document.querySelector("#pricecalendar"), {
          lang: 'de',
          widgetId: "[Domain]",
          bookingUrl: "BookingURL",
          requestUrl: "RequestURL",
          offerView: 'Large' // one of: 'Small', 'Medium', 'Large'
        });
 </script>

Angebots Widget Vorschau/Slider

Fügen Sie folgenden Code an der Stelle ein, an der die Angebots-Vorschau als Slider angezeigt werden soll.
Diese Ansicht funktioniert nur, wenn auf der Website die normale Angebots-Ansicht integriert wurde (Beim Klick wird diese Seite geöffnet).
<con-offershowcase id="offerShowcase"></con-offershowcase>
 <script>
     _conWidgets("init", document.querySelector("#offerShowcase"), {
         lang: 'de',
         widgetId: '[Domain]',
         offerPageUrl: 'OfferPageURL', // link to the page, where the full offer widget is included
         offerView: 'Small' // one of: 'Small', 'Medium', 'Large'
     });
 </script>

API

Zu einem Initialisierten rateCHECKER sind einige Funktionen per JavaScript zugänglich.
In dem initialisierten HTML-Element des rateCHECKERs gibt es einen Objekt, über das Funktionen verfügbar sind.
document.querySelector("#pricecalendar").con_pricecalendar

In diesem Objekt sind folgende Funktionen verfügbar:

getSelectedData()
Gibt ein Objekt mit den aktuell ausgefüllten Daten zurück.
  • SelectedYear (int)
  • SelectedMonth (int)
  • Stay (object)
    • Arrival (Date - null wenn nicht gewählt)
    • Departure (Date - null wenn nicht gewählt)
  • MealPlan (string)
  • Room (object - null wenn nicht gewählt)
    • Codex (string)
    • BookingCodex (string)
  • Offer (object - null wenn nicht gewählt)
    • Codex (string)
    • BookingCodex (string)
  • Adults (int)
  • ChildAges (int[])
  • StayBookable (bool)
  • RoomsAvailable (object[])
    • Codex (string)
    • BookingCodex (string)
    • Bookable (bool)
Beispiel:
document.querySelector("#pricecalendar").con_pricecalendar.getSelectedData();

Events

onWidgetLoaded(shadowRoot, element)
shadowRoot: Das Shadow-Element vom aktuellen Widget
element: Das Element im Light-DOM

onWidgetResized(shadowRoot, element)
shadowRoot: Das Shadow-Element vom aktuellen Widget
element: Das Element im Light-DOM

onAjaxUpdated(shadowRoot, element)
shadowRoot: Das Shadow-Element vom aktuellen Widget
element: Das Element im Light-DOM

onButtonClick(shadowRoot, element, details)
shadowRoot: Das Shadow-Element vom aktuellen Widget
element: Das Element im Light-DOM
details: Objekt mit folgenden Eigenschaften:
  • action: (string) gibt entweder "request" oder "booking" zurück, je nachdem welcher Button geklickt wurde
  • roomName: (string) gibt den Namen des ausgewählten Zimmers zurück. Leer wenn kein Zimmer ausgewählt
  • value: (float) gibt den Preis des Zimmers zurück. 0 wenn kein Zimmer ausgewählt oder kein gültiger Preis vorhanden. (kann auch ein ab-Preis sein)

Tracking

Getrackt wird beim GoogleTagManager der Klick auf Buchen oder Anfragen.
Folgende Parameter werden aufgezeichnet:
  • Kategorie: rateCHECKER
  • Aktion: requestclick oder bookingclick
  • Label: Codex des Zimmers falls vorhanden
  • Value: Preis falls vorhanden (auch ab-Preis)

Beim Wechseln des Zimmers im Dropdown wird folgendes aufgezeichnet:

  • Kategorie: rateCHECKER
  • Aktion: changeroom
  • Label: Codex des Zimmers
  • Value:/

Bei Auswahl eines Zeitraumes (Anreise + Abreise) oder wechsel der Abreise wird der Zeitraum aufgezeichnet:

  • Kategorie: rateCHECKER
  • Aktion: dateselected
  • Label: Anreise - Abreise (im Format yyyy-m-d)
  • Value:/

Zusätzlich wird beim Klick auf Anfragen oder Buchen in der Ziel-URL der URL Parameter "ref=ratechecker" mitgeschickt, mit dem im eigenen Coding das eigene Tracking entsprechend angepasst werden kann.

Zimmerschnittstelle
Diese Schnittstelle liefert Informationen über die unterschiedlichen Zimmertypen.

Die Schnittstelle kann über folgenden Link erreicht werden:
https://widgets.secure.consisto.net/roomApi?widgetId=ac042a07-bc79-4915-b83a-9e17e87b0769

Parameter

Parameter   PflichtTyp  Beschreibung 
 mealPlan Ja string Verplegungsart (AllInclusive, BedAndBreakfast, FullBoard, HalfBoard, RoomOnly)
 widgetId Ja string Festgelegter Wert, der das Widget identifiziert.
 adults Nein int Anzahl der erwachsenen Personen.
 childAges Nein int[] Auflistung bestehend aus den Lebensjahren aller Kinder. Z.B. [14, 8, 8]

Beispiel Url:
https://widgets.secure.consisto.net/roomApi?widgetId=[DomainUrlEncoded]&mealPlan=HalfBoard&adults=2&childAges=12,13,14

Beispiel Ausgabe

 Zurückgegeben wird ein Json-Objekt, welches wie folgt aussieht: 
{
     "ZimmerKodex1": {
         "BookingCodex": "12345",
         "Price": 100.00,
         "PricePerPerson": 50.00,
         "MaxOccupancy": 5,
         "MinOccupancy": 2,
         "StandardOccupancy": 5,
         "AdultCount": 5
     },
     "ZimmerKodex2": {
         "BookingCodex": "22345",
         "Price": 100.00,
         "PricePerPerson": 50.00,
         "MaxOccupancy": 5,
         "MinOccupancy": 2,
         "StandardOccupancy": 5,
         "AdultCount": 5
     }
 }