Moda vintage - Livro - Editora Senac São Paulo
Moda vintage:
20 moldes dos anos 1960
Tailleur, saia, calça, casaco, vestidos modelos vintage para serem confeccionados em tecidos contemporâneos. Com estes 20 moldes redesenhados com as medidas de hoje, o livro oferece meios para montar um guarda-roupa bastante original.
Moda vintage:
20 moldes dos anos 1960
Tailleur, saia, calça, casaco, vestidos modelos vintage para serem confeccionados em tecidos contemporâneos. Com estes 20 moldes redesenhados com as medidas de hoje, o livro oferece meios para montar um guarda-roupa bastante original.
Quantidade em
estoque:
458
-
Boleto Bancário
Parcela única, à vista
-
Pix
Parcela única, à vista
-
Cartão de Crédito
Parcelado em até
com cartão Mastercard, Visa ou Elo.
Moda vintage:
20 moldes dos anos 1960Não sabe seu CEP? Consulte aqui
-
Cartão de Crédito
'
Parcelamento em até 3 vezes sem juros com Mastercard, Visa ou Elo.
-
Cartão de Crédito
Parcelado em até
com cartão Mastercard, Visa ou Elo.
Ficha Técnica:
ISBN: 9788539608850
Edição: 1.a EDIÇÃO
Área: Moda
Número de páginas: 96
Idioma: Português
Data de lançamento: 09/12/2015
Tamanho: 19 x 25
Editora(s): SENAC SÃO PAULO
Tailleur, saia, calça, casaco, vestidos... modelos vintage para serem confeccionados em tecidos contemporâneos. Com estes 20 moldes redesenhados com as medidas de hoje, o livro, que é rico em ilustrações, oferece meios para fazer um guarda-roupa bastante original. O chique da moda francesa dos anos 1960 enfim revisitado
22336-sku
-
Tailleur, saia, calça, casaco, vestidos... modelos vintage para serem confeccionados em tecidos contemporâneos. Com estes 20 moldes redesenhados com as medidas de hoje, o livro, que é rico em ilustrações, oferece meios para fazer um guarda-roupa bastante original. O chique da moda francesa dos anos 1960 enfim revisitado
Ficha Técnica:
ISBN: 9788539608850
Edição: 1.a EDIÇÃO
Área: Moda
Número de páginas: 96
Idioma: Português
Data de lançamento: 09/12/2015
Tamanho: 19 x 25
Editora(s): SENAC SÃO PAULO
Em breve entraremos em contato!
|
The following has evaluated to null or missing: ==> media.getTitle() [in template "20102#20129#43699000" at line 20, column 64] ---- 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#43699000" at line 20, column 29] ----
1<#setting locale="pt_BR">
2
3<#assign commerceOrderLocalService = serviceLocator.findService("com.liferay.commerce.service.CommerceOrderLocalService")>
4<#assign contentHelper = serviceLocator.findService("com.liferay.commerce.product.content.util.CPContentHelper") />
5<#assign definitionHelper = serviceLocator.findService("com.liferay.commerce.product.util.CPDefinitionHelper") />
6<#assign productService = serviceLocator.findService("br.senac.sp.editora.services.service.ProductService") />
7<#assign userLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.UserLocalService")>
8<#assign warehouseService = serviceLocator.findService("com.liferay.commerce.inventory.service.CommerceInventoryWarehouseItemLocalService") />
9<#assign companyId = userLocalService.getUser(themeDisplay.getUserId()).getCompanyId() />
10
11<div class="slider4 slider4semextracard">
12 <#if entries?has_content>
13 <#list entries as curCPCatalogEntry>
14 <#assign cpSku = curCPCatalogEntry.CPSkus[0] >
15 <#if productService.isAvailable( curCPCatalogEntry.getCPDefinitionId() )>
16 <div class="imgContainerEspecialCarrossel4">
17 <a onclick="cardProductClick(this)" href="${definitionHelper.getFriendlyURL(curCPCatalogEntry.getCPDefinitionId(),themeDisplay)}" data-definition="${curCPCatalogEntry.getCPDefinitionId()}">
18 <#assign cpMedia = contentHelper.getImages(curCPCatalogEntry.getCPDefinitionId(), themeDisplay) />
19 <#list cpMedia as media>
20 <#if media.getURL()?has_content && media.getTitle()?contains("small")>
21 <img src="" data-lazy="${media.getURL()}"/>
22 <#break>
23 </#if>
24 </#list>
25 <div class="informacoesProdutoCarrossel4">
26 <div class="infoSuperiores">
27 <div class="tituloEspecialCarrossel4">
28 ${curCPCatalogEntry.name?truncate(60, '...')}
29 </div>
30 <div class="autorEspecialCarrossel4">
31 <#if contentHelper?has_content >
32 <#list contentHelper.getCategorizedCPDefinitionSpecificationOptionValues(curCPCatalogEntry.getCPDefinitionId(),43620166) as specs>
33 <#if specs.CPSpecificationOptionId == 43594743>
34 ${specs.getValueCurrentValue()?truncate(45, '...')}
35 <#break>
36 </#if>
37 </#list>
38 </#if>
39 </div>
40 </div>
41 </div>
42 </a>
43 <div class="valorCarrossel4" data-definition="${curCPCatalogEntry.getCPDefinitionId()}">
44 <@liferay_commerce_ui["price"]
45 CPCatalogEntry=curCPCatalogEntry
46 />
47 </div>
48 <div class="divEspiarCarrossel4">
49 <#if productService.isAvailable( curCPCatalogEntry.getCPDefinitionId() ) && warehouseService.getStockQuantity(companyId,cpSku.getSku()) gt 0 >
50 <span class="comprarCarrossel4" data-sku="${cpSku.getSku()}">
51 <#assign PortalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"] />
52 <#assign id = "add-to-cart" + PortalUtil.generateRandomKey(request, "add-to-cart") + "" + cpSku.getSku() />
53 <@liferay_commerce_ui["add-to-cart"]
54 CPInstanceId=cpSku.getCPInstanceId()
55 id=id
56 />
57 </span>
58 <#else>
59 <span class="comprarCarrossel4">
60 <button class="btnIndisponivelEspecialCarrossel4" href="javascript:void(0)" disabled>Livro Indisponível</button>
61 </span>
62 </#if>
63 </div>
64 </div>
65 </#if>
66 </#list>
67 </#if>
68</div>
69
70<style>
71 .comprarCarrossel4 div.form-group {
72 display: none;
73 }
74 .comprarCarrossel4 .add-to-cart-quantity-marker.active {
75 opacity: 0;
76 display: none;
77 }
78
79 .comprarCarrossel4 form.quantity-selector {
80 display: none;
81 }
82
83 .comprarCarrossel4 button.btn.btn-primary {
84 background-color: #5ACC75;
85 border-radius: 4px;
86 width: 206px;
87 padding: 1px;
88 justify-content: center;
89 padding-left: 13%;
90 margin-top: 0.75rem !important;
91 }
92
93
94 .customCart{
95 opacity: 1 !important;
96 filter: none !important;
97 height: 405 !important;
98 width: 246 !important;
99 }
100
101 @media (max-width: 768px) {
102 .slider4.slider4semextracard .next-arrow {
103 right: unset;
104 left: calc(100vw - 94px);
105 z-index: 10;
106 }
107
108 .slider4.slider4semextracard .prev-arrow {
109 left: 18px;
110 z-index: 10;
111 }
112
113 .slider4.slider4semextracard .slick-list {
114 z-index: 8;
115 }
116
117 .slider4.slider4semextracard .slide-arrow .fa {
118 font-size: 22px;
119 font-weight: 400;
120 }
121
122 .divEspiarCarrossel4 {
123 margin-top: 19px !important;
124 }
125
126 .slider4semextracard .valorCarrossel4,
127 .slider4semextracard .divEspiarCarrossel4 {
128 position: absolute !important;
129 }
130
131 .slider4semextracard .valorCarrossel4 {
132 bottom: 50px;
133 left: 20px;
134 }
135
136 .slider4semextracard .divEspiarCarrossel4 {
137 bottom: 10px;
138 right: 20px;
139 }
140
141 .slider4semextracard .valorCarrossel4 .price-value {
142 font: normal 600 18px/17px Montserrat !important;
143 margin-left: 0!important;
144 }
145 .slider4semextracard .comprarCarrossel4 .btn-add-to-cart {
146 margin: 0 !important;
147 padding-top: 2px !important;
148 }
149 .comprarCarrossel4 .btn-add-to-cart::before {
150 font-size: 16px;
151 }
152 }
153
154 @media (max-width: 600px) {
155 .comprarCarrossel4 button.btn.btn-primary.btn-lg.btn-add-to-cart.btn-add-to-cart-inline {
156 padding-left: 1px;
157 height: 30px;
158 }
159
160 .btn-add-to-cart-inline::before {
161 font-size: 14px;
162 width: 100%;
163 text-align: center;
164 display: block;
165 }
166 }
167
168 .slider4.slider4semextracard .informacoesProdutoCarrossel4 > a {
169 display: flex;
170 align-items: flex-end;
171 }
172
173 .slider4.slider4semextracard .informacoesProdutoCarrossel4 > a .product-promo-price {
174 order: 1;
175 margin-top: 0!important;
176 margin-right: 2px;
177 }
178
179 .slider4.slider4semextracard .informacoesProdutoCarrossel4 > a .divValorCarrossel4 {
180 order: 2;
181 }
182
183 .slider4.slider4semextracard .informacoesProdutoCarrossel4 > a .divValorCarrossel4 + .product-promo-price {
184 margin-right: 5px;
185 }
186
187 .slider4.slider4semextracard .informacoesProdutoCarrossel4 > a .product-price {
188 order: 3;
189 margin-top: 0;
190 }
191
192 .slider4semextracard .valorCarrossel4,
193 .slider4semextracard .divEspiarCarrossel4 {
194 position: relative;
195 z-index: 9999;
196 }
197
198 @media (min-width: 769px) {
199 .slider4.slider4semextracard .informacoesProdutoCarrossel4 > a .product-price,
200 .slider4.slider4semextracard .informacoesProdutoCarrossel4 > a .product-promo-price {
201 line-height: 17px;
202 }
203
204 .slider4semextracard .valorCarrossel4 {
205 top: 100px;
206 left: 20px;
207 }
208
209 .slider4semextracard .divEspiarCarrossel4 {
210 top: 90px;
211 right: 20px;
212 }
213 }
214
215 .tituloEspecialCarrossel4 {
216 display: -webkit-box;
217 -webkit-line-clamp: 3;
218 -webkit-box-orient: vertical;
219 overflow: hidden;
220 }
221
222 .informacoesSuperioresCarrossel4 {
223 height: 72px;
224 }
225
226 @media (max-width: 414px){
227 .slider4 {
228 width: 100vw !important;
229 /* margin-right: 0; */
230 margin-right: 20px;
231 margin-left: 20px;
232 }
233 }
234
235 @media (min-width: 769px) and (max-width: 820px) {
236 .slider4semextracard .valorCarrossel4,
237 .slider4semextracard .divEspiarCarrossel4 {
238 position: absolute;
239 }
240
241 .slider4semextracard .valorCarrossel4 {
242 top: initial !important;
243 bottom: 50px;
244 }
245
246 .slider4semextracard .divEspiarCarrossel4 {
247 top: 315px;
248 }
249 }
250
251 @media (max-width: 1200px) {
252 .slick-dots {
253 width: 100vw !important;
254 }
255 }
256
257</style>
258
259<script
260 src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js"
261 integrity="sha512-XtmMtDEcNz2j7ekrtHvOVR4iwwaD6o/FUJe6+Zq+HgcCsk3kj4uSQQR8weQ2QVj1o0Pk6PwYLohm206ZzNfubg=="
262 crossorigin="anonymous"
263 referrerpolicy="no-referrer"
264 ></script>
265
266<script type="text/javascript">
267
268 var tituloSlider = setInterval(function() {
269 if ($('.slider4').length >= 1) {
270 $(`
271 <div class="background-right titulo-slider4"><a href="\rita-lobo">Livros que você pode gostar </a><i class="fas fa-circle circulo-laranja" aria-hidden="true"></i></div>
272 `).insertBefore('.slider4:has(.imgContainerEspecialCarrossel4)');
273 clearInterval(tituloSlider);
274 }
275 }, 50);
276
277 setTimeout(function(){
278 $(document).ready(function() {
279 $('.slider4').slick({
280 arrows: true,
281 slidesToShow: 4,
282 slidesToScroll: 4,
283 dots:true,
284 infinite: false,
285 lazyLoad: 'ondemand',
286 prevArrow: '<a href="#" class="slide-arrow prev-arrow"><i class="fa fa-chevron-left gray"></i></a>',
287 nextArrow: '<a href="#" class="slide-arrow next-arrow"><i class="fa fa-chevron-right gray"></i></a>',
288 speed: 1000,
289 index: 1,
290 focusOnSelect:false,
291 accessibility:false,
292 adaptiveHeight:false,
293 autoplay:false,
294 responsive: [{
295 breakpoint: 1200,
296 settings: {
297 slidesToShow: 4,
298 slidesToScroll: 4,
299 variableWidth: true,
300 infinite: false,
301 centerMode: false,
302 dots:true,
303 arrows: true
304 }
305 }, {
306 breakpoint: 768,
307 settings: {
308 slidesToShow: 1,
309 slidesToScroll: 1,
310 variableWidth: true,
311 infinite: false,
312 centerPadding: 0,
313 centerMode: false,
314 dots:false,
315 arrows: false
316 }
317 }]
318 });
319
320 sendViewItemList([<#list entries as curCPCatalogEntry>${curCPCatalogEntry.getCPDefinitionId()},</#list>])
321
322 });
323
324 if (typeof promoPrice !== 'undefined') {
325 promoPrice = document.getElementsByClassName("price");
326 }
327 else {
328 promoPrice = document.getElementsByClassName("price");
329 }
330
331 for (let i = 0; i < document.getElementsByClassName("price").length; i++) {
332 let carrossel = document.getElementsByClassName("price");
333
334 if(carrossel[i].children.length < 5) {
335 if (carrossel[i].children[0]) {
336 carrossel[i].children[0].innerText = "Por:"
337 }
338 if (carrossel[i].children[1]) {
339 carrossel[i].children[1].style.color = "#D2691E"
340 carrossel[i].children[1].style.marginLeft = ".5rem"
341 }
342
343 carrossel[i].style.marginTop = "24px"
344 }
345 else if (carrossel[i].children.length > 7){
346 if (carrossel[i].children[0]) {
347 carrossel[i].children[0].innerHTML = "<del>De:</del>"
348 carrossel[i].children[0].style.color = "#78849e"
349 }
350
351 if (carrossel[i].children[1]) {
352 carrossel[i].children[1].classList.remove("price-value-inactive")
353 let priceBefore = carrossel[i].children[1].innerText
354 carrossel[i].children[1].innerHTML = '<del>'+priceBefore+'</del>'
355 carrossel[i].children[1].style.color = "#78849e"
356 }
357
358 carrossel[i].children[2].style.display = "none"
359 carrossel[i].children[3].style.display = "none"
360 carrossel[i].children[4].innerText = "Por:"
361 carrossel[i].children[5].style.display = "none"
362 carrossel[i].children[6].style.display = "none"
363 carrossel[i].children[7].style.color = "#D2691E"
364 carrossel[i].children[7].style.marginLeft = ".5rem"
365 carrossel[i].style.marginTop = "10px"
366 }
367 else {
368 if (carrossel[i].children[0]) {
369 carrossel[i].children[0].innerHTML = "<del>De:</del>"
370 carrossel[i].children[0].style.color = "#78849e"
371 }
372 if (carrossel[i].children[1]) {
373 carrossel[i].children[1].classList.remove("price-value-inactive")
374 let priceBefore = carrossel[i].children[1].innerText
375 carrossel[i].children[1].innerHTML = '<del>'+priceBefore+'</del>'
376 carrossel[i].children[1].style.color = "#78849e"
377 }
378
379 carrossel[i].children[2].style.display = "none"
380 carrossel[i].children[3].style.display = "none"
381 carrossel[i].children[4].innerText = "Por:"
382 carrossel[i].children[5].style.color = "#D2691E"
383 carrossel[i].children[5].style.marginLeft = ".5rem"
384 carrossel[i].style.marginTop = "10px"
385 }
386 }
387
388 const slider4 = document.getElementsByClassName("slider4");
389
390 for (let i = 0; i < slider4.length; i++) {
391 slider4[i].style.display ='block';
392 }
393
394 $('.slider4.slider4semextracard').on('afterChange', function(event, slick, currentSlide) {
395 if (slick.$slides.length - 1 == currentSlide) {
396 $('.slider4.slider4semextracard .next-arrow').css('display', 'none');
397 }
398 else {
399 $('.slider4.slider4semextracard .next-arrow').css('display', 'flex');
400 }
401
402 if (0 == currentSlide) {
403 $('.slider4.slider4semextracard .prev-arrow').css('display', 'none');
404 }
405 else {
406 $('.slider4.slider4semextracard .prev-arrow').css('display', 'flex');
407 }
408 });
409
410 if (typeof promoPrice !== 'undefined') {
411 let promoPrice = document.getElementsByClassName("product-promo-price");
412 }
413 else{
414 promoPrice = document.getElementsByClassName("product-promo-price");
415 }
416
417 if(promoPrice.length > 0){
418 const productPrice = document.getElementsByClassName(".price-value-final");
419 for (let i = 0; i < productPrice.length; i++) {
420 $(productPrice[i]).attr('data-content','Por: ');
421 }
422 }else{
423 const valorCarrossel4 = document.getElementsByClassName("valorCarrossel4");
424 for (let i = 0; i < valorCarrossel4.length; i++) {
425 valorCarrossel4[i].style.marginTop='25px';
426 // valorCarrossel4[i].style.marginBottom='17px';
427 }
428 }
429
430 }, 2000);
431
432</script>