developers.bookingsuedtirol.com
Open in
urlscan Pro
199.36.158.100
Public Scan
Submitted URL: https://widget.bookingsuedtirol.com/
Effective URL: https://developers.bookingsuedtirol.com/docs/
Submission: On July 10 via automatic, source certstream-suspicious — Scanned from DE
Effective URL: https://developers.bookingsuedtirol.com/docs/
Submission: On July 10 via automatic, source certstream-suspicious — Scanned from DE
Form analysis
0 forms found in the DOMText Content
Skip to main content * Widgets * Booking * Enquiry * Quick enquiry * Rooms * Specials * Prices * Weather * Portal * Guides * Google Analytics 4 * * Widgets * Booking On this page BOOKING WIDGET warning Could not load widget due to invalid URL parameters. INSTALLATION Create a widget instance by embedding the following code within your webpage inside the <body> element: <div id="Bs-BookingWidget"></div> <script id="booking-suedtirol-js" src="https://widget.bookingsuedtirol.com/v2/bundle.js" defer ></script> <script> document .querySelector("#booking-suedtirol-js") .addEventListener("load", () => { BookingSüdtirol.Widgets.Booking("#Bs-BookingWidget", { id: undefined, propertyId: undefined, lang: "de", privacyURL: "/path/to/privacy/page", termsURL: "/path/to/terms/page", onBookingSuccess: (reservation) => { // Called after successful booking }, onEnquirySuccess: (reservation) => { // Called after successful enquiry }, }); }); </script> warning Include the <script … src="https://example.com/v2/bundle.js" …></script> element exactly as specified. Do not self-host a copy of the script and do not include its code into a JavaScript bundle file. Otherwise the widget will not work correctly. CONFIGURATION Use BookingSüdtirol.Widgets.Booking(domElement, settings) to create new widget instances. METHOD ARGUMENTS DOMELEMENT: STRING | DOM ELEMENT The CSS selector or DOM element where your widget will be mounted. SETTINGS: OBJECT Initialization options. See API below. Each widget instance can have it's own settings. URL PARAMETERS The following list of settings can also be passed over the URL. * propertyId * lang * arrival * departure * currentMonth * layout * guests * defaultOfferList * offerId * roomId * utm_medium * utm_source * utm_campaign Notice that URL parameters always overwrite widget instance settings. // Example https://www.example.com/?lang=it&arrival=2022-02-20&departure=2022-02-23&guests=[[18,18],[18,4]] -------------------------------------------------------------------------------- API ID: STRING The widget ID info Mandatory field PROPERTYID: NUMBER ID of the property/accommodation info Mandatory field. The property must already have been activated for the widget. ACCOMMODATIONID: NUMBER Deprecated. Use propertyId instead. PRIVACYURL: STRING Defines the URL to the privacy policy page of the website where the widget is embedded. The language used on the page must match the lang field. Examples: * /en/privacy * https://example.com/en/privacy info Mandatory field TERMSURL: STRING Defines the URL to the general terms and conditions page of the website where the widget is embedded. The language used on the page must match the lang field. Examples: * /en/terms * https://example.com/en/terms info Mandatory field LANG: STRING? Language * de: German (default) * it: Italian * en: English * fr: French ARRIVAL: STRING? Defines the arrival date in ISO 8601 format (yyyy-MM-dd) 2020-02-20 DEPARTURE: STRING? Defines the departure date in ISO 8601 format (yyyy-MM-dd) 2020-02-23 CURRENTMONTH: STRING? Defines the displayed calendar month in ISO 8601 format (yyyy-MM-dd) 2020-04-01 GUESTS: NUMBER[][]? Determines the number of rooms and their occupancy in the form of the age of each person. * 18: adult * 0-17: child // Examples // room 1: 2 adults [[18, 18]]; // room 1: 2 adults, 2 children (14 - and 5 years) [[18, 18, 14, 5]]; // room 1: 2 adults // room 2: 1 adult, 1 child (4 years) [ [18, 18], [18, 4], ]; // room 1: 2 adults // room 2: 1 adult // room 3: 2 adults, 1 child (3 years) [[18, 18], [18], [18, 18, 3]]; // Produces error because no adults were submitted [[12]]; // Produces error because more than three rooms were submitted [[18], [18, 14], [18], [18]]; Default value: 2 adults [[18,18]] info You can add a maximum of three rooms. OCCUPATIONS: NUMBER[][]? Deprecated. Use guests instead. LAYOUT: STRING? Determines the layout of the extended widget * one_pager (default) * four_steps * compact DEFAULTOFFERLIST: STRING? Determines which offer list is displayed by default. * rooms (default) * specials (If no specials are available, it automatically falls back to rooms.) OFFERID: NUMBER? Enables you to display a specific special via its ID. Loading specials … ROOMID: NUMBER? Enables you to display a specific room via its ID. The ID can be read either via the MSS interface or the following chart. Loading rooms … PROMOTION: [STRING | NULL, STRING | NULL, STRING | NULL]? Enables you to customize the advertising fields medium (ResID_SourceContext), source (ResID_Source) und campaign (ResID_Value) and submit them to the PMS. How exactly the fields are to be filled has been precisely defined in the AlpineBits Standard and can be read in the corresponding documentation in section 4.2.5 Implementation tips and best practice. ["Advertising medium", "Advertising source", "Advertising campaign"]; Default value: [null, null, null] The Google Analytics parameters utm_medium, utm_source, and utm_campaign offer the possibility to submit the fields individually. For example, the URL https://www.example.com/?utm_medium=metasearch&utm_source=tripadvisor.com&utm_campaign=tripadvisor_desktop would submit ['metasearch', 'tripadvisor.com', 'tripadvisor_desktop'] to the PMS. info Using this feature will set a 30-day tracking cookie. In this case, add the cookie bs_widget_promotion to your Privacy Policy. If you want to prevent the cookie from being set, insert the code window.BookingSüdtirolTrackingConsent = false; before the widget is loaded. SOURCE: STRING? Enables the widget to be installed on portals with multiple properties. For this functionality, please contact support directly. ONOCCUPANCIESCHANGE: (GUESTS: NUMBER[][])? => VOID Function called after guest occupancies were changed / added / removed. ONSTAYSELECTION: (STAY: OBJECT)? => VOID Function called after a stay was selected in the calendar. { arrival: string; // ISO 8601 departure: string; // ISO 8601 isValid: boolean; // Is selected stay bookable guests: number[][]; } ONBOOKINGSUCCESS: (RESERVATION: OBJECT)? => VOID Function called after successful booking. ONBOOKINGERROR?: FUNCTION Function called after failed booking. type OnBookingError = ( reservation: Reservation, error: { code: number; message: string }, ) => void; ONREQUESTSUCCESS: (RESERVATION: OBJECT)? => VOID? Deprecated. Use onEnquirySuccess instead. ONENQUIRYSUCCESS: (RESERVATION: OBJECT)? => VOID? Function called after successful enquiry. info onEnquirySuccess uses the same reservation object as onBookingSuccess, with the exception that price information and detailed offer infos can be missing. RESERVATION STRUCTURE interface Reservation { bookingId: number; arrival: string; // ISO 8601 departure: string; // ISO 8601 nights: number; price: number | null; offers: { id: number; title: string | undefined; price: number | null; service: 0 | 1 | 2 | 3 | 4 | 5; room: { id: number; title: string | undefined; code: string | undefined; roomSeq: 1 | 2 | 3; roomType: 1 | 2 | undefined; adults: number[]; children: number[]; }; }[]; extras: { id: number; title: string; amount: number; price: number; // price per additional service }[]; property: { id: number; name: string; }; guest: { gender: "" | "m" | "f"; firstname: string; lastname: string; email: string; phone: string; street: string; city: string; zipcode: string; country: string; // ISO 3166-1 note: string; payment: { invoice: boolean; method: 1 | 2 | 4 | 8 | 16 | 32 | 256 | 512 | undefined; }; company: { name: string; taxnumber: string; street: string; city: string; zipcode: string; country: string; // ISO 3166-1 }; }; /** @deprecated use property instead */ accommodation: { id: number; name: string; }; } EXAMPLE WITH GOOGLE ADWORDS The example shows the tracking of a booking with Google Adwords. ${CONVERSION_ID} and ${CONVERSION_LABEL} are placeholders. BookingSüdtirol.Widgets.Booking("#Bs-BookingWidget", { // ... onBookingSuccess: () => { var img = document.createElement("img"); img.setAttribute( "src", "//www.googleadservices.com/pagead/conversion/${CONVERSION_ID}/?label=${CONVERSION_LABEL}&guid=ON&script=0", ); img.setAttribute("alt", ""); img.setAttribute("height", 1); img.setAttribute("width", 1); img.style.borderStyle = "none"; document.body.appendChild(img); }, }); -------------------------------------------------------------------------------- EVENTS As the user interacts with the widget, events are generated in the background for the following interactions: GOOGLE ANALYTICS 4 SEARCH The user selects travel dates in the calendar. ParameterDescriptionValuesearch_termHardcoded search termSearch booking availabilityarrivalArrival Date2022-02-04departureDeparture Date2022-02-11affiliationWidget typeHGV Booking Widget VIEW_ITEM Available rooms and additional services are shown to the user. ParameterDescriptionValueitems.item_list_idRateplan ID49143items.list_nameRateplan titleZimmer Preiseitems.item_idRoom ID25723items.item_nameRoom titleDoppelzimmer Deluxeitems.quantitySelected items0affiliationWidget typeHGV Booking Widget VIEW_ITEMS The user views the room list of a specific offer. ParameterDescriptionValueitems.*See view_item eventaffiliationWidget typeHGV Booking Widget SELECT_ITEM The user opens a rateplan for a specific room. ParameterDescriptionValueitems.*See view_item eventaffiliationWidget typeHGV Booking Widget ADD_TO_CART The user adds rooms or additional services to the cart. ParameterDescriptionValueitems.item_list_idRateplan ID49143items.list_nameRateplan titleZimmer Preiseitems.item_idRoom ID25723items.item_nameRoom titleDoppelzimmer Deluxeitems.quantitySelected items1items.adultsNumber of adults2items.childrenNumber of children0items.pricePrice without discount550items.discountDiscount value170items.currencyEURitems.categoryRoomsitems.item_variantBoard ID2currencyEURaffiliationWidget typeHGV Booking Widget REMOVE_FROM_CART The user removes rooms or additional services from the cart. ParameterDescriptionValueitems.*See add_to_cart eventcurrencyEURaffiliationWidget typeHGV Booking Widget BEGIN_CHECKOUT The user starts to enter his personal informations. ParameterDescriptionValueitems.*See add_to_cart eventcurrencyEURaffiliationWidget typeHGV Booking Widget ADD_PAYMENT_INFO The user adds payment informations. ParameterDescriptionValuepayment_typePayment method ID2items.*See add_to_cart eventcurrencyEURaffiliationWidget typeHGV Booking Widget PURCHASE The user completes a purchase. ParameterDescriptionValuevalueReservation price380transaction_idUnique reservation ID1234567couponCoupon titleWINTER_2022items.*See add_to_cart eventcurrencyEURaffiliationWidget typeHGV Booking Widget GENERATE_LEAD The user completes an enquiry. ParameterDescriptionValuetransaction_idUnique reservation ID1234567affiliationWidget typeHGV Booking Widget Next Enquiry * Installation * Configuration * Method arguments * URL parameters * API * id: string * propertyId: number * accommodationId: number * privacyURL: string * termsURL: string * lang: string? * arrival: string? * departure: string? * currentMonth: string? * guests: number[][]? * occupations: number[][]? * layout: string? * defaultOfferList: string? * offerId: number? * roomId: number? * promotion: [string | null, string | null, string | null]? * source: string? * onOccupanciesChange: (guests: number[][])? => void * onStaySelection: (stay: object)? => void * onBookingSuccess: (reservation: object)? => void * onBookingError?: Function * onRequestSuccess: (reservation: object)? => void? * onEnquirySuccess: (reservation: object)? => void? * Reservation structure * Example with Google Adwords * Events * Google Analytics 4 © 2024 HGV Service Genossenschaft