Source: https://grandemuseodelduomo.waf.it/en/cumulative-ticket-great-museum-of-the-cathedral-of-florence?idtour=8484l
Timestamp: 2019-08-19 05:59:22+00:00

Document:
Access all the monuments
of the Grande Museo del Duomo
Time booking is mandatory to access Brunelleschi's Dome.
Dome 08:30-18:20
See the available times
'); $(".buyButtonDiv").append('
'); $(this).hide(); that = this; realCartObjects={ "id":"", "type":"", "quantity":"", "itemParameters":{ "entryDate":"", "entryTime":"", "childItemIds":[] }, "priceParameters":{} }; cartItemsArray = []; e.preventDefault(); var itemId = $('.hidden-id').val(); var quantity = $('.qty2').val(); var date = $('.date-select').val(); var hour = $('.hour-select').val(); /*console.log(typeof hour); console.log(this); console.log(that);*/ if(hour=="") hour = ""; if(typeof qt!=="undefined")realCartObjects.itemParameters = {"entryDate":date, "entryTime":hour,"childItemIds":[]}; else {$(this).removeAttr('disabled');if ($(".loader").length>0) $(this).show();$(".loader").remove()} //console.log(realCartObjects); realCartObjects.id = item.id; realCartObjects.type = "item"; realCartObjects.itemParameters = realCartObjects.itemParameters = {"entryDate":date, "entryTime":hour,"childItemIds":[]}; if($(".tr-optionals").length>0) { //console.log("cione"); for (var i = 0; i < $(".tr-optionals").length; i++) {//console.log($($(".optionals-check")[i]).is(":checked")); if($($(".optionals-check")[i]).is(":checked")==true) { console.log("dawd"); //$($(".bundle-fare")[i]) //console.log($($(".qty-optional")[i])); //console.log($($(".bundleId")[i])); //tmps = setBundleForCart($($(".bundleId")[i]).val(),$($(".qty-bundle")[i]).val(),$($(".bundle-fare")[i]).val(),date); realCartObjects.itemParameters.childItemIds.push($($(".optionalId")[i]).val()); } //scrivere l'oggetto passato come child parameters saranno tanti oggetti quanti le fare } console.log(realCartObjects); } //console.log(realCartObjects); var priceOptions = priceParam; realCartObjects.priceParameters = priceOptions; realCartObjects = realCartObjects; //console.log($(".hour-form-input")[0].children[0].children); console.log(realCartObjects) //console.log($(".hour-form-input").css("display")); //controllo se i campi data e ora sono riempiti se si proseguo all'aggiunta al carrello console.log(date); var warning = null; if($(".optionals-check").prop('checked')==false){ checkCupola(addtoCart); }else{ addtoCart(true); } //controllo la data //console.log($(".goToCart").length); //if(!$(".goToCart").length) {$(this).append('vai al cart');} }); //spostare i più e i meni nella chiamata per usare qt ritornata //diminuisce le quantità $('.minus').click(function(event) { portal = "418"; //var quantity = $(".qty2").val(); var quantity = $(this).siblings(".qty2").val(); //console.log(quantity); fare = $(this).parent().parent().parent().siblings(".hidden-fare").val(); var that = $(this).parent().parent().parent().parent().siblings().children('.totale-parziale'); //console.log(fare); if(parseInt(quantity) <= 0){ console.log("nope"); }else{ qt = parseInt(quantity)-1; if(fare) { data = [{"quantity":qt, "priceCategory":fare,"parameters": { "portalId": portal }}]; fares[fare]=data; fares[fare]["priceParam"] = ajaxPrice(itemId, data, that, priceParam, "plus"); fares[fare]["priceParam"] = {"priceCategory":fare, "optional-1" : false}; if(qt==0){delete fares[fare]} } else { data = [{"quantity":qt, "priceCategory":"full","parameters": { "portalId": portal }}]; fares["full"] = data; fares["full"]["priceParam"] = ajaxPrice(itemId, data, that, priceParam, "plus"); fares["full"]["priceParam"] = {"priceCategory":"full", "optional-1" : false}; } //console.log(data); $(this).siblings(".qty2").val(qt); //ajaxPrice(itemId, JSON.stringify(data), that); //console.log(priceParam); priceParam = {"priceCategory":fare, "optional-1":false}; //console.log(priceParam); checkStockInRealTime(); } }); //aumenta la quantità $('.plus').click(function(event) { portal = "418"; var quantity = $(this).siblings(".qty2").val(); var quantityCheck = parseInt($($(".qty2")[0]).val())+parseInt($($(".qty2")[1]).val()); if (parseInt(quantityCheck)<10) { if (quantity == null) {quantity = 0;} //trying to fetch the fare fare = $(this).parent().parent().parent().siblings(".hidden-fare").val(); var that = $(this).parent().parent().parent().parent().siblings().children('.totale-parziale'); //those = $(this); qt=parseInt(quantity)+1; if(fare) { data = [{"quantity":qt,"priceCategory":fare,"parameters": { "portalId": portal }}]; fares[fare]=data; fares[fare]["priceParam"] = ajaxPrice(itemId, data, that, priceParam); fares[fare]["priceParam"] = {"priceCategory":fare, "optional-1" : false};; } else { data = [{"quantity":qt,"priceCategory":"full"}]; fares["full"] = data; fares["full"]["priceParam"] = ajaxPrice(itemId, data, that, priceParam); fares["full"]["priceParam"] = {"priceCategory":"full", "optional-1" : false};; } //console.log(data); //console.log(priceParam); //fares["priceParam"] = {"priceCategory":fare, "optional-1" : false}; console.log(fares); $(this).siblings(".qty2").val(qt); }else console.log("nope"); checkStockInRealTime(); }); function ajaxPrice(itemId, datas, that, priceParam) { var that = typeof that != undefined ? that:null; return item.getPrice(datas).then(function(data) { console.log(data); console.log(that); //sumprice = data.price[0].basePrice+data.price[0].intermediaryFee+data.price[0].supplierFee+data.price[0].wafFee; tmpsum = 0; for(component in data["0"]) { tmpsum+=data["0"][component]; } //console.log(tmpsum); sumprice=tmpsum; //console.log(sumprice);+ //console.log(that);console.log("log"); that[0].innerText=sumprice.toFixed(2); //console.log($(".totale-parziale")); var sumTotal = 0; console.log($(".totale-parziale")); for (var i = 0; i < $(".totale-parziale").length; i++) { console.log($(".totale-parziale")[i].innerText); console.log(parseFloat($(".totale-parziale")[i].innerText)); sumTotal += parseFloat($(".totale-parziale")[i].innerText); } $(".total2")[0].innerText="€"+sumTotal.toFixed(2); return priceParam={totale:sumprice.toFixed(2), component:data}; } ); //console.log(priceParam); return priceParam; } //this function gets the prices and the quantities and the fares from the front-end function getPriceParamenters() { //console.log($aFares); priceRelated = $(".fare-td").siblings('.text-right').children('.totale-parziale'); qt=$(".fare-td").children().find(".qty2"); $aFares = $(".fare-td").children('.hidden-fare'); priceParam={} //console.log(qt); for (var i = 0; i <= $aFares.length; i++) { if ($aFares[i]!=undefined) { tmpVal=$aFares[i].value; tmpQt=qt[i].value; priceParam[tmpVal]={rate:$aFares[i].value, quantity:qt[i].value, price:priceRelated[i].innerText}; } } return priceParam; } //console.log(cuckedAvailability); cuckedAvailability.then(function(data){ console.log(data); console.log("dawdawdawd"); if(data!=undefined){avail = data[language];} if(data!=undefined && data[language]==undefined) {avail = data.all;} if(data == "undefined") {avail = null;} var datesEnable = new Array() ; var loop = 0; //controllo che ci siano date e le metto in un array se il formato non è .data[values] non ci sono date e tutti i giorni sono disabilitati; aggoirnamnto 09-10-2017 non è più vero quello scritto prima quindi toglo il codice qui sotto if (data!=undefined && avail) { for(var key in avail) { //console.log(key); //controllo del formato vero e proprio // if((key!="qt" && key!="time")) // { //splitto le date per avere delle array [yyy, mm, dd] e le inserisco in datesEnable datesEnable.push(key.split("-")); // } } } if(datesEnable.length>0) { datesEnable = minusMonth(datesEnable);//qui sottrago uno al mese perchè il calendario conta i mesi da 0 //console.log(datesEnable); datesEnable.unshift(true); } //fine cucked //console.log(datesEnable) if (datesEnable.length<=0) { //console.log("dawdawd"); var $inputDate = $(".date-select").pickadate({ disable:[true] }); } else if (datesEnable.length>0) { // console.log("il cioa"); var $inputDate = $(".date-select").pickadate({ disable:datesEnable, format:'yyyy-mm-dd', clear:'', onStart: function(context){ $('.gmd_orari_cupola_title').html(this.get('select', 'dd/mm/yyyy')); console.log("started"); } }); var pickerDate = $inputDate.pickadate('picker'); pickerDate.on({ open:function() { console.log("opened"); }, render: function() {$('.gmd_orari_cupola_title').html(this.get('select', 'dd/mm/yyyy')); console.log("rendered"); }, set:function(context) {$('.gmd_orari_cupola_title').html(this.get('select', 'dd/mm/yyyy')); console.log("setted"); console.log(context); console.log(data); } }); } else { //console.log("il cioa the return"); //se non ci sono date da abilitare sono tutte disabilitate var $inputDate = $(".date-select").pickadate({ disable:[ true, ], format:'yyyy-mm-dd', clear:'', onSet: function(context){ console.log(contextcontext.highlight.obj); $('.gmd_orari_cupola_title').html(this.get('select', 'dd/mm/yyyy')); }, onStart: function(context){ console.log("1"); console.log(context); } }); var pickerDate = $inputDate.pickadate('picker'); } /*var $inputDate = $(".date-select").pickadate({ format:'yyyy-mm-dd', clear:'', onSet: function(context){ console.log(contextcontext.highlight.obj); }, onStart: function(context){ console.log("1"); console.log(context); } });*/ //____ORARI___ se in qualche modo questo fallisce piangere, scherza, ma considerare un altro timePicker magari fatto a mano date = pickerDate.get(); $(".date-select").change(function(event) { date = pickerDate.get(); getOrariCupola(date); //console.log(date); //console.log(avail[date][0].stock);console.log(avail[date][0].time); for(data in avail[date]) { //console.log(avail[date][data]); if (avail[date][data].stock==0) { alert("servizio non prenotabile scorte esaurite"); } else{ if (avail[date][data].time!="all") { timeType = "all"; //una volta selezionata la data mostro il form per selezionare l'orario $(".hour-form-input").show(); //console.log("changed"); //prendo la data del form data //console.log(avail[date]); //cerco tutti gli orari collegati alla data nell'array availability, beware! magic numbers inbound. Splitto le ore per avere un array[HH,i,s] da dare in pasto al timepicker //provare ad inizializzare il timepicker prima e poi refresharlo ad ogni cambiamento di data //tipo if get time picker start == true stop, poi init TimePicker if((avail[date]=="defined" && avail[date][data]["time"]==="any") || avail["time"]==="always"){ //se time è always allora bilito tutti gli orari var $inputTime = $( '.hour-select' ).pickatime({ format:'HH:i' }); }else { //se time ha dei valori allora procedo ai controlli //console.log(date); console.log(language); var hours = getHours(avail[date]); //hour = avail[date][1]["time"].split(":"); //hour.splice(2,1); if (typeof pickerTime!="undefined") { //console.log("dawdaw") } //abilito solo gli orari relativi alla data scelta var $inputTime = $( '.hour-select' ).pickatime({ format:'HH:i', disable:hours, interval:15 }); var pickerTime = $inputTime.pickatime("picker"); } } } } //scrivere qui gli optionals console.log("optionals"); //opt = $(".optionals"); if($(".optionals").length) { //$(".tr-optionals").show('fast', function() { var aItem = new Array(); var optionals = $(".optional-hidden"); for (var i = 0; i < optionals.length; i++) { aItem[i] = new Item($(optionals[i]).val()); } for (var i = 0; i < aItem.length; i++) { if(aItem[i].id==9206) { id = aItem[i].id; select = "."+id+"-hour-select";//console.log(select); console.log(id); aItem[i].getAvailability(date,date).then(function(value){ console.log(value); //console.log(i); console.log(aItem); ///console.log((value.all[date])); //var hours = getHours(avail[date]); language = "it"; if(!value.hasOwnProperty("availability")) val=value[language][date]; today = moment().format("YYYY-MM-DD"); nowHour = moment().format("HH:mm:ss"); /*if(date == today) { nowHour = moment().format("HH:mm:ss"); console.log(nowHour); for (var i = 0; i < val.length; i++) { if(val[i].time>nowHour) { console.log(val[i]); } } }*/ if (value!=undefined && value[language]!=undefined) { //console.log($(".hourOption")); if($(".hourOption").length>0) { /*for (var i = 0; i < $(".hourOption").length; i++) { console.log($($(".hourOption")[i]));*/ $(".hourOption").remove(); //} } if($(".noStocks").length>0) { $(".noStocks").remove(); } console.log($(".noOption").length); if($(".noOption").length==0)$(select).append(""); $.each(val, function (i, val) { if (val.stock!=0 && val.time>nowHour && date==today) { $(select).show(); $(select).parent().siblings('.optionals').show(); $(select).append($('', { value: val.time.slice(0,5), text : val.time.slice(0,5), class:"hourOption", "data-quantity":val.stock })); }else if(date!=today && val.stock!=0) { $(select).show(); $(select).parent().siblings('.optionals').show(); $(select).append($('', { value: val.time.slice(0,5), text : val.time.slice(0,5), class:"hourOption", "data-quantity":val.stock })); } }); checkStockInRealTime(); }else if(value.hasOwnProperty("availability")) { //due if innestati ho bisogno che sia così per evitare errori di sorta feelsbadman if($(".noOption").length==0)$(select).append(""); if (value.availability.time=="all" && value.availability.stock==0 && $(".hourOption").length>0) { $(".hourOption").remove(); $(select).parent().siblings('.optionals').hide(); $(select).hide(); $(select).parents(".hour-select").append('
'); $(select).hide(); $(select).parent().siblings('.optionals').hide(); console.log(select); } } }); } } //}); } }); } ); }); function checkStockInRealTime() { if($(".optionals").length>0 && $(".optionals").children('.optional-hidden').val()=="9206") { sum=0; for (var i = 0; i < $(".quantity-item").length; i++) { sum += parseInt($($(".quantity-item")[i]).val()); } //console.log($(".hourOption").attr('data-quantity')); if ($(".hourOption").length>1) { for (var i = 0; i < $(".hourOption").length; i++) { //console.log($($(".hourOption")[i]).attr('data-quantity')); if ($($(".hourOption")[i]).attr('data-quantity')=sum && !$($(".hourOption")[i]).is(":visible")) { $($(".hourOption")[i]).show(); } /*if($($(".hourOption")[i]).css('display')) { displayNone++; }*/ } displayNone = 0; for (var i = 0; i < $(".hourOption").length; i++) { if($($(".hourOption")[i]).css('display')=="none") { displayNone++; } console.log(displayNone); } if (displayNone>=$(".hourOption").length) { $($(".hourOption")[0]).parents(".hour-select").hide(); $($(".hourOption")[0]).parents(".hour-select").siblings('.optionals').hide(); $($(".hourOption")[0]).parents(".tr-optionals").append('
'); }else if($(".hourOption").length==1 && $($(".hourOption")[0]).attr('data-quantity')>=sum) { $($(".hourOption")[0]).parents(".hour-select").show(); $($(".hourOption")[0]).parents(".hour-select").siblings('.optionals').show(); $(".noStocks").remove(); } } } //funzione che sottrae uno al mese, il calendario conta i mesi da zero function minusMonth (array) { //ciclo l'array e sottraggo uno al mese for(i=0; i< $(".qty2").length; i++) { qt += parseInt($(".qty2")[i].value); } console.log(qt); optionalCartObjects["itemParameters"].parentItemId = 8484; if($(".optionals").length) { //console.log("popopo"); var aItem = new Array(); var optionals = $(".optional-hidden"); //console.log(optionals); for (var i = 0; i < optionals.length; i++) { console.log($(optionals[i]).val()); aItem[i] = new Item($(optionals[i]).val()); } var optionalQuantity = qt; var arrayChecked = $(".optionals-check"); //console.log(arrayChecked); for (var i = 0; i < aItem.length; i++) { console.log($(arrayChecked[i]).prop('checked')); if($(arrayChecked[i]).prop('checked')) { optionalCartObjects.id=aItem[i].id; optionalCartObjects.type="item" //console.log($(optionalQuantity[i]).val()); optionalCartObjects.quantity=$(optionalQuantity[i]).val()?$(optionalQuantity[i]).val():qt; optionalCartObjects["itemParameters"].entryDate = date; if($("."+aItem[i].id+"-hour-select")[0]!=undefined){ hourValue = $("."+aItem[i].id+"-hour-select")[0].value; hourValue = hourValue; console.log(hourValue); optionalCartObjects["itemParameters"].entryTime = hourValue; } else {optionalCartObjects["itemParameters"].entryTime="09:00";} console.log(hourValue); if(hourValue="") return false; optionalCartObjects.priceParameters = {"priceCategory":"full", "optional-1":false}; console.log(optionalCartObjects); optionalCartObjects; /* dataS = moment(); dataE = moment().add(1,"day"); dataS.format('YYYY-MM-DD'); aItem[i].getAvailability(dataS.format('YYYY-MM-DD'),dataE.format('YYYY-MM-DD')).then(function(value) { //console.log(value); avail = value[language]; avail[date][data].stock=0; var hours = getHours(avail[date]); //$(item.id+"-availability-optional-container").children('.hourOptional-form-input').children(".form-group").children('.input-form-box').children('.hour-select').pickatime({format:"HH:i",disable:hours, interval:15}); });*/ } } return [optionalCartObjects]; } else { return false; } } function checkCupola(addtoCart) { //mettere il modal poi alert solo di prova var cupolaAlert = bootbox.confirm("ATTENTION: In order to access the Dome (Cupola) IT IS MANDATORY to add the time booking now.
Please select CANCEL to add the booking if you haven't or choose a different date if availability is sold out for your selected one.
Select OK if you wish to proceed without booking.
IT WILL NOT BE POSSIBLE to add the time booking later, thus losing the possibility to visit the Dome.", function(result){console.log(result); addtoCart(result)}); //addtoCart(cupolaAlert); } function addtoCart(warning){ var errors = checkValidation(); console.log(warning); if (errors) { //try optionals rimuovere poi //fine try //alert("inserire data");console.log("Dioooooooo"); /*cart.add(realCartObjects).then(function(data){ console.log(data); console.log(that); $(".form-reservation-content").append('vai al cart'); });*/ if ($(".loader").length>0) { $(".buy-button").show();$(".loader").remove() } $(".buy-button").removeAttr('disabled'); }else if(warning===false){ if ($(".loader").length>0) { $(".buy-button").show();$(".loader").remove() } $(".buy-button").removeAttr('disabled'); } else if (!$('.date-select').val()) { alert("inserire data"); $(".buy-button").removeAttr('disabled'); if ($(".loader").length>0) {$(".buy-button").show();$(".loader").remove();} } else if ($(".hour-form-input").css("display")!="block" && timeType!="all") { //questo controlla il campo orario se al momento del submit è vuoto stampa un alert e non aggiunge un oggetto al cart //swal("isnerire ora"); arrayOpt = optionals(cart); //console.log(arrayOpt); if(arrayOpt!=null) { for (var i = 0; i < arrayOpt.length; i++) { //console.log(arrayOpt[i]["itemParameters"].entryTime); if(arrayOpt[i].id!="" && arrayOpt[i]["itemParameters"].entryTime!="") cartItemsArray.push(arrayOpt[i]); } } console.log($(".whole").length); for (var i = 0; i < $(".whole").length; i++) { console.log($($(".whole")[i]).children('.hidden-fare').val()); console.log($($(".whole")[i]).find(".quantity-item").val()); tmpObj = $.extend( true, {}, realCartObjects); console.log(tmpObj); console.log(tmpObj.priceParameters); console.log($($(".whole")[i]).find(".quantity-item").val()); if(parseInt($($(".quantity-item")[i]).val())>0) { tmpObj.quantity = $($(".quantity-item")[i]).val();//$($(".whole")[i]).find(".quantity-item").val(); tmpObj.priceParameters["priceCategory"] = $($('.hidden-fare')[i]).val(); cartItemsArray.push(tmpObj); } //console.log(realCartObjects); } console.log(cartItemsArray); qttmp = 0; for (var i = 0; i <$(".quantity-item").length ; i++) { qttmp +=parseInt($($(".quantity-item")[i]).val()); console.log("dodo"); } //console.log(qttmp); if(qttmp>0) { cart.add(cartItemsArray).then(function(data){ setTimeout(function(){ $(this).removeAttr('disabled'); //if ($(".loader").length>0) $(".loader").replaceWith(this); window.location.href = "/en/cart/checkout"; }, 2000); /*$(this).removeAttr('disabled'); window.location.href = "/en/cart/checkout";*/ /*if(!$(".goToCart").length) $(".cart-button").append('vai al cart'); $(".buy-button").remove();*/ }); } else {$(".buy-button").removeAttr('disabled'); if ($(".loader").length>0) { $(".buy-button").show();$(".loader").remove(); } } } else { //ajax call to add an item to the cart cambiare json_options in json_options_item e aggiungere options price url: '/cart/add/item/'+itemId+"/"+quantity+"/"+itemOptions+"/"+priceOptions, cambiare anche le funzioni a backend //Sam, forgive my meddling, trying to save you some work! //optionals(cart); arrayOpt = optionals(cart); //console.log(arrayOpt); if(arrayOpt!=null) { for (var i = 0; i < arrayOpt.length; i++) { //console.log(arrayOpt[i]["itemParameters"].entryTime); if(arrayOpt[i].id!="" && arrayOpt[i]["itemParameters"].entryTime!="") cartItemsArray.push(arrayOpt[i]); } } for (var i = 0; i < $(".whole").length; i++) { console.log($($(".whole")[i]).children('.hidden-fare').val()); console.log($($(".whole")[i]).find(".quantity-item").val()); tmpObj = $.extend( true, {}, realCartObjects); //console.log(tmpObj); //console.log(tmpObj.priceParameters); console.log($($(".whole")[i]).find(".quantity-item").val()); if(parseInt($($(".whole")[i]).find(".quantity-item").val())>0) { tmpObj.quantity = $($(".whole")[i]).find(".quantity-item").val(); tmpObj.priceParameters["priceCategory"] = $($(".whole")[i]).children('.hidden-fare').val(); cartItemsArray.push(tmpObj); } //console.log(realCartObjects); } cart.add(cartItemsArray).then(function(data){ setTimeout(function(){ $(".buy-button").removeAttr('disabled'); //if ($(".loader").length>0) $(".loader").replaceWith(this); window.location.href = "/en/cart/checkout"; }, 2000 ); }); } } function checkValidation() { var errors = false; //console.log($(".qty2")); //console.log(); /*for (var i = 0; i < $(".qty2").length; i++) { if($(".qty2")[i].value==0) { } }*/ if ($(".gmd_condizioni")[0].checked==false) { $(".errorCondizioni").append("
The approval of the sales conditions is required in order to complete the booking
") errors = true; } return errors; }
3. Number of tickets
Brunelleschi's Dome Skip-the-Line Booking
We couldn't fetch the price amount for the given item and parameters. Details:
Please read and approve the booking conditions
The booking times can change due to variations in the closing times of the monuments. Always consult the updated timetable on the web-site.
Full Price Tickets 18 euros
Reduced Price Tickets 3 euros
Italian journalists with card of the tessera dell’Ordine Nazionale dei giornalisti or authorized by the Opera di Santa Maria del Fiore
St. John's Baptistry free for residents in Florence and province
Please note: a presale fee of € 2.00 is required per each person.
Monuments Hours
Dome 08:30-18:20 Details
Baptistry 08:15-10:15 / 11:15-18:30 Details
Bell Tower 08:15-18:50 Details
Museum 09:00-21:00 Details
gmd_avviso_sold_out_prenotazioni
Price and Reductions Details*
✤ The 72 hour window for visiting monuments begins from selected date listed on your ticket. If you booked Dome, valid from the day of the reservation. No other monument entrance will be available until after Dome reservation.
✤ The Cumulative ticket includes one access to each of the monuments of the Great Museum Opera del Duomo - Complesso Monumentale di Santa Maria del Fiore - formed by: Museo dell’Opera di Santa Maria del Fiore (Cathedral Museum), Brunelleschi's Dome (Cupola), Giotto's Bell Tower, Baptistery of San Giovanni and Archaeological site of Santa Reparata.
✤ Please note: a presale fee of € 2.00 is required per each person.
✤ Attention: Access to the Cathedral (Duomo) itself is free and not bookable; it is not part of the Cumulative Ticket.
✤ The booking for the Brunelleschi's Dome cannot be modified, canceled nor refunded.
✤ Direct access without going through the cashier queue
✤ Access will be permitted only for ticket holders
✤ Mandatory time booking to access the Dome; booking is strictly nominative and must be made contextually to the tickets purchase. Visitors are requested to be at the entrance 20 minutes before the visit for security controls.
✤ Time booking for the Dome is not available for free tickets. Holders of these tickets must submit their bookings at the ATMs.
✤ Warning: the Museo dell'Opera del Duomo will be closed from 4 to 22 November 2019.
For groups of more than 10 people, please contact the sales department
CONTRACT CONDITIONS FOR ISSUING
“THE SINGLE ADMISSION TICKET” FOR ENTRACE TO “THE GREAT CATHEDRAL MUSEUM”
THE SINGLE ADMISSION TICKET: entrance document entitling admission to the monumental complex of Piazza Duomo
THE GREAT CATHEDRAL MUSUEM: monumental complex located in Florence and made up of Giotto’s Bell Tower, Brunelleschi’s Dome, San Giovanni’s Baptistry, the Crypt of Santa Reparata and the Museum of the Opera del Duomo (Cathedral Workshop).
CHILDREN: children aged between 6 and 11 years old
WEBSITE: https://www.ilgrandemuseodelduomo.it/
2. PURCHASE AND COST OF “THE SINGLE ADMISSION TICKET” AT A FULL AND REDUCED PRICE
With the purchase of “The Single Admission Ticket” the buyer shall have the right to enter the monumental complex of “The Cathedral Great Museum”. “The Single Admission Ticket” may not be transferred to third parties, nor may it be purchased through an authorized representative, unless by a commercial agreement signed for this purpose authorized by Opera di Santa Maria del Fiore.
The full price of “The Single Admission Ticket” is 18 Euros.
Children may obtain the “The Single Admission Ticket” at the reduced price of 3 Euros. Children of 6 years of age or younger may enter the “The Great Cathedral Museum” free of charge.
In the case of a purchase of the single admission ticket being made online, the sale price will be increased by the amount of 2 Euros corresponding to the advance sale fee.
3. BOOKING METHODS FOR VISITING THE DOME
Reservations are mandatory in order to visit Brunelleschi's Dome. Users can book the visit to the Dome both at the time of purchase of the ticket online as well as after the purchase of the ticket at the ticket office, by going to the totems; in any case, reservations are allowed until all available seats have been exhausted.
It should be remembered that users any case are given the opportunity to complete the purchase even without a reservation, but will only be allowed to enter the other monuments excluding the Dome without any possibility of asking for a refund.
4. FREE “SINGLE ADMISSION TICKETS”
The following users are exclusively entitled to free "The Single Admission Ticket" and therefore to free entrance:
visitors with disabilities and their accompanying persons;
Police Forces, only in the course of their duties in regular service;
Priests, men and women religious;
Journalists registered in the Italian National Order of Journalists or in the Foreign Press Association in Italy if in possession of an authorization document issued by the Opera Administration;
The accompanying person of a homogeneous group for every 20 persons;
Teacher and/or accompanying person of scholastic groups for every 10 pupils;
Tour guides authorized by the Province of Florence to exercise their profession;
ICOM- ICOMOS card-holders (please note that free entry is only valid only for the Museum of Opera del Duomo (Cathedral Workshop)
FAI members for whom the facilitation is only valid on the 9 Euro Museum ticket.
“The Single Admission Ticket” can be paid by cash, bank debit card or credit card.
“The Single Admission Ticket” is not reimbursable.
Events such as adverse weather conditions, security and public order reasons or other organizational or technical factors that are not attributable to the Opera di Santa Maria del Fiore might cause changes in opening hours, access modes (including ascents and descents), or events scheduled for "The Great Cathedral Museum". The responsibility of Opera di Santa Maria del Fiore is excluded should one of these situations occur.
Reservations for all visits may be subject to cancellations due to liturgical celebrations or other extraordinary and organizational needs of Opera di Santa Maria del Fiore; these changes will be communicated as soon as possible by the staff assigned to the service via the Website or via e-mail or through the contacts communicated at the time of booking, however with no refund, in whole or in part, of "The Single Admission Ticket" under these circumstances.
"The Single Admission Ticket" is valid for 72 hours that begins:
• upon entrance into the first monument (entrance fee is included in ticket) when purchase in our ticket office. Brunelleschi Dome Reservation can be purchased at the automated ticket machine, located next to the ticket office. Upon purchase, the ticket must be validated within 72 hours of purchase.
• For tickets purchased online with Dome reservations, the 72 hours will begin with entrance to the Dome at selected reservation time. No other monument entrance will be available until after Dome reservation. You cannot validate your tickets until you enter the Dome.
Tickets purchased online can be used within 30 days of buyer’s selected date.
The purchase and/or use of "The Single Admission Ticket" entails the purchaser and/or user’s unconditional acceptance of the present general conditions of sale, as well as of the rules of conduct to be complied with during the visits to "The Great Cathedral Museum", expressly exempting Opera di Santa Maria del Fiore for any damage, be this direct or indirect, that may derive from the execution of the Contract, also due to the actions by third parties.
No animals of any kind or size are allowed, except for guide dogs for the blind or support/aid animals if certified.
Visitors are obliged to follow the itineraries, respect visiting times, opening and closing times, access modalities and provisions for the protection of the place and respect for its holiness.
The Opera of Santa Maria del Fiore staff may refuse access to visitors wearing clothing that does not respect the religiosity and/or the prestige of the place.
Mobile phones, tablets or similar, which might disturb the premises and its visitors, are permitted only if silenced and with the use of earphones.
Please contact the staff for any photographic and audio-visual shooting. In any case, the use of flashes and portable tripods is forbidden. It is always forbidden to photograph inside the area reserved for the worshipers.
It is forbidden to eat and drink inside the monuments.
The buildings to be visited are subject to the rules of artistic and cultural heritage protection and as such the utmost caution is recommended.
For safety reasons, it is not advisable for visitors to access the terraces wearing high heel shoes or wearing shoes that are not fit for safe walking, as there are very narrow and steep passages. Barefooted visitors are forbidden to go to the terraces. Children must be accompanied by an adult (who is at least 18 years old) and be held by hand during the visit to the terraces. Access with strollers and prams is allowed on the terraces only and exclusively if these are closed and not to be used. The itinerary is in fact difficult because there are steep connecting stairways and very narrow passages.
It is reiterated that Opera di Santa Maria del Fiore is exempt from any liability for direct or indirect damage that may occur to the visitor and/or objects they own as a result of the use of services, goods and museum areas made available within the places of "The Great Cathedral Museum", both individually and as a whole. Opera di Santa Maria del Fiore is also exonerated from any liability deriving from the theft of property owned by visitors in the areas and in the museum spaces.
We note that the safety measures are applied within the limits of compatibility of the nature and age of the buildings, with the exemption of all consequent responsibility on the part of the Opera of Santa Maria del Fiore. Maximum caution is therefore recommended.
To access and visit "The Great Cathedral Museum" it is necessary to have a valid "Single Admission Ticket". The staff reserves the right to check during the visit inside the monumental complex.
In the case of a purchase of "The Single Admission Ticket" from unauthorized for sale third-parties, or in case of theft, counterfeiting, or of the ticket not being legible (for reasons not attributable to Opera di Santa Maria del Fiore), a copied ticket or obtained in violation of the contract, the buyer:
shall not be allowed to enter "The Great Cathedral Museum", if he/she is at the entrance;
will be accompanied to the exit if, however, he/she is already inside the "The Great Cathedral Museum".
For the above stated purposes, "The Single Admission Ticket" may not be resold for commercial purposes, traded, transferred or delivered for commercial, advertising or promotional purposes (by way of example but not limited to, contest prizes, sales by charities) ) without having obtained the prior written consent from the Opera di Santa Maria del Fiore through the Area responsible for promotion.
Buyers may consult the Website, and/or contact the Information Office in order to find out the opening hours, the possible variations of dates, timetables or other elements related to the opening of "The Great Cathedral Museum", which will only be disclosed via these channels.
This purchase contract is governed by and interpreted in accordance with Italian law. Any dispute arising from and/or in connection with the contract will fall under the exclusive jurisdiction of the Court of Florence. The contract shall be valid and effective from the date of purchase of "The Single Admission Ticket" and the simultaneous receipt of payment by Opera di Santa Maria del Fiore. From that moment onward, the purchaser of "The Single Admission Ticket" will be subject to these General Conditions.
Prof. Luca Bagnoli
President of the Opera di Santa Maria del Fiore
e le Code of Conduct
The monumental complex of Santa Maria del Fiore is above all a place of worship. Visitors are asked to respect some simple rules.
1. Your pre-purchased ticket DOES NOT guarantee access or stay inside the monument. Prepurchased ticket DOES NOT guarantee access or stay if you choose not to respect the following:
2. Appropriate clothing is required, no bare arms/shoulders or bare legs â€“ Special attention to this point; access to the Cathedral, the Baptistery and Santa Reparata will be denied without an appropriate attire
3. Please be quiet
4. Please turn your mobile phones off
5. Do not eat nor drink
7. Works of art must not be touched
8. No smoking Please don't use flash or tripod
9. Entrance not allowed with large suitcases
10. Wardrobe not present
and our Privacy policy - F.A.Q.
Privacy Policy Statement pursuant to Art. 13 of (UE) Regulation No. 679/2016 and of the Privacy Code as recently modified by Legislative Decree 101/2018
For Opera Santa Maria del Fiore (hereinafter, also only OSMF) your privacy and the confidentiality of your personal data are particularly important. For this reason we collect and process them with the utmost care and attention, adopting at the same time, specific technical and structural measures in order to guarantee the complete safety of their processing.
We consequently inform you, therefore, pursuant to Art. 13 of the 2016/679 European Union Regulation and the Privacy Code as recently amended by Legislative Decree 101/2018 ("Regulations") that the processing of your personal data takes place in a manner suitable to guarantee security and confidentiality, and is carried out, using paper, computer and/or electronic media, as detailed in this Private Privacy Statement.
Processing of special categories of personal data: Processing of personal data revealing racial or ethnic origin, political opinions, religious or philosophical beliefs, or trade union membership, and the processing of genetic data, biometric data for the purpose of uniquely identifying a natural person, data concerning health or data concerning a natural person's sex life.
Data Controller: means the natural or legal person, public authority, agency or other body which, alone or jointly with others, determines the purposes and means of the processing of personal data
Data Processor: means a natural or legal person, public authority, agency or other body which processes personal data on behalf of the Data controller;
Distance selling contract: means any contract concerning goods or services concluded between a supplier and a consumer under an organized distance sales or service-provision scheme run by the supplier, who, for the purpose of the contract, makes exclusive use of one or more means of distance communication up to and including the moment at which the contract is concluded; made by means of distance communication` means any means which, without the simultaneous physical presence of the supplier and the consumer, may be used for the conclusion of a contract between those parties (Legislative Decree No. 185/1999, Article 1 of the Italian Civil Code).
The processing of your personal data is carried out by Opera Santa Maria del Fiore (hereinafter, also only OSMF), with its registered office in Florence, Via della Canonica 1, as Data Controller pursuant to and for the purposes of the Regulations.
For any questions related to the processing of your personal data you can contact OSMF at any time, by sending a request, to the following references:
Corporate Name: Fabbriceria di Opera di Santa Maria del Fiore - Onlus
Registered Office Address: Via della Canonica 1, Firenze (50122)
Telephone contact data: 055.2302885
E-mail contact data: [email protected]
Data Protection Officer(DPO) contact data: Paola Casaccino, [email protected]
External Data Processor pursuant to EU. Art. 28 Reg. 679/2016
1. The Company Weekend a Firenze S.r.L (hereinafter also WAF), with its registered office in Prato, Via Pistoiese 132, 59100, is appointed by OSMF as the External Data Processor pursuant to Art. 28 of the Regulation, and is required to carry out the activity assigned to it according to the specific instructions given by OSMF.
WAF, which was previously authorized and properly selected in order to offer a suitable guarantee of compliance with the rules on the processing of personal data, shall treat your data only in order to allow you to take advantage of our ticket sales service, which will take place by means of the regulations governing "distance contracts".
The latter will also assume all responsibility (invoicing, shipping, etc.) pursuant to the aforementioned Legislative Decree 185/1999 and Art. 51 et seq. of the Italian Consumer Code (Legislative Decree 206/2015).
It should also be noted that every transaction deriving from the stipulation of the aforementioned "distance contracts" will take place - in compliance with Art. 124 of Legislative Decree 101/2018 - on servers equipped with SSL encryption system in order to ensure a secure transmission, as well as the fact that the verification of the credit card will take place only via the bank payment (which will validate the payment and store the card code, without having the latter ever arriving at the WAF server).
2. The Company Connectis S.r.L (hereinafter also Connectis), with its registered office in Prato, Via Fra’ Bartolomeo 104, 59100, is appointed by OSMF as the External Data Processor pursuant to Art. 28 of the Regulation, and is required to carry out the activity assigned to it according to the specific instructions given by OSMF.
Connectis, which was previously authorized and properly selected in order to offer a suitable guarantee of compliance with the rules on the processing of personal data, shall treat your data only in order to allow the management and maintenance of the machines used for the automated supply of tickets (Totem).
Type of Data and the Purpose of the Date Processing
The personal data that OSMF shall deal with are only those that are provided by users who use the electronic ticket sales services.
These are only transmitted to Weekend a Firenze S.r.l., in relation to the service that is provided by it and its quality of External Data Processor.
OSMF may, therefore, collect personal identification data, such as personal data such as name and surname, email address, etc.
Your personal data, once it has been collected, are processed for the following purposes:
Compliance with the obligations foreseen by laws, regulations, national or European regulations, or provisions issued by Authorities and by Supervisory and Control Bodies.
The data processing carried out for these purposes are necessary for the fulfilment of legal obligations and to make it possible for the data subject to use the online sales service and does not require specific consent.
Perform the activity of providing electronic and IT ticket sales services.
The provision of data is necessary to allow users to use the online sales services provided by OSMF and do not require the specific consent from the data subject.
Your personal data shall be processed by OSMF systems and personnel, that has been specifically authorized pursuant to Art. 4, paragraph 10 of the EU Regulation, which processes data upon precise indications provided by the Data Controller.
Your personal data will also be transmitted to the aforementioned company Weekend a Firenze S.r.L., appointed External Data Processor pursuant to Art. 28 of the Regulations and which is required to carry out the activity assigned to it in accordance with the specific instructions given by OSMF.
Your personal data will also be processed by company Connectis S.r.l., appointed External Data Processor pursuant to Art. 28 of the Regulations and which is required to carry out the activity assigned to it in accordance with the specific instructions given by OSMF.
Finally, your data may be transmitted to the police forces and to the judicial and administrative authorities, in accordance with the law, for the investigation and prosecution of crimes, the prevention and protection from threats to public security, as well as to allow OSMF to exercise or protect its own or third party right before the competent authorities, as well as for other reasons related to the protection of the rights and freedoms of others, in accordance with the provisions of Art. 2-sexies of Legislative Decree 101/2018.
Retention period of the personal data (Data Retention)
We inform you that your data will be kept for a limited period of time, aimed solely for the purpose of fulfilling those obligations imposed by the ticket sales contract, and that, in any case, this period will not exceed 395 days.
At the end of this period, your data will be permanently erased by OSMF and WAF (at the address: [email protected])
We inform you that you have the right to exercise the following rights in relation to the personal data subject of this information, as provided for and guaranteed by the Regulation:
Right of access and rectification (Articles 15 and 16 of the Regulation) you have the right of access to your personal data and ask that the same are correct, be modified or completed. If you so desire, we will provide you a copy of your data in our possession.
Right of the erasure of the data (Art. 17 of the Regulation): in the cases provided for by the current legislation you may request the erasure of your personal data. Having received and analysed your request, we shall cease the processing and erase your personal data, if the request is found to be legitimate.
Right to the restriction of processing (Art. 18 of the Regulation): you have the right to request the restriction of processing of your personal data in the case of unlawful processing or if the accuracy of the personal data is contested by the data subject.
Right to data processing (Art. 20 of the Regulation): you have the right to ask for and obtain your personal data by the Data Controller in order to transmit them to another Data Controller, in those cases foreseen in the referred to Article.
Right to object (Art. 21 of the Regulation): you have the right to object at any moment to the processing of your personal data carried out on the basis or our legitimate interest, explaining the reasons for your request to us; before acceding to your requests, OSMF will have to evaluate the reasons of your request.
Right to lodge a complaint with a supervisory authority (Art. 77 of the Regulation and Art. 141 of the Legislative Decree 101/2018): you have the right to lodge a complaint with the competent Supervisory for the protection of the Personal Data whenever you feel that there is an infringement of your rights as regards the processing of your personal data.
Right to withdraw the consent given (Article 13 of the Regulation): to the processing of personal data that find their legal basis exclusively on your consent, you have the right to withdraw the consent you have given at any time, by contacting the Data Controller.
You may exercise your rights at any time with reference to the specific processing of your personal data by OSMF.
Further information about the rights of the data subject may be obtained by asking the Data Controller for a complete extract of the aforementioned articles.
Without prejudice to that which has been expressed so far, we remind you that the above rights may also be exercised by anyone who has a personal interest in, or acts to protect you, as your agent, or for family reasons worthy of protection, pursuant to Art. 2- (1) of the Legislative Decree 101/2018.
OSMF has adopted adequate security measures to safeguard the confidentiality, integrity, completeness and availability of the personal data of the data subject. Technical, logistical and organizational measures have been developed to prevent damage, even accidental losses, alterations, improper and unauthorized use of the processed data.
We proceed to test, verify and regularly assess the effectiveness of the safety measures, in order to ensure the continuous improvement in the security of the processing.
Modifications to Current Legislation
The constant evolution of our services might involve changes in the characteristics of the processing of your personal data described up to now. This privacy statement may be subject to changes and additions over time, as necessary owing to new regulatory measures regarding the protection of personal data, or the evolution/modification of our services.
We therefore invite you to periodically check the contents of our information: whenever possible, we will try to promptly inform you about the modification carried out and their consequences.
You have not selected the visiting hours for the Brunelleschi's Dome. If you want to visit the monument, reservation is required.

References: Art. 13
 Art. 13
 Art. 28
 Art. 28
 Art. 51
 Art. 124
 Art. 28
 Art. 4
 Art. 28
 Art. 28
 Art. 2
 Art. 141
 Art. 2