Publicador de Conteúdos e Mídias

eds - carrossel-home

Editor de produto

eds - carrossel-home-mob

eds-titulo-LANÇAMENTOS

Editor de produto

eds-titulo-rita-lobo

Editor de produto

eds-titulo-Mais Lidos

Editor de produto

Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing:
==> media.getTitle()  [in template "20102#20129#43698967" at line 54, column 60]

----
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: #if media.getURL()?has_content && med...  [in template "20102#20129#43698967" at line 54, column 25]
----
1<#setting locale="pt_BR"> 
2 
3<#assign cpContentHelper = serviceLocator.findService("com.liferay.commerce.product.content.util.CPContentHelper") /> 
4<#assign cpDefinitionHelper = serviceLocator.findService("com.liferay.commerce.product.util.CPDefinitionHelper") /> 
5<#assign productService = serviceLocator.findService("br.senac.sp.editora.services.service.ProductService") /> 
6<#assign userLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.UserLocalService")> 
7<#assign warehouseService = serviceLocator.findService("com.liferay.commerce.inventory.service.CommerceInventoryWarehouseItemLocalService") /> 
8<#assign companyId =  userLocalService.getUser(themeDisplay.getUserId()).getCompanyId() /> 
9 
10<div class="slider2"> 
11    <#if entries?has_content> 
12        <#list entries as curCPCatalogEntry> 
13            <div class="imgContainerMaisLidos"> 
14                <div class="informacoesMaisLidos"> 
15                    <a onclick="cardProductClick(this)" href="${cpDefinitionHelper.getFriendlyURL(curCPCatalogEntry.getCPDefinitionId(),themeDisplay)}" data-definition="${curCPCatalogEntry.getCPDefinitionId()}"> 
16                        <div class="informacoesSuperiores"> 
17                            <span class="tituloMaisLidos">${curCPCatalogEntry.name?truncate(60, '...')}</span> 
18                            <span class="autorMaisLidos"> 
19                                <#list cpContentHelper.getCategorizedCPDefinitionSpecificationOptionValues(curCPCatalogEntry.getCPDefinitionId(),43620166) as specs>     
20                                    <#if specs.CPSpecificationOptionId == 43594743> 
21                                        <#assign autor = specs.getValueCurrentValue() /> 
22                                        ${autor?truncate(50, '...')} 
23                                        <#break> 
24                                    </#if> 
25                                </#list> 
26                            </span> 
27                        </div> 
28                    </a> 
29                    <div class="valorCarrossel2"> 
30                        <@liferay_commerce_ui["price"] 
31                            CPCatalogEntry=curCPCatalogEntry 
32                        /> 
33                    </div> 
34                    <div class="comprarCarrossel2" data-sku="${curCPCatalogEntry.CPSkus[0].getSku()}"> 
35                        <#if productService.isAvailable( curCPCatalogEntry.getCPDefinitionId() ) && warehouseService.getStockQuantity(companyId,curCPCatalogEntry.CPSkus[0].getSku()) gt 0 > 
36                            <span class="spanComprarCarrossel2"> 
37                                <#assign PortalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"] /> 
38                                    <#assign id = "add-to-cart_" + PortalUtil.generateRandomKey(request, "add-to-cart") + "_" + curCPCatalogEntry.CPSkus[0].getSku() /> 
39                                        <@liferay_commerce_ui["add-to-cart"] 
40                                            CPInstanceId=curCPCatalogEntry.CPSkus[0].getCPInstanceId() 
41                                            id=id 
42                                        /> 
43                            </span> 
44                        <#else> 
45                            <span class="btnComprarEspecial"> 
46                                <button class="btnIndisponivelEspecial" disabled>Livro Indisponível</button> 
47                            </span> 
48                        </#if> 
49                    </div> 
50                </div> 
51                <a onclick="cardProductClick(this)" href="${cpDefinitionHelper.getFriendlyURL(curCPCatalogEntry.getCPDefinitionId(),themeDisplay)}" data-definition="${curCPCatalogEntry.getCPDefinitionId()}"> 
52                    <#assign cpMedia = cpContentHelper.getImages(curCPCatalogEntry.getCPDefinitionId(), themeDisplay) /> 
53                    <#list cpMedia as media> 
54                        <#if media.getURL()?has_content && media.getTitle()?contains("small")> 
55                            <img src="" data-lazy="${media.getURL()}"/> 
56                            <#break> 
57                        </#if> 
58                    </#list> 
59                </a> 
60            </div> 
61        </#list> 
62    </#if> 
63</div> 
64 
65<style> 
66     
67    .informacoesMaisLidos span.commerce-discount { 
68        display: none; 
69
70     
71    .valorCarrossel2 span.product-price { 
72        clear: left; 
73        color: var(--unnamed-color-f6921e); 
74        float: left; 
75        font: normal normal bold 25px/26px Montserrat; 
76        font: var(--unnamed-font-style-normal) normal var(--unnamed-font-weight-bold) var(--unnamed-font-size-25)/26px var(--unnamed-font-family-montserrat); 
77        letter-spacing: 0px; 
78        letter-spacing: var(--unnamed-character-spacing-0); 
79        text-align: left; 
80
81 
82    .valorCarrossel2 span.product-promo-price { 
83        color: #454F63; 
84        color: var(--unnamed-color-454f63); 
85        float: left; 
86        font: var(--unnamed-font-style-normal) normal var(--unnamed-font-weight-medium) var(--unnamed-font-size-14)/var(--unnamed-line-spacing-22) var(--unnamed-font-family-montserrat); 
87        font-weight: 200; 
88        letter-spacing: 0px; 
89        letter-spacing: var(--unnamed-character-spacing-0); 
90        text-align: left; 
91        text-decoration: line-through; 
92
93 
94    .valorCarrossel2 span.product-promo-price::before { 
95        color: #454F63; 
96        color: var(--unnamed-color-454f63); 
97        content: "De: "; 
98        font: var(--unnamed-font-style-normal) normal var(--unnamed-font-weight-medium) var(--unnamed-font-size-12)/var(--unnamed-line-spacing-22) var(--unnamed-font-family-montserrat); 
99        font-weight: 200; 
100        letter-spacing: 0px; 
101        letter-spacing: var(--unnamed-character-spacing-0); 
102        text-align: left; 
103
104 
105    .valorCarrossel2 span.product-price::before { 
106        color: #454F63; 
107        color: var(--unnamed-color-454f63); 
108        content: attr(data-content); 
109        font: var(--unnamed-font-style-normal) normal var(--unnamed-font-weight-medium) var(--unnamed-font-size-12)/var(--unnamed-line-spacing-22) var(--unnamed-font-family-montserrat); 
110        font-size: 16px; 
111        font-weight: 200; 
112        letter-spacing: 0px; 
113        letter-spacing: var(--unnamed-character-spacing-0); 
114        text-align: left; 
115
116     
117    .comprarCarrossel2 { 
118        margin-top: 0px; 
119
120     
121    .spanComprarCarrossel2{ 
122        display:block; 
123        float:right; 
124        margin-top: 10px; 
125
126     
127    .spanComprarCarrossel2  div.form-group { 
128            display: none; 
129
130     
131    .spanComprarCarrossel2 .add-to-cart-quantity-marker.active { 
132        display: none; 
133        opacity: 0; 
134
135 
136    .spanComprarCarrossel2  form.quantity-selector { 
137        display: none; 
138
139 
140    .spanComprarCarrossel2 .add-to-cart button.btn-add-to-cart { 
141        background-color: #5ACC75; 
142        border-radius: 4px; 
143        height: 50px; 
144        justify-content: center; 
145        margin-left: -20px; 
146        padding: 1px; 
147        padding-left: 13%; 
148        width: 195px; 
149
150     
151    .spanComprarCarrossel2 .add-to-cart button.btn-add-to-cart:active:focus { 
152        background-color: #5ACC75 !important; 
153
154     
155    .btnComprarEspecial { 
156        margin-top: 20px; 
157
158 
159    .slick-dots { 
160        z-index: 2; 
161
162 
163    @media (max-width: 813px) { 
164        span.product-price { 
165            font-size: 14px; 
166
167         
168        span.product-promo-price { 
169            font-size: 13px !important; 
170
171         
172        .spanComprarCarrossel2  button.btn.btn-primary.btn-lg.btn-add-to-cart.btn-add-to-cart-inline {     
173            height: 35px; 
174            padding-left: 5%; 
175            width: 130px; 
176
177         
178        .valorCarrossel2 span.product-price { 
179            color: #F6921E; 
180            font: normal bold 18px/17px Montserrat; 
181
182 
183        .valorCarrossel2 span.product-promo-price { 
184            color: #454F63; 
185            font: normal normal normal 13px/14px Montserrat; 
186
187 
188        .valorCarrossel2 span.product-promo-price::before { 
189            color: #454F63; 
190            font: normal normal normal 13px/14px Montserrat; 
191
192 
193        .valorCarrossel2 span.product-price::before { 
194            color: #454F63; 
195            font: normal normal normal 13px/14px Montserrat; 
196
197
198 
199    @media (max-width: 768px){ 
200        .slick-dotted.slick-slider { 
201            margin-bottom: 30px; 
202            margin-left: 20px; 
203
204 
205        .slider2 .next-arrow { 
206            right: 18px; 
207
208 
209        .slider2 .prev-arrow { 
210            left: 18px; 
211
212 
213        .slider2 .slide-arrow .fa { 
214            font-size: 22px; 
215            font-weight: 400; 
216
217 
218        .slider2 .valorCarrossel2 .price-label { 
219            visibility: visible; 
220
221        .slider2 .valorCarrossel2 .price .price-value { 
222            position: static; 
223
224        .slider2 .valorCarrossel2 .price .price-value del { 
225            top: 0; 
226
227
228 
229    .espiar i.fas.fa-eye { 
230        color: white; 
231        font-size: 24px; 
232        padding-left: 6px; 
233        padding-top: 2px; 
234
235 
236    @media (max-width: 600px) { 
237        .comprarCarrossel4 button.btn.btn-primary.btn-lg.btn-add-to-cart.btn-add-to-cart-inline { 
238            padding-left: 1px; 
239
240 
241        .btn-add-to-cart-inline::before { 
242            display: block; 
243            font-size: 14px; 
244            text-align: center;      
245            width: 100%; 
246
247
248 
249    .slider2 .informacoesMaisLidos > a .divValor { 
250        align-items: flex-end; 
251        display: flex; 
252
253 
254    .slider2 .informacoesMaisLidos > a .divValor .product-promo-price { 
255        margin-right: 2px; 
256        margin-top: 0!important; 
257        order: 1; 
258
259 
260    .slider2 .informacoesMaisLidos > a .divValor .parcelado { 
261        order: 2; 
262
263 
264    .slider2 .informacoesMaisLidos > a .divValor .parcelado + .product-promo-price { 
265        margin-right: 5px; 
266
267 
268    .slider2 .informacoesMaisLidos > a .divValor .product-price { 
269        margin-top: 0; 
270        order: 3; 
271
272 
273 
274    @media (max-width: 768px){ 
275        .slider2 .informacoesMaisLidos > a .divValor { 
276            flex-wrap: wrap; 
277
278 
279        .slider2 .informacoesMaisLidos > a .divValor .parcelado + .product-promo-price { 
280            width: 100%; 
281
282
283     
284</style> 
285 
286<script 
287      src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js" 
288      integrity="sha512-XtmMtDEcNz2j7ekrtHvOVR4iwwaD6o/FUJe6+Zq+HgcCsk3kj4uSQQR8weQ2QVj1o0Pk6PwYLohm206ZzNfubg==" 
289      crossorigin="anonymous" 
290      referrerpolicy="no-referrer" 
291></script> 
292 
293<script> 
294 
295    if (typeof promoPriceCarrosselLinha2 !== 'undefined') { 
296        let promoPriceCarrosselLinha2 = document.getElementsByClassName("product-promo-price"); 
297    }else{ 
298        promoPriceCarrosselLinha2 = document.getElementsByClassName("product-promo-price"); 
299
300 
301    if (typeof promoPrice !== 'undefined') { 
302        promoPrice = document.getElementsByClassName("price"); 
303
304            else { 
305        promoPrice = document.getElementsByClassName("price"); 
306
307     
308            for (let i = 0; i < document.getElementsByClassName("price").length; i++) { 
309                let carrossel = document.getElementsByClassName("price"); 
310                if(carrossel[i].children.length < 5) { 
311                    carrossel[i].children[0].innerText = "Por:" 
312                    carrossel[i].children[1].style.color = "#D2691E" 
313                    carrossel[i].style.marginTop = "24px" 
314
315                else if (carrossel[i].children.length > 7){ 
316                carrossel[i].children[0].innerHTML = "<del>De:</del>" 
317                    carrossel[i].children[0].style.color = "#78849e" 
318                    carrossel[i].children[1].classList.remove("price-value-inactive") 
319                let priceBefore = carrossel[i].children[1].innerText 
320                    carrossel[i].children[1].innerHTML = '<del>'+priceBefore+'</del>' 
321                    carrossel[i].children[1].style.color = "#78849e" 
322                                     
323                    carrossel[i].children[2].style.display = "none" 
324                    carrossel[i].children[3].style.display = "none" 
325                    carrossel[i].children[4].innerText = "Por:" 
326                    carrossel[i].children[5].style.display = "none" 
327                    carrossel[i].children[6].style.display = "none" 
328                    carrossel[i].children[7].style.color = "#D2691E" 
329                    carrossel[i].style.marginTop = "10px" 
330
331                else { 
332                    carrossel[i].children[0].innerHTML = "<del>De:</del>" 
333                    carrossel[i].children[0].style.color = "#78849e" 
334                    carrossel[i].children[1].classList.remove("price-value-inactive") 
335                    let priceBefore = carrossel[i].children[1].innerText 
336                    carrossel[i].children[1].innerHTML = '<del>'+priceBefore+'</del>' 
337                    carrossel[i].children[1].style.color = "#78849e" 
338                    carrossel[i].children[2].style.display = "none" 
339                    carrossel[i].children[3].style.display = "none" 
340                    carrossel[i].children[4].innerText = "Por:" 
341                    carrossel[i].children[5].style.color = "#D2691E" 
342                    carrossel[i].style.marginTop = "10px" 
343
344
345 
346    $(document).ready(function() { 
347 
348        $('.slider2').slick({ 
349            arrows: true, 
350            slidesToShow: 2, 
351            slidesToScroll: 2, 
352            dots:true, 
353            prevArrow: '<a href="#" class="slide-arrow prev-arrow"><i class="fa fa-chevron-left gray"></i></a>', 
354            nextArrow: '<a href="#" class="slide-arrow next-arrow"><i class="fa fa-chevron-right gray"></i></a>', 
355            speed: 1500, 
356            lazyLoad: 'ondemand', 
357            index: 2, 
358            focusOnSelect:false, 
359            accessibility:false, 
360            adaptiveHeight:false, 
361            infinite: false, 
362            autoplay:false, 
363            responsive: [{ 
364                breakpoint: 1200, 
365                settings: { 
366                    autoplay:false, 
367                    slidesToShow: 2, 
368                    slidesToScroll: 2, 
369                    variableWidth: true, 
370                    infinite: false, 
371                    centerMode: false, 
372                    dots:false, 
373                    arrows: true 
374
375            }, { 
376                breakpoint: 768, 
377                settings: { 
378                    autoplay:false, 
379                    slidesToShow: 1, 
380                    slidesToScroll: 1, 
381                    variableWidth: true, 
382                    infinite: false, 
383                    centerPadding: 0, 
384                    centerMode: false, 
385                    dots:true, 
386                    arrows: true 
387
388            }] 
389        }); 
390 
391        sendViewItemList([<#list entries as curCPCatalogEntry>${curCPCatalogEntry.getCPDefinitionId()},</#list>]); 
392    }); 
393  
394</script> 

eds-titulo-NOSSO CATALOGO

NOSSO CATÁLOGO

Navegação da Categoria do Comércio

Filtre por áreas

eds-newsletter

QUER FICAR POR DENTRO DE PROMOÇÕES E NOVIDADES?