eds-titulo-Comunicação e Marketing

Comunicação e Marketing

Navegação da Categoria do Comércio

Navegação da Categoria do Comércio

Filtre
Comunicação Social
Fotografia
Marketing
Radialismo
Áudio e Vídeo

eds-titulo-LANÇAMENTOS

LANÇAMENTOS

Editor de produto

Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing:
==> relateds[1]  [in template "20102#20129#43698964" at line 85, column 80]

----
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 category = assetCategory.getA...  [in template "20102#20129#43698964" at line 85, column 29]
----
1<#setting locale="pt_BR"> 
2 
3<#assign assetentry = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
4<#assign assetCategoryRel = serviceLocator.findService("com.liferay.asset.entry.rel.service.AssetEntryAssetCategoryRelLocalService") /> 
5<#assign assetCategory = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") /> 
6<#assign contentHelper = serviceLocator.findService("com.liferay.commerce.product.content.util.CPContentHelper") /> 
7<#assign CPDefinitionHelper = serviceLocator.findService("com.liferay.commerce.product.util.CPDefinitionHelper") /> 
8<#assign friendlyURLEntryLocalService = serviceLocator.findService("com.liferay.friendly.url.service.FriendlyURLEntryLocalService")> 
9 
10<#assign userLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.UserLocalService")> 
11<#assign warehouseService = serviceLocator.findService("com.liferay.commerce.inventory.service.CommerceInventoryWarehouseItemLocalService") /> 
12<#assign companyId =  userLocalService.getUser(themeDisplay.getUserId()).getCompanyId() /> 
13<#assign productService = serviceLocator.findService("br.senac.sp.editora.services.service.ProductService") /> 
14 
15<div class="slider4"> 
16    <#if entries?has_content> 
17        <#list entries as curCPCatalogEntry> 
18            <#if curCPCatalogEntry?counter < 12> 
19                <#assign friendlyURL = CPDefinitionHelper.getFriendlyURL(curCPCatalogEntry.getCPDefinitionId(),themeDisplay)> 
20                <div class="imgContainerEspecialCarrossel4"> 
21                    <a href="${friendlyURL}"> 
22                        <#assign cpMedia = contentHelper.getImages(curCPCatalogEntry.getCPDefinitionId(), themeDisplay) /> 
23                        <#list cpMedia as media> 
24                            <#if media.getURL()?has_content && media.getTitle()?contains("small")> 
25                                 <img src="${media.getURL()}"/> 
26                                 <#break> 
27                             </#if> 
28                        </#list> 
29                    </a> 
30                    <div class="informacoesProdutoCarrossel4"> 
31                      <a href="${friendlyURL}"> 
32                      <div class="infoSuperiores"> 
33                          <div class="tituloEspecialCarrossel4"> 
34                           ${curCPCatalogEntry.name?truncate(60, '...')} 
35                          </div> 
36                          <div class="autorEspecialCarrossel4">   
37                            <#list contentHelper.getCategorizedCPDefinitionSpecificationOptionValues(curCPCatalogEntry.getCPDefinitionId(),43620166) as specs>     
38                                <#if specs.CPSpecificationOptionId == 43594743> 
39                                    <#assign autor = specs.getValueCurrentValue() /> 
40                                        ${autor?truncate(45, '...')} 
41                                    <#break> 
42                                </#if> 
43                            </#list> 
44                          </div> 
45                      </div> 
46                      </a> 
47                      <div class="valorCarrossel4"> 
48                        <@liferay_commerce_ui["price"] 
49                            CPCatalogEntry=curCPCatalogEntry 
50                        /> 
51                    </div> 
52                    <div class="espiarCarrossel4"> 
53                      <#if productService.isAvailable( curCPCatalogEntry.getCPDefinitionId() ) > 
54                          <span class="comprarCarrossel4" data-sku="${curCPCatalogEntry.CPSkus[0].getSku()}"> 
55                             <#assign PortalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"] /> 
56                             <#assign id = "add-to-cart" + PortalUtil.generateRandomKey(request, "add-to-cart") + "" + curCPCatalogEntry.CPSkus[0].getSku() /> 
57                             
58                            <#list curCPCatalogEntry.getCPSkus() as skus> 
59                              <@liferay_commerce_ui["add-to-cart"] 
60                      CPInstanceId=skus.getCPInstanceId() 
61                                        id=id 
62                    />                      
63                              </#list>                     
64                     
65             
66                                                         
67                          </span> 
68                      <#else> 
69                        <span class="comprarCarrossel4"> 
70                         <button class="btnIndisponivelEspecialCarrossel4" disabled>Livro Indisponível</button> 
71                        </span> 
72                      </#if> 
73                    </div> 
74                    </div> 
75                </div> 
76            <#elseif curCPCatalogEntry?counter == 12> 
77                <!-- Ver Mais --> 
78                <div class="customCart"> 
79                    <#assign asset = assetentry.getEntry('com.liferay.commerce.product.model.CPDefinition',entries[0].getCPDefinitionId())/> 
80                    <#assign relateds = assetCategoryRel.getAssetEntryAssetCategoryRelsByAssetEntryId(asset.getEntryId())/> 
81                    <#if (currentURL?contains("catalogo?"))> 
82                        <#assign category = assetCategory.getAssetCategory(relateds[0].assetCategoryId)/> 
83                    <#else> 
84                        <#if relateds?has_content> 
85                            <#assign category = assetCategory.getAssetCategory(relateds[1].assetCategoryId)/> 
86                        </#if>   
87                    </#if>   
88                     
89                    <#if category?has_content> 
90                        <!-- classId de Category --> 
91                        <#assign friendlyURL = friendlyURLEntryLocalService.getMainFriendlyURLEntry(20013, category.categoryId)> 
92                    <#else> 
93                        <#assign friendlyURL = ""> 
94                    </#if>   
95                    <div class="verMaisCard"> 
96                        <div class="verMaisCardContent"> 
97                            <i class="fas fa-books fa-2x"></i> 
98                            <div>    
99                            <div class="background-left2"><i class="fas fa-circle circulo auxCirc" aria-hidden="true"></i>&nbsp;</div> 
100                            </div> 
101                            <span class="text">Quer mais livros dessa área?</span> 
102                            <span class="ancora"> 
103                             <#if friendlyURL?has_content> 
104                                <#assign categoryUrl = themeDisplay.getURLPortal() + '/categoria/' + friendlyURL.getUrlTitle(locale)/> 
105                                <a class="ancora-aux" href="${categoryUrl}">Confira todos</a></a> 
106                            </#if> 
107                            <!-- --> 
108                            <#assign entryName = entry.name?lower_case> 
109                            <#assign entryNameFormatted = entryName?replace(' ', '-')> 
110                            </span> 
111                            <div>    
112                                <div class="background-right2">&nbsp;<i class="fas fa-circle circulo auxCirc" aria-hidden="true"></i></div> 
113                            </div> 
114                        </div> 
115                    </div> 
116                </div> 
117                <#break> 
118            </#if> 
119        </#list> 
120    </#if> 
121</div> 
122 
123<style> 
124   
125.comprarCarrossel4 { 
126  margin-top: 0px; 
127
128 
129.comprarCarrossel4  div.form-group { 
130  display: none; 
131}  
132    .slider4 { 
133        display: none; 
134
135    .informacoesProdutoCarrossel4 span.commerce-discount { 
136        display: none; 
137
138     
139    .comprarCarrossel4 .add-to-cart-quantity-marker.active { 
140        opacity: 0; 
141        display: none; 
142
143 
144    .comprarCarrossel4  form.quantity-selector { 
145        display: none; 
146
147 
148    .comprarCarrossel4 .add-to-cart button.btn-add-to-cart{ 
149        background-color: #5ACC75; 
150        border-radius: 4px; 
151        width: 206px; 
152        padding: 1px; 
153        justify-content: center;  
154        padding-left: 13%; 
155
156   
157  .comprarCarrossel4 span.price-value-final { 
158     color: #D2691E !important; 
159
160   
161  .comprarCarrossel4 .btnIndisponivelEspecialCarrossel4 { 
162      margin-top: 0.75rem !important; 
163
164   
165    .comprarCarrossel4 .add-to-cart button.btn-add-to-cart{ 
166      background-color: #5ACC75 !important; 
167
168  
169    .informacoesProdutoCarrossel4 .product-price { 
170        font: normal normal bold 16px/17px Montserrat; 
171
172     
173    .slick-dots { 
174      z-index: 2; 
175
176 
177    @media (max-width: 1200px) { 
178      	.slick-dots { 
179            width: 100vw !important; 
180
181
182     
183    @media (min-width: 1023px) { 
184        .slick-dotted.slick-slider { 
185             
186
187        .slider4 { 
188            width: 1093px !important; 
189
190
191     
192    @media (max-width: 813px) { 
193        .divEspiarCarrossel4 { 
194            margin-top: 30px !important; 
195
196         
197         
198        .divValorCarrossel4 { 
199            margin-top: 15px !important; 
200
201
202     
203    @media (max-width: 768px) { 
204        .slider2 .next-arrow { 
205            right: 18px; 
206
207         
208        .slider2 .prev-arrow { 
209            left: 18px; 
210
211         
212        .slider2 .slide-arrow .fa { 
213            font-size: 22px; 
214            font-weight: 400; 
215
216 
217        .slider4 .valorCarrossel4 { 
218          margin-top: 5px; 
219
220 
221        .slider4 .espiarCarrossel4 { 
222          position: relative; 
223          top: -10px; 
224
225 
226        .valorCarrossel4 .price:not(.compact) .price-value { 
227            font: normal 600 18px/17px Montserrat !important; 
228
229        .valorCarrossel4 { 
230            position: relative; 
231            z-index: 9999; 
232            display: flex; 
233            padding-top: 25px; 
234            align-items: flex-end; 
235
236        .valorCarrossel4 .price-value { 
237            margin-left: 0!important; 
238
239        .comprarCarrossel4 .btn-add-to-cart { 
240          margin: 0 !important; 
241          padding-top: 2px !important; 
242
243        .comprarCarrossel4 .btn-add-to-cart::before { 
244          font-size: 16px; 
245
246 
247        .valorCarrossel4:not(.slider4semextracard .valorCarrossel4) { 
248          margin-top: 0!important; 
249          padding-top: 0!important; 
250
251        .slider4 .informacoesProdutoCarrossel4:not(.slider4semextracard) { 
252          top: unset; 
253          bottom: 4%; 
254
255 
256
257     
258    @media (max-width: 600px) { 
259      .comprarCarrossel4 button.btn.btn-primary { 
260        padding-left: 1px; 
261        height: 30px; 
262
263 
264      .btn-add-to-cart-inline::before { 
265        font-size: 14px; 
266        width: 100%; 
267        text-align: center; 
268        display: block; 
269
270
271     
272    .slider4:not(.slider4semextracard) .informacoesProdutoCarrossel4 > a .divValorCarrossel4 { 
273        display: flex; 
274        align-items: flex-end; 
275
276     
277    .slider4:not(.slider4semextracard) .informacoesProdutoCarrossel4 > a .divValorCarrossel4 .price { 
278        order: 1; 
279        margin-top: 0!important; 
280        margin-right: 2px; 
281
282     
283    .slider4:not(.slider4semextracard) .informacoesProdutoCarrossel4 > a .divValorCarrossel4 .parceladoCarrossel4 { 
284        order: 2; 
285
286     
287    .slider4:not(.slider4semextracard) .informacoesProdutoCarrossel4 > a .divValorCarrossel4 .parceladoCarrossel4 + .price { 
288        margin-right: 5px; 
289
290     
291    .slider4:not(.slider4semextracard) .informacoesProdutoCarrossel4 > a .divValorCarrossel4 .product-price { 
292        order: 3; 
293        margin-top: 0; 
294
295     
296    @media (max-width: 414px){ 
297        .slider4 { 
298            width: 100vw !important; 
299            /* margin-right: 0; */ 
300            margin-right: 20px; 
301            margin-left: 20px; 
302
303
304</style> 
305   
306<script> 
307  setTimeout(function(){ 
308    $(document).ready(function() { 
309      $('.slider4').slick({ 
310        arrows: true, 
311        slidesToShow: 4, 
312        slidesToScroll: 4, 
313        dots:true, 
314        infinite: false, 
315        prevArrow: '<a href="#" class="slide-arrow prev-arrow"><i class="fa fa-chevron-left gray"></i></a>', 
316        nextArrow: '<a href="#" class="slide-arrow next-arrow"><i class="fa fa-chevron-right gray"></i></a>', 
317        speed: 1000,  
318        index: 2, 
319        lazyLoad: 'ondemand', 
320        focusOnSelect:false, 
321        accessibility:false, 
322        adaptiveHeight:false, 
323        autoplay:false, 
324        responsive: [{ 
325          breakpoint: 1200, 
326          settings: { 
327            slidesToShow: 4, 
328            slidesToScroll: 4, 
329            variableWidth: true, 
330            infinite: false, 
331            centerMode: false, 
332            dots:true, 
333            arrows: true 
334
335        }, { 
336          breakpoint: 768, 
337          settings: { 
338            slidesToShow: 1, 
339            slidesToScroll: 1, 
340            variableWidth: true, 
341            infinite: false, 
342            centerPadding: 0, 
343            centerMode: false, 
344            dots:false, 
345            arrows: true 
346
347        }] 
348      }); 
349 
350      sendViewItemList([<#list entries as curCPCatalogEntry>${curCPCatalogEntry.getCPDefinitionId()},</#list>]) 
351    }); 
352     
353    const slider4 = document.getElementsByClassName("slider4"); 
354    for (let i = 0; i < slider4.length; i++) { 
355      slider4[i].style.display ='block'; 
356
357     
358    if (typeof promoPrice !== 'undefined') { 
359        promoPrice = document.getElementsByClassName("price"); 
360
361      else { 
362        promoPrice = document.getElementsByClassName("price"); 
363
364   
365      for (let i = 0; i < document.getElementsByClassName("price").length; i++) { 
366        let carrossel = document.getElementsByClassName("price"); 
367        if(carrossel[i].children.length < 5) { 
368          if(carrossel[i].children[0]) 
369            carrossel[i].children[0].innerText = "Por:" 
370 
371          if(carrossel[i].children[1]) { 
372            carrossel[i].children[1].style.color = "#F6921E" 
373            carrossel[i].children[1].style.marginLeft = ".5rem" 
374
375          carrossel[i].style.marginTop = "24px" 
376
377        else if (carrossel[i].children.length > 7){ 
378          carrossel[i].children[0].innerHTML = "<del>De:</del>" 
379          carrossel[i].children[0].style.color = "#78849e" 
380          carrossel[i].children[1].classList.remove("price-value-inactive") 
381          let priceBefore = carrossel[i].children[1].innerText 
382          carrossel[i].children[1].innerHTML = '<del>'+priceBefore+'</del>' 
383          carrossel[i].children[1].style.color = "#78849e" 
384                   
385          carrossel[i].children[2].style.display = "none" 
386          carrossel[i].children[3].style.display = "none" 
387          carrossel[i].children[4].innerText = "Por:" 
388          carrossel[i].children[5].style.display = "none" 
389          carrossel[i].children[6].style.display = "none" 
390          carrossel[i].children[7].style.color = "#F6921E" 
391          carrossel[i].children[7].style.marginLeft = ".5rem" 
392          carrossel[i].style.marginTop = "10px" 
393
394        else { 
395          carrossel[i].children[0].innerHTML = "<del>De:</del>" 
396          carrossel[i].children[0].style.color = "#78849e" 
397          carrossel[i].children[1].classList.remove("price-value-inactive") 
398          let priceBefore = carrossel[i].children[1].innerText 
399          carrossel[i].children[1].innerHTML = '<del>'+priceBefore+'</del>' 
400          carrossel[i].children[1].style.color = "#78849e" 
401          carrossel[i].children[2].style.display = "none" 
402          carrossel[i].children[3].style.display = "none" 
403          carrossel[i].children[4].innerText = "Por:" 
404          carrossel[i].children[5].style.color = "#F6921E" 
405          carrossel[i].children[5].style.marginLeft = ".5rem" 
406          carrossel[i].style.marginTop = "10px" 
407
408
409  }, 1500); 
410   
411   
412   
413</script> 

eds-titulo-Áudio e Vídeo

Editor de produto

eds-titulo-Comunicação Social

Editor de produto

eds-titulo-Fotografia

Editor de produto

eds-home-Marketing

Editor de produto

eds-home-Radialismo

Editor de produto

eds-newsletter

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