Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> categoryResponse[0]  [in template "62757443695457#32456#108258" at line 10, column 27]

----
Tip: It's the final [] step that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign categoryId = categoryResponse...  [in template "62757443695457#32456#108258" at line 10, column 5]
----
1<#assign contents = []> 
2<#assign categoryName = ""> 
3<#assign peti = "/headless-delivery/v1.0/sites/" + groupId + "/content-structures?filter=name eq 'Hotel Card'"/> 
4<#assign structures = restClient.get("/headless-delivery/v1.0/sites/" + groupId + "/content-structures?filter=name eq 'Hotel Card'").items/> 
5<#if (structures?size > 0)> 
6    <#assign categoryName = (shortName.getData()!"")> 
7    <#assign vocabularyResponse = restClient.get("/headless-admin-taxonomy/v1.0/sites/" + groupId + "/taxonomy-vocabularies?filter=name eq 'Destinations'").items> 
8    <#assign vocabularyId = vocabularyResponse[0].id> 
9    <#assign categoryResponse = restClient.get("/headless-admin-taxonomy/v1.0/taxonomy-vocabularies/" + vocabularyId + "/taxonomy-categories?filter=name eq '" + categoryName + "'").items> 
10    <#assign categoryId = categoryResponse[0].id> 
11 
12    <#assign response = restClient.get("/headless-delivery/v1.0/content-structures/" + structures[0].id + "/structured-contents?filter=taxonomyCategoryIds/any(t:t eq " + categoryId + ")&pageSize=100")> 
13    <#assign contents = response.items> 
14</#if> 
15<#if (contents?size >0)> 
16    <section class="mp-max-width-section"> 
17        <div class="our-accomodations__wrapper"> 
18            <h2 class="mp-title-section mp-text-center"> 
19                <#if containsCircuits?? && getterUtil.getBoolean(containsCircuits.getData())> 
20                    Información adicional y alojamientos en ${categoryName?lower_case?cap_first} 
21                <#else> 
22                    Nuestros alojamientos en ${categoryName?lower_case?cap_first} 
23                </#if> 
24 
25            </h2> 
26            <div class="swiper"> 
27                <ul class="cards-list__wrapper swiper-wrapper" aria-label="Carousel"> 
28                    <#list contents as content> 
29 
30                    <li class="swiper-slide"> 
31                        <a href="/viajes/${content.friendlyUrlPath}"> 
32                            <div class="card-2__wrapper card-2__wrapper--resume"> 
33                                <div class="image-container"> 
34                                    <#assign imageField = getFieldByName(content.contentFields, "images")> 
35                                    <#if imageField?has_content && imageField.contentFieldValue.image?has_content> 
36                                        <img src="${imageField.contentFieldValue.image.contentUrl}" 
37                                             alt="${imageField.contentFieldValue.image.description}" 
38                                             loading="lazy"> 
39                                    </#if> 
40                                </div> 
41                                <div class="data__wrapper"> 
42                                    <#assign nameField = getFieldByName(content.contentFields, "name")> 
43                                    <#if nameField?has_content> 
44                                        <h3>${nameField.contentFieldValue.data}</h3> 
45                                    </#if> 
46                                    <#assign categoryField = getFieldByName(content.contentFields, "category")> 
47                                    <#if categoryField?has_content> 
48                                        <#assign category = categoryField.contentFieldValue.data> 
49                                        <#attempt> 
50                                            <#assign stars = category?split("*")[0]?number> 
51                                            <#recover> 
52                                                <#assign stars = 0> 
53                                        </#recover> 
54                                        <#if (stars > 0)> 
55                                            <ul class="stars__wrapper" role="img" aria-label="Rating: ${stars} de 5 estrellas"> 
56                                                <#list 1..stars as i> 
57                                                    <li aria-hidden="true"> 
58                                                        <svg width="16" height="16" viewBox="0 0 16 16" data-icon="star"> 
59                                                            <symbol id="ai:local:star"> 
60                                                                <path fill="currentColor" d="m8 12.689-3.89 2.346a.72.72 0 0 1-.436.107.79.79 0 0 1-.396-.147.84.84 0 0 1-.273-.332.648.648 0 0 1-.03-.453l1.032-4.417L.573 6.82a.737.737 0 0 1-.245-.388.702.702 0 0 1 .027-.428.845.845 0 0 1 .233-.34.807.807 0 0 1 .416-.171l4.532-.396L7.296.925a.68.68 0 0 1 .291-.344.819.819 0 0 1 .825 0 .68.68 0 0 1 .291.344l1.76 4.172 4.533.396a.807.807 0 0 1 .415.172.846.846 0 0 1 .233.34.703.703 0 0 1 .028.427.737.737 0 0 1-.245.388l-3.435 2.973 1.033 4.417a.648.648 0 0 1-.031.453.839.839 0 0 1-.273.332.79.79 0 0 1-.396.147.72.72 0 0 1-.435-.107L8 12.689Z"></path> 
61                                                            </symbol> 
62                                                            <use xlink:href="#ai:local:star"></use> 
63                                                        </svg> 
64                                                    </li> 
65                                                </#list> 
66                                            </ul> 
67                                        </#if> 
68                                    </#if> 
69                                    <div class="info__description"> 
70                                        <svg width="24" height="24" viewBox="0 0 12 20" data-icon="distance"> 
71                                            <symbol id="ai:local:distance"> 
72                                                <path fill="currentColor" 
73                                                      d="M6.441 19.5c-1.612 0-2.932-.231-3.96-.693C1.456 18.345.942 17.742.942 17c0-.391.168-.749.504-1.073.336-.324.8-.605 1.394-.842l.287.957c-.347.148-.619.303-.813.467-.195.163-.315.327-.36.491.114.446.598.808 1.452 1.085.854.276 1.866.415 3.036.415 1.158 0 2.168-.139 3.03-.415.862-.277 1.35-.639 1.465-1.085-.045-.164-.165-.325-.36-.482a3.956 3.956 0 0 0-.813-.476l.305-.957c.594.237 1.055.518 1.382.842.328.324.491.682.491 1.073 0 .742-.513 1.345-1.54 1.807-1.027.462-2.347.693-3.96.693Zm0-5.137c.3-.588.656-1.188 1.066-1.8.41-.613.831-1.198 1.263-1.755.643-.839 1.157-1.601 1.543-2.288.385-.686.578-1.543.578-2.57 0-1.228-.434-2.277-1.303-3.146C8.718 1.934 7.67 1.5 6.44 1.5c-1.228 0-2.277.435-3.146 1.304-.869.87-1.304 1.918-1.304 3.146 0 1.027.197 1.884.589 2.57a22.38 22.38 0 0 0 1.533 2.288c.432.557.853 1.142 1.263 1.755.41.612.765 1.212 1.065 1.8Zm0 1.522a.603.603 0 0 1-.403-.163 1.077 1.077 0 0 1-.287-.399c-.435-1.055-.924-1.94-1.47-2.658l-1.565-2.06a12.42 12.42 0 0 1-1.224-2.043c-.334-.707-.5-1.577-.5-2.612 0-1.526.526-2.815 1.58-3.87C3.626 1.028 4.916.5 6.442.5c1.525 0 2.815.527 3.869 1.58 1.053 1.055 1.58 2.344 1.58 3.87 0 1.035-.162 1.905-.488 2.612a10.973 10.973 0 0 1-1.237 2.044c-.482.656-1 1.343-1.552 2.06-.554.716-1.048 1.602-1.482 2.657a1.09 1.09 0 0 1-.287.4.603.603 0 0 1-.404.162Zm0-8.406c.43 0 .792-.148 1.087-.442.295-.295.442-.658.442-1.087 0-.43-.147-.792-.442-1.087a1.477 1.477 0 0 0-1.087-.442c-.43 0-.791.148-1.086.442a1.477 1.477 0 0 0-.442 1.087c0 .43.147.792.442 1.087a1.48 1.48 0 0 0 1.086.442Z"></path> 
74                                            </symbol> 
75                                            <use xlink:href="#ai:local:distance"></use> 
76                                        </svg> 
77                                        <#assign streetField = getFieldByName(content.contentFields, "street")> 
78                                        <#if streetField?has_content> 
79                                            <p>${streetField.contentFieldValue.data}</p> 
80                                        </#if> 
81                                    </div> 
82                                    <#assign codeField = getFieldByName(content.contentFields, "code")> 
83                                    <#assign dataHotel = ""> 
84                                    <#if codeField?has_content> 
85                                        <#assign dataHotel = "data-hotel='" + codeField.contentFieldValue.data + "'"> 
86                                        <div class="data__wrapper__footer d-none"> 
87                                            <p class="data__wrapper__footer__price"> 
88                                                <span class="price-line"> 
89                                                  Desde 
90                                                  <span ${dataHotel} class="price"></span> 
91                                                </span> 
92                                                <span class="extra-fees">por persona</span> 
93                                            </p> 
94                                        </div> 
95                                    </#if> 
96                                </div> 
97                            </div> 
98                        </a> 
99                    <li> 
100                        </#list> 
101                </ul> 
102            </div> 
103        </div> 
104    </section> 
105</#if> 
106 
107<#function getFieldByName contentFields, name> 
108    <#list contentFields as field> 
109        <#if field.name == name> 
110            <#return field> 
111        </#if> 
112    </#list> 
113    <#return ""> 
114</#function> 
115 
116<script> 
117  new Swiper(".our-accomodations__wrapper .swiper", { 
118    direction: 'horizontal', 
119    spaceBetween: 0, 
120    slidesPerView: 'auto', 
121    centeredSlides: true, 
122    breakpoints: { 
123      768: { 
124        allowTouchMove: false, 
125
126    }, 
127    navigation: { 
128      nextEl: '.swiper-button-next', 
129      prevEl: '.swiper-button-prev', 
130    }, 
131    pagination: { 
132      el: '.swiper-pagination', 
133    }, 
134    keyboard: { 
135      enabled: true, 
136      onlyInViewport: true, 
137    }, 
138  }); 
139 
140  async function fetchLiferayDocument(url) { 
141      return fetchLiferayApi("documents/d/guest/" + url); 
142
143 
144  function numberWithCommas (x){ 
145 
146      return x.toFixed(Number.isInteger(x) ? 0 : 2).toString().replace(".", ",").replace(/\B(?=(\d{3})+(?!\d))/g, "."); 
147
148 
149  async function loadHotelsPrice() { 
150      const hotelsResult = await fetchLiferayDocument("hotels"); 
151      const hotelsJson = await hotelsResult.json(); 
152 
153      const hotelElements = document.querySelectorAll("span[data-hotel]"); 
154      hotelElements.forEach(hotelElement => { 
155          const hotelCode = hotelElement.dataset.hotel; 
156          const hotel = hotelsJson.find(hotel => hotel.code === +hotelCode); 
157          if (!!hotel && !!hotel.bestPrice) { 
158              hotelElement.innerText = numberWithCommas(hotel.bestPrice) + "€"; 
159 
160              const parent = hotelElement.closest(".data__wrapper__footer"); 
161              parent.classList.remove("d-none"); 
162
163      }) 
164
165 
166  loadHotelsPrice(); 
167</script> 

Conoce Mercadillo De Navidad Viena

DESCARGAR ITINERARIO

Recorre los mercadillos navideños que transforman el invierno europeo en un escenario de cuento de hadas. Cada puesto es un tesoro de artesanías, delicias culinarias y adornos festivos, perfectos para capturar el espíritu de la temporada. Una experiencia inolvidable, donde el aroma de especias y dulces se mezclan con la alegría de quienes se reúnen para celebrar. Los mercadillos navideños son un punto de encuentro para compartir y vivir las tradiciones que hacen de esta época del año un momento tan especial. A finales de año, las calles de Viena se llenan de una magia que sólo se puede encontrar durante la época navideña. Las plazas centrales cubiertas de nieve se convierten en los escenarios perfectos que acogen a los mercados navideños, atrayentes por sus luces, olores, sabores y colores transportándonos a otra época.

Viena es sin duda una ciudad con un encanto muy especial y considerada como una de las capitales europeas más antiguas. Está situada en un entorno que comprende el valle de los Bosques de Viena, la orilla del río Danubio y los hermosos e impresionantes Alpes. Durante la época de Adviento, los mercados y la decoración navideña invaden Viena. La Navidad se vive en la ciudad de una forma muy especial, y los decorados y el espíritu navideño lo invaden todo. En la Rathausplatz se instala el Mercado Christkindlmarkt mientras que en el interior del ayuntamiento se escuchan villancicos cantados por coros internacionales. El Mercado de Navidad del Palacio de Schönbrunn ofrece una variedad de artesanía tradicional, joyería y elementos decorativos.

INFORMACIÓN DE INTERÉS

DOCUMENTACIÓN

Para ciudadanos españoles DNI en vigor.

CAMBIO

La moneda oficial es el euro.

VESTUARIO

Se recomienda llevar ropa de abrigo, sobre todo guantes, gorros, calcetines de invierno e incluso orejeras.

ELECTRICIDAD

El voltaje del suministro eléctrico normalizado es de 230 voltios.

REFERENCIA HORARIA

Se aplica la hora Central de Europa (CET), misma que en España.

TELÉFONO

Código de acceso desde España: (+431)
Código de acceso desde Austria: (+34)