La xeremie es el instrumento más icónico: una gaita mallorquina que ha sonado en festivales folk durante siglos y sigue siendo símbolo de identidad cultural insular.
¿Alguna vez has escuchado el sonido penetrante de una gaita mallorquina resonando entre los olivos de la Serra de Tramuntana? La música tradicional mallorquina es mucho más que folclore: es la voz viva de una isla que ha sabido guardar sus raíces con una fidelidad extraordinaria. Desde los bailes de plaza hasta los cantos gregorianos de Nochebuena, el patrimonio musical de Mallorca invita a quien lo descubre a entender la isla desde dentro, con todos los sentidos.
Contenido del artículo
Contenidos / Contents
La tradición musical de Mallorca hunde sus raíces en la Edad Media y ha ido acumulando influencias a lo largo de los siglos: la herencia catalana llegada con la conquista de Jaume I, los ecos árabes del período andalusí y las corrientes mediterráneas que siempre han cruzado la isla. El resultado es un corpus musical singular, con géneros, instrumentos y rituales que no existen en ningún otro lugar del mundo exactamente de la misma forma. La música tradicional mallorquina es, en ese sentido, un patrimonio único e irrepetible.
Lo fascinante de esta tradición es su capacidad de supervivencia. Musicólogos como Baltasar Samper dedicaron décadas a recopilar canciones y melodías entre 1924 y 1932, y sus archivos —conservados en la abadía de Montserrat— son hoy una fuente esencial para el estudio de la música tradicional mallorquina. El folclore mallorquín cuenta además con archivos de enorme valor fuera de la isla, entre ellos el recopilado por Alan Lomax en 1952, conservado en la Biblioteca del Congreso de Estados Unidos.
La etnomusicología ha reconocido en Mallorca un laboratorio excepcional: una isla que, por su condición insular y su fuerte identidad lingüística y cultural, ha preservado formas musicales que en el continente desaparecieron hace siglos. El cant de l’Argument, las canciones de trabajo agrícola o las tonadas de Cuaresma son apenas algunos de los géneros que completan el mapa sonoro de la música tradicional mallorquina, de una riqueza difícil de abarcar en una sola visita.
En Finca Treurer, enclavada en el corazón agrícola de la isla, la música tradicional mallorquina forma parte del paisaje cultural que rodea cada visita. Escuchar las xeremies durante una festa local, con el aroma del aceite de oliva virgen extra Treurer impregnando el aire, es una experiencia que conecta al visitante con la Mallorca más genuina.
Ningún acercamiento a la música tradicional mallorquina está completo sin conocer los instrumentos que le dan cuerpo y carácter. Algunos son únicos de las Baleares; otros comparten familia con instrumentos de toda la cuenca mediterránea, aunque con una personalidad inconfundible que los sitúa en el centro del folclore balear.
Las xeremies son el instrumento más icónico de la música folk mallorquina. Esta gaita de odre acumula el aire en una bolsa de cuero y lo distribuye a través del «grall» —la pipa melódica— y del «braguer», que dirige el aire hacia el bordón bajo. Se cree que llegó a la isla con los repobladores catalanes en el siglo XIV. Si quieres escucharlas antes de viajar, este vídeo de la Escola Municipal de Mallorquí muestra las xeremies, el tamborí y el fabiol en acción dentro del contexto de la música tradicional mallorquina.
Las xeremies se tocan habitualmente en conjunto con el flabiol y el tambor o tamborí, formando lo que se conoce como mitja cobla. El puntero y los bordones se fabrican muchas veces con madera de almendro, un detalle que conecta el instrumento con el paisaje agrario de la isla y con la identidad más profunda de la música tradicional mallorquina.
Si las xeremies son la voz melódica de la tradición, la ximbomba es su pulso festivo. Se trata de un membranófono construido sobre un recipiente con un orificio en la base, cuya curiosidad principal es que para tocarse correctamente se necesita agua: hay que mantener la mano húmeda para frotar la caña que vibra contra la piel. La ximbomba es uno de los instrumentos más característicos de la música tradicional mallorquina y su sonido es inmediatamente reconocible.
La ximbomba está especialmente asociada a la fiesta de Sant Antoni, que se celebra el 17 de enero en distintos puntos de la isla, aunque su vínculo más conocido es con Sa Pobla. Las gloses y la mayoría de las canciones del carnaval de Sant Antoni se acompañan únicamente de una ximbomba. Escucharla en una noche de enero, con hogueras encendidas y el olor a botifarró en el aire, es una de esas experiencias que no se olvidan.
El repertorio de instrumentos de cuerda de la música tradicional mallorquina es igualmente rico. La bandúrria es un cordófono con caja de resonancia en forma de huevo, mástil corto con trastes y seis cuerdas dobles que se pulsan con una púa. El llaüt es similar pero de caja más grande, lo que le otorga un sonido más grave. Junto a la guitarra, estos tres instrumentos forman la columna vertebral armónica del ball de bot y de muchas otras danzas populares de la música tradicional mallorquina.
Las danzas folclóricas mallorquinas son inseparables de la música tradicional mallorquina que las acompaña. Cada baile tiene su propio carácter, su tempo, su historia y su lugar en el calendario festivo.
El ball de bot es el término genérico que agrupa diversas danzas tradicionales de las Illes Balears, como la jota, el fandango, la mateixa y el bolero. Su nombre —literalmente «baile de salto»— evoca la energía y la alegría que desprende cuando se interpreta en la plaza de un pueblo. Es, sin duda, la expresión más visible de la música tradicional mallorquina en el espacio público.
El ball de bot se acompaña de los instrumentos tradicionales mallorquines por excelencia: la xeremia, el tamborí y el fabiol. Los bailarines visten trajes tradicionales, y la combinación de música, movimiento y vestimenta crea un espectáculo de una autenticidad difícil de encontrar en otros lugares del Mediterráneo. Quienes asisten por primera vez a un ball de bot comprenden de inmediato por qué la música tradicional mallorquina genera un vínculo tan hondo con la identidad de la isla.
El bolero es el más famoso de los bailes mallorquines, se baila también en Menorca y se caracteriza musicalmente porque el tercer compás se subdivide en dos. Su estilo es señorial y elegante, acompañado por guitarras, violines, castañuelas y triángulo. No es un baile de desborde, sino de contención y precisión: cada gesto cuenta. El bolero es una de las joyas de la música tradicional mallorquina que más ha trascendido fronteras.
Algunos boleros se llaman parado —«detenido»— debido a que concluyen de forma inesperada. En los archivos históricos se conservan partituras del famoso Parado de Valldemossa, que sigue siendo una de las piezas más reconocibles del folclore balear.
La mateixa es un baile muy arraigado en las Illes Balears cuyo origen se remonta a finales del siglo XVII, y puede verse en actos públicos y privados. El vocablo mallorquín «mateixa» significa «la misma», y gozó de tanta popularidad que la expresión «tirar o pedir mateixes» era sinónimo de pedir un baile. Su vigencia en celebraciones contemporáneas demuestra que la tradición no está reñida con la vitalidad, y que la música tradicional mallorquina sabe renovarse sin perder su esencia.
El ball des cossiers es, probablemente, la danza tradicional más popular de Mallorca. Se cree que fue traído desde Cataluña en los siglos XIII o XIV. A diferencia del ball de bot, que es un baile de participación colectiva, los cossiers son una danza ritual interpretada por un grupo fijo de bailarines con roles simbólicos muy definidos. Se representa en festes patronals de varios municipios y su puesta en escena combina música, teatralidad y memoria colectiva de una forma única, situándose entre las expresiones más antiguas de la música tradicional mallorquina.
Hay un género de la tradición oral mallorquina que no suena en los escenarios de los grandes festivales, sino en las plazas de los pueblos, en las fiestas de Sant Antoni y en los encuentros entre aficionados: las gloses. Se trata de estrofas improvisadas que los glosadors —poetas orales populares— componen y cantan en el momento, combinando ingenio, memoria y destreza verbal en una forma de arte que la etnomusicología reconoce como uno de los pilares del patrimonio inmaterial balear y de la música tradicional mallorquina en su dimensión más literaria.
Un glosador es un versificador popular que improvisa sus canciones —«gloses»— y las recita o canta con una tonada característica. La glosa mallorquina se canta sin acompañamiento instrumental, con una tonada que cada glosador ha hecho suya. La estrofa tiene un mínimo de cuatro versos heptasílabos y dos únicas rimas que se combinan libremente. Los glosadors mallorquines son, junto a los bertsolaris vascos, los únicos del mundo que improvisan sin ningún acompañamiento musical —salvo en las fiestas de Sant Antoni, donde la ximbomba marca el ritmo.
El formato más espectacular es el combat de picat: los combates se realizan entre dos, tres, cuatro o cinco glosadores, pueden durar horas, y se improvisa sobre cualquier temática. En los años noventa, el filólogo Felip Munar se encargó de revitalizar en Mallorca el arte del canto improvisado a partir del testimonio de un pequeño grupo de glosadors veteranos que habían sobrevivido a la censura del franquismo. Hoy, glosadors como Mateu Matas «Xurí» mantienen viva esta tradición con una proyección que va mucho más allá de la isla. Si quieres vivir la experiencia de primera mano, las fiestas de Sant Antoni en Sa Pobla y Manacor son el escenario más auténtico para escuchar gloses en su contexto original, dentro del rico universo de la música tradicional mallorquina.
Entre todos los tesoros de la música tradicional mallorquina, hay uno que trasciende la categoría de folclore para convertirse en patrimonio de toda la humanidad: La Sibil·la. El Canto de la Sibila es un drama litúrgico de melodía gregoriana que tuvo gran difusión durante la Edad Media en el suroeste de Europa y que se interpreta de forma tradicional en la Misa de Gallo en las iglesias de Mallorca —entre las que destacan el monasterio de Lluc y la catedral de Palma— y en la catedral de Alguer, en Cerdeña.
Mallorca y Alguer son los dos únicos lugares en los que el canto constituye una tradición que se prolonga de forma continuada desde la Baja Edad Media hasta nuestros días, habiendo quedado inmune incluso a la prohibición del Concilio de Trento. El 16 de noviembre de 2010, la UNESCO decidió incluir el Canto de la Sibila en su Lista Representativa del Patrimonio Cultural Inmaterial de la Humanidad. Este reconocimiento internacional avala la excepcionalidad de la música tradicional mallorquina en el contexto europeo y la sitúa al nivel de los grandes patrimonios inmateriales del mundo.
El canto se interpreta la noche del 24 de diciembre en todas las iglesias de la isla de Mallorca, durante el oficio de maitines de la vigilia de Navidad. Lo entona un muchacho o una muchacha, acompañados por al menos dos acólitos; durante el canto recorren la iglesia en procesión hasta llegar al coro, mientras el cantante sostiene una espada erguida ante su rostro. Asistir a este rito en una iglesia rural de la isla —con las piedras centenarias como testigos y el silencio de la noche como marco— es una de las experiencias más emocionalmente poderosas que la música tradicional mallorquina puede ofrecer.
La música tradicional mallorquina no vive solo en los archivos ni en los museos: tiene un calendario festivo propio que la mantiene viva y en contacto con nuevas generaciones. Los festivales folk de la isla son la mejor oportunidad para experimentar este patrimonio en su contexto natural.
El festival de danzas tradicionales FolkAndratx ha alcanzado ya su tercera edición y coincide con la Fira d’Andratx, consolidándose como una de las citas culturales destacadas del municipio y un referente para la música tradicional mallorquina en el suroeste de la isla. Es uno de los pocos festivales de folclore que se celebran en Mallorca y cuenta con la participación de agrupaciones de diferentes puntos de España, impulsado por la agrupación Aires d’Andratx con el apoyo del Ajuntament d’Andratx y la Federación de Asociaciones de Coros y Danzas de España.
En el Pla de Mallorca —comarca que agrupa a 15 municipios agrícolas— tiene lugar de julio a septiembre el Festival Internacional Mancomunitat Pla de Mallorca; desde 1988, promueve conciertos gratuitos en iglesias, templos y parroquias. Este festival es especialmente valioso porque lleva la música tradicional mallorquina a los espacios donde siempre ha vivido: los interiores de piedra de las iglesias rurales mallorquinas, con su acústica natural y su carga histórica.
El Festival de Pollença es un clásico del verano mallorquín; su sede es el claustro de Santo Domingo, un recinto del siglo XVII con excelentes condiciones acústicas. Aunque su programación es principalmente de música clásica, el marco arquitectónico y el ambiente que genera conectan directamente con la sensibilidad que impregna toda la tradición musical de la isla y con el espíritu de la música tradicional mallorquina.
El Port de Sóller acoge también su propio festival folk, que celebra la música y la danza tradicional mallorquina en el pintoresco puerto de Sóller, con actuaciones, talleres y desfiles que permiten al visitante sumergirse en el rico patrimonio cultural de la isla.
Una de las preguntas más habituales de quien quiere vivir la música tradicional mallorquina en directo es: ¿cuándo y dónde? La respuesta es que la isla ofrece oportunidades prácticamente durante todo el año. La siguiente tabla recoge las citas más destacadas, organizadas por mes, para que puedas planificar tu visita con antelación.
| Mes | Evento / Fiesta | Municipio | Música / Danza |
|---|---|---|---|
| Enero (17) | Festa de Sant Antoni | Sa Pobla, Manacor, Artà | Ximbomba, gloses, ball de bot |
| Marzo–abril | FolkAndratx (Fira d’Andratx) | Andratx | Ball de bot, danzas regionales |
| Mayo–octubre | Festes patronals dels pobles | Sineu, Petra, Algaida, Porreres… | Ball de bot, ball des cossiers, xeremies |
| Julio–septiembre | Festival Internacional del Pla de Mallorca | 15 municipios del Pla | Música tradicional, conciertos en iglesias |
| Julio–agosto | Festival de Pollença | Pollença | Música clásica y tradicional |
| Verano | Festival Folk Port de Sóller | Port de Sóller | Ball de bot, danzas, talleres |
| 24 diciembre | Maitines y La Sibil·la | Todas las iglesias de Mallorca | Canto gregoriano, patrimonio UNESCO |
Quien visita Mallorca con ganas de ir más allá de la contemplación tiene una buena noticia: la isla cuenta con una red consolidada de escuelas y asociaciones culturales donde es posible iniciarse en la música tradicional mallorquina, tanto si eres residente como si estás de paso.
Además de estas escuelas estables, los casals de barri de Palma y muchos ayuntamientos del interior organizan talleres puntuales de ball de bot y xeremies a lo largo del año, especialmente en torno a las festes patronals, contribuyendo así a mantener viva la música tradicional mallorquina en cada rincón de la isla.
La mejor forma de acercarse a la música tradicional mallorquina no es a través de una pantalla, sino en directo, en los espacios donde nació. Las fiestas patronales de los pueblos del interior —Sineu, Petra, Algaida, Porreres— son el escenario más auténtico: allí el ball de bot no es una representación para turistas, sino una celebración real en la que participan vecinos de todas las edades. La música tradicional mallorquina cobra en esos momentos toda su dimensión comunitaria.
Para quienes visitan Finca Treurer, la finca ofrece el contexto ideal para este tipo de inmersión cultural. Situada en el corazón del Pla de Mallorca, rodeada de olivos centenarios y a poca distancia de algunos de los pueblos con tradición folclórica más arraigada de la isla, Finca Treurer es un punto de partida privilegiado para explorar el patrimonio musical mallorquín. Los eventos que la finca organiza a lo largo del año —entre conciertos, catas de aceite de oliva virgen extra Treurer y experiencias en el entorno natural— buscan precisamente ese mismo espíritu: conectar a las personas con la autenticidad de Mallorca, sin artificios.
Una tradición que no se transmite muere. La música tradicional mallorquina lo sabe bien, y por eso la isla cuenta con una red de escuelas de música y danza tradicional, grupos folclóricos y agrupaciones culturales que trabajan para que las nuevas generaciones aprendan a tocar las xeremies, a bailar el bolero y a cantar las gloses. El ball de bot y las xeremies han pasado de generación en generación como símbolos del folclore balear, y no solo se mantienen vivos en las fiestas populares, sino que se han convertido en patrimonio cultural esencial de las Illes Balears.
La transmisión oral y comunitaria sigue siendo el método más eficaz para mantener viva la música tradicional mallorquina: los niños aprenden viendo a sus mayores bailar en la plaza, los jóvenes músicos se forman junto a los veteranos en las agrupaciones locales. Todas las parroquias de Mallorca participan en la transmisión de sus ritos musicales, con la colaboración de todas las generaciones para garantizar su continuidad. Sin este esfuerzo colectivo, la música tradicional mallorquina no habría llegado hasta nuestros días con la vitalidad que hoy exhibe.
Entre las agrupaciones más activas destacan Aires Sollerics (Sóller), Esclafits i Castanyetes (Artà) y la propia Escola de Música i Danses de Mallorca en Palma, que realiza diversas muestras, ballades populars y participa regularmente en festivales folclóricos de ámbito internacional. Seguirlas en sus actuaciones públicas es una de las formas más directas de conectar con la música tradicional mallorquina en su contexto real.
En ese espíritu de transmisión y autenticidad, Finca Treurer comparte valores esenciales con el patrimonio musical de la isla. Igual que la música tradicional mallorquina se ha preservado gracias al cuidado y la dedicación de quienes la aman, el aceite de oliva virgen extra Treurer es el resultado de décadas de trabajo riguroso, de respeto por los olivos centenarios y de una voluntad firme de hacer las cosas bien, sin atajos.
La música tradicional mallorquina y el paisaje de la isla son inseparables. Las melodías de las xeremies suenan mejor entre olivos; el ball de bot encuentra su escenario natural en las plazas empedradas de los pueblos del interior; La Sibil·la necesita la piedra milenaria de una iglesia para desplegar toda su magia. La identidad de Mallorca se construye con todos estos elementos a la vez, y la música tradicional mallorquina actúa como hilo conductor que los une.
Cuando visitas Finca Treurer y pruebas su aceite de oliva virgen extra —premiado en los certámenes internacionales más exigentes—, estás tocando esa misma fibra. La finca no es solo un productor de AOVE de excepción: es un lugar donde la tierra, la tradición y el cuidado artesanal se funden en algo que va más allá del producto. Es, en definitiva, otra forma de escuchar el alma de Mallorca.
Si quieres que tu próxima visita a la isla incluya una inmersión real en la música tradicional mallorquina, planifica tu estancia en torno a una festa local, reserva tiempo para explorar el Pla de Mallorca y deja que Finca Treurer sea tu base de operaciones. La experiencia, te lo garantizamos, será inolvidable.
El ball de bot es el término genérico que agrupa las principales danzas tradicionales de las Illes Balears, como la jota, el fandango, la mateixa y el bolero. Se baila en fiestas populares y celebraciones locales, acompañado de instrumentos como las xeremies, el tamborí y el fabiol. Su nombre significa literalmente «baile de salto» y es una de las expresiones más reconocibles de la música tradicional mallorquina.
Las xeremies son la gaita tradicional mallorquina, un instrumento de viento formado por una bolsa de cuero que acumula el aire y lo distribuye a través del grall (pipa melódica) y el bordón. Se tocan habitualmente en conjunto con el flabiol y el tamborí, formando la agrupación conocida como mitja cobla. Su sonido es brillante y penetrante, y es el instrumento más icónico de la música folk de Mallorca.
Las gloses son estrofas improvisadas que los glosadors —poetas orales populares— componen y cantan en el momento, sin acompañamiento musical. La glosa mallorquina tiene un mínimo de cuatro versos heptasílabos y dos únicas rimas combinadas libremente. El formato más espectacular es el combat de picat, un duelo de improvisación entre dos o más glosadors. Es uno de los géneros centrales del patrimonio inmaterial balear y puede escucharse especialmente en las fiestas de Sant Antoni.
El Canto de la Sibila de Mallorca fue declarado Patrimonio Cultural Inmaterial de la Humanidad por la UNESCO el 16 de noviembre de 2010. Es un drama litúrgico de melodía gregoriana que se interpreta la noche del 24 de diciembre en todas las iglesias de Mallorca. Su singularidad reside en que Mallorca es uno de los únicos dos lugares del mundo —junto a Alguer, en Cerdeña— donde esta tradición de música tradicional mallorquina ha pervivido de forma ininterrumpida desde la Baja Edad Media.
La mejor época para ver danzas folclóricas en su contexto más auténtico es durante las fiestas patronales de los pueblos del interior, que se celebran principalmente entre mayo y octubre. El FolkAndratx, el Festival Internacional del Pla de Mallorca (julio-septiembre) y el festival folk de Port de Sóller son citas destacadas para disfrutar de la música tradicional mallorquina. En invierno, la fiesta de Sant Antoni (17 de enero) en Sa Pobla es imprescindible para escuchar la ximbomba y las gloses.
Sí. Finca Treurer está situada en el Pla de Mallorca, la comarca agrícola del interior de la isla donde la música tradicional mallorquina y la tradición folclórica están más arraigadas. Desde la finca es fácil acceder a las fiestas patronales de los pueblos cercanos y a los festivales de música del Pla. Además, Finca Treurer organiza a lo largo del año eventos culturales que combinan gastronomía, paisaje y la identidad más auténtica de Mallorca.
Reserva tu mesa en Qanat
Selecciona fecha, hora y número de comensales
Selecciona una fecha para ver los horarios disponibles
Reserva y puntualidad
Mantendremos tu mesa reservada durante 15 minutos de cortesía. Si prevés llegar más tarde, te agradeceremos que nos lo comuniques. En caso contrario, no podremos garantizar la disponibilidad de la reserva.
Cancelaciones
Las cancelaciones realizadas con menos de 24 horas de antelación no serán reembolsables en ningún caso.
Edad mínima
El acceso está permitido únicamente a mayores de 14 años.
Mascotas
Las mascotas son bienvenidas en nuestra terraza, siempre que permanezcan limpias, tranquilas, atadas y bajo la supervisión de su responsable, evitando en todo momento molestias al resto de los clientes. Nos reservamos el derecho de asignar la mesa que consideremos más adecuada. Durante la temporada de invierno, te rogamos que nos consultes antes de realizar la reserva.
Código de vestimenta
Agradecemos una vestimenta smart casual: elegante, cómoda e informal.
Convivencia
Te rogamos mantener un ambiente tranquilo, evitando alzar la voz y mostrando respeto tanto hacia los demás clientes como hacia nuestro equipo. Está permitido fumar únicamente en la zona habilitada para ello.
Restricciones alimentarias
Si tienes alguna alergia, intolerancia o restricción alimentaria, te agradeceremos que nos lo comuniques antes de tu llegada. Una vez iniciado el servicio, no podemos garantizar que sea posible realizar modificaciones en el menú.
Con el fin de preservar el ambiente y el bienestar de todos los presentes, nos reservamos el derecho de solicitar el abandono del establecimiento en caso de comportamientos que alteren la convivencia o el normal desarrollo del servicio.
Procesando...
' + flavorI18n.loadingTimes + '
'; fetch(flavorRestUrl + 'restaurants/' + flavorRestaurantId + '/available-slots?date=' + dateStr + '&guests=' + guests) .then(function(r) { return r.json(); }) .then(function(data) { if (data.success && data.data && data.data.length > 0) { var html = ''; data.data.forEach(function(slot) { var timeShort = slot.time.substring(0, 5); if (slot.available) { var cls = 'flavor-slot' + (flavorData.time === timeShort ? ' on' : ''); html += ''; } else { var reasonText = flavorI18n.notAvailable; if (slot.reason === 'capacity') reasonText = flavorI18n.capacityFull; else if (slot.reason === 'max_reservations') reasonText = flavorI18n.maxReservations; else if (slot.reason === 'min_advance') reasonText = flavorI18n.minAdvance; html += ''; } }); container.innerHTML = html; container.querySelectorAll('.flavor-slot:not(.busy)').forEach(function(b) { b.addEventListener('click', function() { flavorData.time = b.dataset.t; container.querySelectorAll('.flavor-slot').forEach(function(s) { s.classList.remove('on'); }); b.classList.add('on'); flavorCheckStep1(); }); }); } else { container.innerHTML = '' + flavorI18n.noTimesAvailable + '
'; } }) .catch(function() { container.innerHTML = '' + flavorI18n.errorLoadingTimes + '
'; }); } // ===================== // CHIPS (Guests) // ===================== document.getElementById('flavorChips').addEventListener('click', function(e) { var c = e.target.closest('.flavor-chip'); if (!c) return; flavorData.guests = parseInt(c.dataset.val); document.querySelectorAll('.flavor-chip').forEach(function(x) { x.classList.remove('on'); }); c.classList.add('on'); if (flavorData.date) { flavorData.time = null; flavorLoadTimeSlots(flavorData.date); } flavorCheckStep1(); }); // ===================== // SHARED TABLE TOGGLE // ===================== var sharedToggle = document.getElementById('flavorSharedToggle'); if (sharedToggle) { sharedToggle.addEventListener('click', function() { flavorData.shared = !flavorData.shared; sharedToggle.classList.toggle('on', flavorData.shared); }); } // ===================== // VALIDATIONS // ===================== function flavorCheckStep1() { var hasBooking = !!(flavorData.date && flavorData.time); if (flavorTotalSteps === 2) { // In 2-step mode, step 1 also contains data fields var hasData = ['flavor-first-name','flavor-last-name','flavor-email','flavor-phone'].every(function(id) { return document.getElementById(id).value.trim() !== ''; }); document.getElementById('flavorBtn1Next').disabled = !(hasBooking && hasData); } else { document.getElementById('flavorBtn1Next').disabled = !hasBooking; } } function flavorCheckStep2() { var ok = ['flavor-first-name','flavor-last-name','flavor-email','flavor-phone'].every(function(id) { return document.getElementById(id).value.trim() !== ''; }); var btn2 = document.getElementById('flavorBtn2Next'); if (btn2) btn2.disabled = !ok; } function flavorCheckStep3() { var chk = document.getElementById('flavor-accept-terms'); // El checkbox solo existe si procede; si no está, el botón queda disponible document.getElementById('flavorBtn3Confirm').disabled = chk ? !chk.checked : false; } ['flavor-first-name','flavor-last-name','flavor-email','flavor-phone'].forEach(function(id) { document.getElementById(id).addEventListener('input', function() { flavorCheckStep2(); if (flavorTotalSteps === 2) flavorCheckStep1(); }); }); (function(){ var chk = document.getElementById('flavor-accept-terms'); if (chk) chk.addEventListener('change', flavorCheckStep3); })(); function flavorValidateStep2() { var fn = document.getElementById('flavor-first-name').value.trim(); var ln = document.getElementById('flavor-last-name').value.trim(); var em = document.getElementById('flavor-email').value.trim(); var ph = document.getElementById('flavor-phone').value.trim(); if (!fn) { flavorToast(flavorI18n.nameRequired); return false; } if (!ln) { flavorToast(flavorI18n.lastNameRequired); return false; } if (!em) { flavorToast(flavorI18n.emailRequired); return false; } if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(em)) { flavorToast(flavorI18n.emailInvalid); return false; } if (!ph) { flavorToast(flavorI18n.phoneRequired); return false; } return true; } // ===================== // SUMMARY // ===================== function flavorBuildSummary() { document.getElementById('sumGuests').textContent = flavorData.guests + ' ' + (flavorData.guests === 1 ? flavorI18n.person : flavorI18n.people); if (flavorData.date) { var parts = flavorData.date.split('-'); var d = new Date(parseInt(parts[0]), parseInt(parts[1]) - 1, parseInt(parts[2])); var dn = flavorI18n.dayNames[d.getDay()].toLowerCase(); document.getElementById('sumDate').textContent = dn + ', ' + parseInt(parts[2]) + ' de ' + flavorI18n.months[parseInt(parts[1]) - 1].toLowerCase() + ' ' + parts[0]; } document.getElementById('sumTime').textContent = flavorData.time ? flavorData.time + 'h' : '\u2014'; var fn = document.getElementById('flavor-first-name').value.trim(); var ln = document.getElementById('flavor-last-name').value.trim(); document.getElementById('sumName').textContent = (fn + ' ' + ln).trim() || '\u2014'; document.getElementById('sumEmail').textContent = document.getElementById('flavor-email').value.trim() || '\u2014'; var pre = document.getElementById('flavor-prefix').value; var ph = document.getElementById('flavor-phone').value.trim(); document.getElementById('sumPhone').textContent = ph ? pre + ph : '\u2014'; document.getElementById('sumShared').textContent = flavorData.shared ? flavorI18n.yes : flavorI18n.no; document.getElementById('sumNotes').textContent = document.getElementById('flavor-notes').value.trim() || '\u2014'; var depositAmount = flavorCalculateDeposit(); var depositBox = document.getElementById('flavorDepositBox'); var cardBox = document.getElementById('flavorCardInputBox'); if (depositAmount > 0 && flavorStripeKey) { depositBox.style.display = 'block'; cardBox.style.display = 'block'; document.getElementById('flavorDepAmount').textContent = depositAmount.toFixed(2) + ' \u20AC'; var perPerson = flavorDepositPerPerson > 0 ? (flavorData.guests + ' \u00D7 ' + flavorDepositPerPerson.toFixed(2) + ' \u20AC ' + flavorI18n.perPerson) : ''; document.getElementById('flavorDepSub').textContent = perPerson; document.getElementById('flavor-submit-text').style.display = 'none'; document.getElementById('flavor-submit-text-pay').style.display = 'inline'; } else { depositBox.style.display = 'none'; cardBox.style.display = 'none'; document.getElementById('flavor-submit-text').style.display = 'inline'; document.getElementById('flavor-submit-text-pay').style.display = 'none'; } } // ===================== // NAVIGATION BUTTONS // ===================== document.getElementById('flavorBtn1Next').addEventListener('click', function() { if (!flavorData.guests) { flavorToast(flavorI18n.selectGuests); return; } if (!flavorData.date) { flavorToast(flavorI18n.selectDate); return; } if (!flavorData.time) { flavorToast(flavorI18n.selectTime); return; } if (flavorTotalSteps === 2 && !flavorValidateStep2()) return; flavorGoStep(2); }); var btn2Back = document.getElementById('flavorBtn2Back'); if (btn2Back) btn2Back.addEventListener('click', function() { flavorGoStep(1); }); var btn2Next = document.getElementById('flavorBtn2Next'); if (btn2Next) btn2Next.addEventListener('click', function() { if (!flavorValidateStep2()) return; flavorGoStep(3); }); document.getElementById('flavorBtn3Back').addEventListener('click', function() { flavorGoStep(flavorTotalSteps === 2 ? 1 : 2); }); document.getElementById('flavorBtn3Confirm').addEventListener('click', function() { flavorSubmit(); }); // Stepper click document.querySelectorAll('.flavor-step-ind').forEach(function(el) { el.addEventListener('click', function() { var target = parseInt(el.dataset.step); if (target < flavorStep) flavorGoStep(target); }); }); // ===================== // DEPOSIT & STRIPE // ===================== function flavorCalculateDeposit() { if (!flavorRequireDeposit) return 0; return flavorDepositPerReservation + (flavorDepositPerPerson * (flavorData.guests || 0)); } function flavorInitStripe() { var depositAmount = flavorCalculateDeposit(); if (depositAmount > 0 && flavorStripeKey && !flavorStripe) { flavorStripe = Stripe(flavorStripeKey); var elements = flavorStripe.elements({locale: 'es'}); flavorCardElement = elements.create('card', { style: { base: { fontSize: '14px', color: '#1a1a1a', fontFamily: 'Inter, -apple-system, sans-serif', '::placeholder': { color: '#c0c0c0' } }, invalid: { color: '#dc2626' } } }); flavorCardElement.mount('#flavor-card-element'); flavorCardElement.on('change', function(event) { document.getElementById('flavor-card-errors').textContent = event.error ? event.error.message : ''; }); } } // ===================== // SUBMIT // ===================== function flavorSubmit() { var _chk = document.getElementById('flavor-accept-terms'); if (_chk && !_chk.checked) { flavorToast(flavorI18n.acceptTerms); return; } // In 2-step mode, validate step2 fields before submit if (flavorTotalSteps === 2 && !flavorValidateStep2()) return; var depositAmount = flavorCalculateDeposit(); if (depositAmount > 0 && flavorStripeKey && flavorCardElement) { flavorSubmitWithPayment(); } else { flavorSubmitWithoutPayment(); } } function flavorGetPostData() { var prefix = document.getElementById('flavor-prefix').value; var phone = document.getElementById('flavor-phone').value.trim(); return { restaurant_id: flavorRestaurantId, shortcode_key: flavorShortcodeKey, guests: flavorData.guests, reservation_date: flavorData.date, reservation_time: flavorData.time, first_name: document.getElementById('flavor-first-name').value, last_name: document.getElementById('flavor-last-name').value, email: document.getElementById('flavor-email').value, phone: prefix + phone, allergies: document.getElementById('flavor-allergies').value, dietary_restrictions: '', notes: document.getElementById('flavor-notes').value, shared_table: flavorData.shared ? 1 : 0 }; } function flavorSubmitWithoutPayment() { document.querySelector('.flavor-loader').style.display = 'flex'; fetch(flavorRestUrl + 'reservations', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify(flavorGetPostData()) }) .then(function(r) { return r.json(); }) .then(function(r) { document.querySelector('.flavor-loader').style.display = 'none'; if (r.success) { flavorShowSuccess(r.reservation.reservation || r.reservation); } else { flavorShowError(r.message || 'Error al crear la reserva'); } }) .catch(function() { document.querySelector('.flavor-loader').style.display = 'none'; flavorShowError(flavorI18n.error); }); } function flavorSubmitWithPayment() { var submitBtn = document.getElementById('flavorBtn3Confirm'); submitBtn.disabled = true; submitBtn.innerHTML = '' + flavorI18n.paymentProcessing + ''; var postData = flavorGetPostData(); var customerName = postData.first_name + ' ' + postData.last_name; var customerEmail = postData.email; fetch(flavorRestUrl + 'payment/create-intent', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({ restaurant_id: flavorRestaurantId, guests: flavorData.guests, name: customerName, email: customerEmail }) }) .then(function(resp) { return resp.json(); }) .then(function(paymentData) { if (!paymentData.success) throw new Error(paymentData.message || 'Error al iniciar el pago'); return flavorStripe.confirmCardPayment(paymentData.data.client_secret, { payment_method: { card: flavorCardElement, billing_details: { name: customerName, email: customerEmail } } }).then(function(result) { if (result.error) throw new Error(result.error.message); return result.paymentIntent.id; }); }) .then(function(paymentIntentId) { postData.payment_intent_id = paymentIntentId; postData.deposit_paid = 1; return fetch(flavorRestUrl + 'reservations', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify(postData) }); }) .then(function(response) { return response.json(); }) .then(function(r) { if (!r.success) throw new Error(r.message || 'Error al crear la reserva'); submitBtn.disabled = false; flavorShowSuccess(r.reservation.reservation || r.reservation); }) .catch(function(error) { submitBtn.disabled = false; submitBtn.innerHTML = '' + flavorI18n.paymentProcessing + ''; document.getElementById('flavor-card-errors').textContent = error.message; flavorToast(error.message); }); } // ===================== // SUCCESS / ERROR // ===================== // Ejecuta un snippet de tracking pegado por el restaurante desde el backoffice. // El snippet se sirve como' + flavorI18n.reservationSuccess + '
' + '' + flavorI18n.receiveEmail + '
' + '' + '' + message + '
' + '' + 'Guía completa sobre las setas de Mallorca: calendario de temporadas, especies comestibles y tóxicas, normativa…
Descubre Pollença, cuna del arte y la espiritualidad en Mallorca: iglesias, el Calvario, tradición artística…
Descubre la gastronomía de invierno en Mallorca: platos de temporada, recetas tradicionales y el aceite…
Descubre el maridaje aceite de oliva virgen extra mallorquín con los mejores vinos mallorquines: DO…
Descubre cómo los retiros de bienestar en finca oleícola de Mallorca integran yoga, meditación, oleoterapia…
Descubre los quesos artesanales de Mallorca: historia, variedades, queserías visitables y cómo maridarlos con aceite…