An error occurred while processing the template.
The following has evaluated to null or missing:
==> getHotelByCodeAndBrandCode(HotelCode.getData(), BrandCode.getData())[0]  [in template "20115#20151#HOTEL-DETAIL-HERO-1.0.0" at line 8, column 18]

----
Tip: It's the final [] step that caused this error, not those before it.
----
Tip: If the failing expression is known to be 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 hotel = getHotelByCodeAndBran...  [in template "20115#20151#HOTEL-DETAIL-HERO-1.0.0" at line 8, column 1]
----
1<#import "${fullTemplatesPath}/shared/cta-button.ftl" as cta> 
2 
3<#include "${fullTemplatesPath}/utils/dictionary.ftl"> 
4<#include "${fullTemplatesPath}/utils/constants.ftl"> 
5<#include "${fullTemplatesPath}/utils/api-hotels.ftl"> 
6<#include "${fullTemplatesPath}/utils/media-links.ftl"> 
7<#include "${fullTemplatesPath}/utils/json.ftl"> 
8<#assign hotel = getHotelByCodeAndBrandCode(HotelCode.getData(), BrandCode.getData())[0] > 
9<#assign imageLarge = getHotelHeroImage(hotel.mediaLinks)> 
10<#assign imageSmall = getHotelHeroImageXS(hotel.mediaLinks)> 
11<section class="hotel-hero is-hidden" data-component="hotel-hero" data-scroll-component> 
12  <div class="hotel-hero-wrapper"> 
13    <div class="flex-wrapper"> 
14 
15      <div class="content-container"> 
16        <div class="title-wrapper"> 
17          <h2 class="title heading-2" data-transition-item> 
18            ${hotel.name} 
19          </h2> 
20        </div> 
21 
22        <div class="info-wrapper"> 
23          <div class="rating-wrapper" data-transition-item> 
24            <div class="rating"> 
25              <span class="score">${hotel.rating}</span><span class="total">/5</span> 
26            </div> 
27          </div> 
28 
29        </div> 
30      </div> 
31      <div class="visual-container" data-transition-item> 
32        <div class="visual-wrapper"> 
33 
34          <!-- partial: component/general/picture/picture.hbs --> 
35          <picture class="main-visual" data-component="picture"> 
36            <source media="(min-width: 768px)" srcset="${imageLarge}"> 
37            <img class="visual" src="${imageSmall}" alt="${hotel.name}"> 
38          </picture> 
39          <!-- / component/general/picture/picture.hbs --> 
40        </div> 
41      </div> 
42 
43    </div> 
44 
45    <div class="booking-wrapper" data-transition-item> 
46      <div class="booking-wrapper-container"> 
47        <div class="booking-content-wrapper"> 
48 
49          <!-- partial: component/block/hotel-booking-form/hotel-booking-form.hbs --> 
50          <div class="hotel-booking-form" data-component="hotel-booking-form" data-hotel="${jsonFactoryUtil.looseSerializeDeep(hotel)?html}"> 
51 
52            <div class="booking-form-content"> 
53              <form class="form" action="" data-booking-form> 
54                <div class="content-wrapper"> 
55                  <div class="date-picker-wrapper"> 
56 
57                    <!-- partial: component/general/date-range-picker/date-range-picker.hbs --> 
58                    <div class="date-range-picker" data-scroll-component data-component="date-range-picker" data-locale="${locale}" data-start-placeholder="${_SELECT[locale]}" data-end-placeholder="${_SELECT[locale]}" data-start-label="${_ARRIVAL_DATE[locale]}" data-end-label="${_DEPARTURE_DATE[locale]}" data-max-date-in-months-from-now="24" data-required="true" data-default-number-of-nights="2" data-minimum-nights="1"> 
59                    </div> 
60                    <!-- / component/general/date-range-picker/date-range-picker.hbs --> 
61                  </div> 
62                  <div class="totals-container"> 
63                    <div class="total-wrapper"> 
64 
65                      <!-- partial: component/form/custom-number-input/custom-number-input.hbs --> 
66                      <div class="custom-input number total-adults" data-component="custom-input-number" data-value="2" data-min="1" data-max="10"> 
67                        <div class="label-wrapper"> 
68                          <label class="label"> 
69                            ${_ADULTS[locale]} 
70                          </label> 
71                        </div> 
72                        <div class="input"> 
73                          <div class="placeholder-copy"> 
74                            <div class="button" data-minus-button> 
75 
76                              <!-- partial: component/general/icon/icon.hbs --> 
77                              <span class="icon total-adults" data-component="icon" data-icon="minus"></span> 
78                              <!-- / component/general/icon/icon.hbs --> 
79                            </div> 
80                            <input class="value" type="number" data-bind="value: String(value()).padStart(2, '0')" maxlength="2" min="1" max="10" value="2"> 
81                            <div class="button" data-plus-button> 
82 
83                              <!-- partial: component/general/icon/icon.hbs --> 
84                              <span class="icon total-adults" data-component="icon" data-icon="plus"></span> 
85                              <!-- / component/general/icon/icon.hbs --> 
86                            </div> 
87                          </div> 
88                        </div> 
89                        <input type="hidden" name="adults" min="1" max="10" value="2" data-bind="value: value"> 
90                      </div> 
91                      <!-- / component/form/custom-number-input/custom-number-input.hbs --> 
92                    </div> 
93                    <div class="total-wrapper"> 
94 
95                      <!-- partial: component/form/custom-number-input/custom-number-input.hbs --> 
96                      <div class="custom-input number total-children" data-component="custom-input-number" data-value="0" data-min="0" data-max="3"> 
97                        <div class="label-wrapper"> 
98                          <label class="label"> 
99                            ${_CHILDREN[locale]} 
100                          </label> 
101                        </div> 
102                        <div class="input"> 
103                          <div class="placeholder-copy"> 
104                            <div class="button" data-minus-button> 
105 
106                              <!-- partial: component/general/icon/icon.hbs --> 
107                              <span class="icon total-children" data-component="icon" data-icon="minus"></span> 
108                              <!-- / component/general/icon/icon.hbs --> 
109                            </div> 
110                            <input class="value" type="number" data-bind="value: String(value()).padStart(2, '0')" maxlength="2" min="0" max="3" value="0"> 
111                            <div class="button" data-plus-button> 
112 
113                              <!-- partial: component/general/icon/icon.hbs --> 
114                              <span class="icon total-children" data-component="icon" data-icon="plus"></span> 
115                              <!-- / component/general/icon/icon.hbs --> 
116                            </div> 
117                          </div> 
118                        </div> 
119                        <input type="hidden" name="children" min="0" max="3" value="0" data-bind="value: value"> 
120                      </div> 
121                      <!-- / component/form/custom-number-input/custom-number-input.hbs --> 
122                    </div> 
123                  </div> 
124                  <div class="price-submit-container"> 
125                    <div class="from-price-wrapper"> 
126 
127                      <!-- partial: component/general/from-price/from-price.hbs --> 
128                      <div class="from-price price-size-" data-component="from-price"> 
129                        <span class="from-copy detail-type">${_STARTING_FROM[locale]}</span> 
130                        <div class="price-wrapper"> 
131                          <span class="price-copy">${hotel.startingFromHotel}</span> 
132                          <span class="currency-copy detail-type">${_CURRENCY[locale]}</span> 
133                        </div> 
134                      </div> 
135                      <!-- / component/general/from-price/from-price.hbs --> 
136                    </div> 
137                    <div class="cta-wrapper"> 
138 
139                      <!-- partial: component/general/cta-button/cta-button.hbs --> 
140                      <@cta.button text="${_BOOK_HERE[locale]}" class="primary"/> 
141                      <!-- / component/general/cta-button/cta-button.hbs --> 
142                      <input type="submit" style="display: none"> 
143                    </div> 
144                  </div> 
145                </div> 
146              </form> 
147            </div> 
148 
149          </div> 
150          <!-- / component/block/hotel-booking-form/hotel-booking-form.hbs --> 
151        </div> 
152      </div> 
153    </div> 
154  </div> 
155</section> 
156<script type="text/javascript"> 
157	dataLayer.push({ 
158                'event': 'detailProduct',              
159                'name': '${hotel.name}',                             
160                'id': '${hotel.hotelCode}', 
161                'brand': 'La Coleccion Resorts' 
162	}); 
163</script> 

ERROR!

ERROR!

Other resorts

  1. Grand Fiesta Americana Coral Beach Cancún
  2. Live Aqua Boutique Resort Playa del Carmen
  3. Fiesta Americana Puerto Vallarta All Inclusive & Spa
  4. Grand Fiesta Americana Puerto Vallarta All Inclusive Adults Only