www.zunper.shop
Open in
urlscan Pro
2606:4700::6811:f677
Public Scan
Submitted URL: http://www.zunper.shop/collections/sweater/products/cute-cats-time-art-pattern-print-casual-knit-pullover-sweater?cfb=7...
Effective URL: https://www.zunper.shop/collections/sweater/products/cute-cats-time-art-pattern-print-casual-knit-pullover-sweater?cfb=7...
Submission: On August 19 via api from US — Scanned from US
Effective URL: https://www.zunper.shop/collections/sweater/products/cute-cats-time-art-pattern-print-casual-knit-pullover-sweater?cfb=7...
Submission: On August 19 via api from US — Scanned from US
Form analysis
8 forms found in the DOM<form>
<input name="variant_id" type="hidden" value="${data.variants[0].id}">
<button type="button" class="product-snippet__quick-shop-btn button-secondary" role="addToCart" data-quick-shop="${data.handle}" data-track-product-id="${data.id}" data-track="click" data-track-content="add_to_cart" data-track-source="quick_shop">
Add to cart </button>
</form>
<form is="spz-form" id="${form_id}__form">
<div class="product_snippet__atc_tooltip_content">
<input type="radio" name="variant_id" value="" checked="">
<label disabled="">Choose an option</label>
<input spz-for="variant in data.variants" type="radio" id="${form_id}__${variant.id}" name="variant_id" value="${variant.id}" @change="${form_id}.addToCart">
<label spz-for="variant in data.variants" for="${form_id}__${variant.id}"> ${variant.title}/<spz-currency value="${variant.price}" layout="container" container-class="product-snippet__price"></spz-currency><spz-currency
value="${variant.compare_at_price}" layout="container" container-class="product-snippet__compare-at-price" spz-if="${(+variant.compare_at_price)>(+variant.price)}"></spz-currency>
</label>
</div>
</form>
GET /search
<form id="header_search_form_pc" class="header__search-form relative flex" action="/search" method="get">
<div class="md:flex-1 relative items-stretch">
<input @input-debounced="header_search_lightbox.open();header_search_predictive_render.rerender(data=event.value, redo=true);" class="header__search-input m-0 w-full type-text-font-family" autocomplete="off" type="text" name="q"
placeholder="Search products">
<button type="submit" class="header__search-icon absolute m-0 p-0 text-0 type-text-font-family cursor-pointer" tabindex="-1"><svg class="" width="18" height="18" xmlns="http://www.w3.org/2000/svg">
<path opacity=".01" fill="currentColor" d="M0 0h18v18H0z"></path>
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.41 13.885a6.923 6.923 0 1 1 .839-.728l3.412 3.413a.554.554 0 0 1-.783.783l-3.462-3.462a.383.383 0 0 1-.006-.006Zm1.713-5.577a5.815 5.815 0 1 1-11.63 0 5.815 5.815 0 0 1 11.63 0Z"
fill="currentColor"></path>
</svg></button>
<span onclick="header_search_form_pc.reset()" @tap="header_search_lightbox.close();" class="header__search-icon-close hidden items-center justify-center absolute m-0 p-0 type-text-font-family text-0 rounded-full cursor-pointer" tabindex="-2"><svg
class="" width="12" height="12" xmlns="http://www.w3.org/2000/svg">
<path
d="M2.746 1.992a.2.2 0 0 0-.283 0l-.471.471a.2.2 0 0 0 0 .283L5.245 6 1.992 9.25a.2.2 0 0 0 0 .283l.471.472a.2.2 0 0 0 .283 0L6 6.753l3.252 3.253a.2.2 0 0 0 .283 0l.472-.472a.2.2 0 0 0 0-.283L6.753 6l3.253-3.253a.2.2 0 0 0 0-.283l-.472-.471a.2.2 0 0 0-.283 0L6 5.245 2.746 1.992z"
fill="currentColor"></path>
</svg></span>
</div>
<button type="submit" class="header__search-submit-btn lg:hidden m-0 type-text-font-family">Search</button>
</form>
GET /search
<form id="header_search_form_md" class="header__search-form relative flex" action="/search" method="get">
<div class="md:flex-1 relative items-stretch">
<input @input-debounced="header_search_lightbox.open();header_search_predictive_render.rerender(data=event.value, redo=true);" class="header__search-input m-0 w-full type-text-font-family" autocomplete="off" type="text" name="q"
placeholder="Search products">
<button type="submit" class="header__search-icon absolute m-0 p-0 text-0 type-text-font-family cursor-pointer" tabindex="-1"><svg class="" width="18" height="18" xmlns="http://www.w3.org/2000/svg">
<path opacity=".01" fill="currentColor" d="M0 0h18v18H0z"></path>
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.41 13.885a6.923 6.923 0 1 1 .839-.728l3.412 3.413a.554.554 0 0 1-.783.783l-3.462-3.462a.383.383 0 0 1-.006-.006Zm1.713-5.577a5.815 5.815 0 1 1-11.63 0 5.815 5.815 0 0 1 11.63 0Z"
fill="currentColor"></path>
</svg></button>
<span onclick="header_search_form_md.reset()" @tap="header_search_lightbox.close();" class="header__search-icon-close hidden items-center justify-center absolute m-0 p-0 type-text-font-family text-0 rounded-full cursor-pointer" tabindex="-2"><svg
class="" width="12" height="12" xmlns="http://www.w3.org/2000/svg">
<path
d="M2.746 1.992a.2.2 0 0 0-.283 0l-.471.471a.2.2 0 0 0 0 .283L5.245 6 1.992 9.25a.2.2 0 0 0 0 .283l.471.472a.2.2 0 0 0 .283 0L6 6.753l3.252 3.253a.2.2 0 0 0 .283 0l.472-.472a.2.2 0 0 0 0-.283L6.753 6l3.253-3.253a.2.2 0 0 0 0-.283l-.472-.471a.2.2 0 0 0-.283 0L6 5.245 2.746 1.992z"
fill="currentColor"></path>
</svg></span>
</div>
<button type="submit" class="header__search-submit-btn lg:hidden m-0 type-text-font-family">Search</button>
</form>
<form role="spz-product-form7dce2da2-1176-4aff-b7af-ccb9cc334cd4">
<div class="product-info-body-inner product-info-body-z-index" id="product-info-body-inner-container">
<h1 class="product-info__header_title m-0 type-heading-font-family text-base lg:text-xl leading-1.3 lg:leading-1.2 break-words product-title-color ">Cute Cats Time Art Pattern Print Casual Knit Pullover Sweater</h1>
<spz-render id="product-info-prices" layout="container" manual="" class="i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="container" style="height: auto;">
<template> ${function() { const variantData = data.variant ||
{"id":"ae336d68-5fbc-40ab-a3ec-044adb5ff7bb","product_id":"7dce2da2-1176-4aff-b7af-ccb9cc334cd4","title":"Multicolor-S","weight_unit":"kg","inventory_quantity":1000,"sku":"131-230912-03-MT00778DSL-Multicolor-S","barcode":"","position":1,"option1":"Multicolor","option2":"S","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/da85f98146f47e7ad35695059e227c68.jpeg","path":"da85f98146f47e7ad35695059e227c68.jpeg","width":900,"height":1200,"alt":"","aspect_ratio":0.75},"wholesale_price":[{"price":32.99,"min_quantity":1}],"weight":"0","compare_at_price":"69.99","price":"32.99","retail_price":"69.99","available":true,"url":"\/products\/cute-cats-time-art-pattern-print-casual-knit-pullover-sweater?variant=ae336d68-5fbc-40ab-a3ec-044adb5ff7bb","available_quantity":999999999,"options":[{"name":"Color","value":"Multicolor"},{"name":"Size","value":"S"}],"off_ratio":53,"flashsale_info":[],"sales":0};
const saveType = "percentage"; const saveText = "Save {{saved_amount}}"; const productLabelDiscountOn = true; return ` <div class="flex items-center justify-between mt-3">
<div spz-if="${!variantData.price}" class="mr-2 text-2xl leading-1.2 font-semibold color-price flex items-center">
<spz-currency class="mr-2 text-2xl leading-1.2 font-semibold color-price" container-class="product-info__header_price" value="${data.product.price_min}" layout="container"></spz-currency>
<span class="flex" spz-if="${!variantData.price && data.product.price_min < data.product.price_max}"> - <spz-currency class="ml-2 text-2xl leading-1.2 font-semibold color-price" container-class="product-info__header_price"
value="${data.product.price_max}" layout="container"></spz-currency></span>
</div>
<div spz-else="" class="flex items-center flex-wrap">
<spz-currency class="mr-2 text-2xl leading-1.2 font-semibold color-price" container-class="product-info__header_price" value="${variantData.price}" layout="container"></spz-currency>
<spz-currency class="body-plus-2 leading-1.1 color-compare-price line-through mr-2" container-class="product-info__header_compare-at-price" layout="container" value="${variantData.compare_at_price}"
spz-if="${+variantData.price < +variantData.compare_at_price}"></spz-currency>
<div spz-if="${productLabelDiscountOn && variantData.off_ratio > 0}" class="inline-block color-save-price whitespace-nowrap"> ${saveText.replace('\{\{saved_amount\}\}', saveType == 'percentage' ? variantData.off_ratio + '%' :
`<spz-currency class="inline-block" value="${variantData.compare_at_price - variantData.price}" layout="container"></spz-currency>` )} </div>
</div>
</div> `; }()} </template>
<div class="flex items-center justify-between mt-3">
<div class="flex items-center flex-wrap" spz-else="">
<spz-currency class="mr-2 text-2xl leading-1.2 font-semibold color-price i-spzhtml-element i-spzhtml-layout-container i-spzhtml-built i-spzhtml-layout" container-class="product-info__header_price" value="32.99" layout="container"
i-spzhtml-layout="container">
<div class="money product-info__header_price notranslate">$32.99</div>
</spz-currency><spz-currency class="body-plus-2 leading-1.1 color-compare-price line-through mr-2 i-spzhtml-element i-spzhtml-layout-container i-spzhtml-built i-spzhtml-layout" container-class="product-info__header_compare-at-price"
layout="container" value="69.99" spz-if="true" i-spzhtml-layout="container">
<div class="money product-info__header_compare-at-price notranslate">$69.99</div>
</spz-currency>
<div class="inline-block color-save-price whitespace-nowrap" spz-if="true"> Save 53% </div>
</div>
</div>
</spz-render>
<div class="flex flex-wrap item-center justify-between color-compare-price mt-3">
</div>
<div class="plugin-discount-wrap empty-hidden" role="[theme-seat-for-plugin]">
<div class="bootstrap">
<div class="plugin__wrappers d-flex flex-column">
<div class="plugin_modals position-relative plugin_modals-rebate" id="Modal486659" style="order: 8">
<style>
#Modal486659 {
--modal_background: linear-gradient(0deg, #ebc19e, #fff3e8 100%);
--modal_caret_background: #fff2e9;
--modal_title_color: #B83D07;
--modal_close_color: #FFFFFF;
--modal_close_background_color: #F03010;
--list_border_color: #dddddd;
}
@media (max-width: 767.98px) {
#Modal486659 .coupon_plugin__coupon:last-child {
padding-bottom: 0;
}
}
#Modal486659 .modal-footer {
position: relative;
margin-top: -30px;
}
#Modal486659 .modal-footer::before {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 150%;
background-image: url(//img.staticdj.com/oss/operation/e8ebb03dbb710457ca3b4b6a70898ab2.svg);
background-repeat: no-repeat;
background-size: 100%;
pointer-events: none;
}
@media (max-width: 767.98px) {
#Modal486659 .discount-present-item:last-child {
padding-bottom: 40px;
}
#Modal486659 .plugin_modals__wrapper-list>a:last-child {
padding-bottom: 14px;
}
}
</style>
<!-- 入口 -->
<div class="plugin_modals__list" data-toggle="modal" data-target="#target_Modal486659" impr="1" imprevt="1" imprsd="true">
<div class="plugin_modals__list-name">
<style>
a.product_detail_rebate_list {
display: inline-flex;
gap: 4px;
align-items: start;
color: #EB391B;
}
a.product_detail_rebate_list:hover {
color: #EB391B;
}
a.product_detail_rebate_list .money {
white-space: nowrap;
}
.plugin_modals__modal .rebate-icon {
display: none;
}
.rebate-icon {
padding-top: 4px;
}
</style>
<a class="product_detail_rebate_list" impr="1" imprevt="1" href="/promotions/rebate/da49612c-d194-492b-99e2-30a314857803" imprsd="true">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="24" fill="none" class="rebate-icon">
<g clip-path="url(#a)">
<path fill="#EB391B" fill-rule="evenodd" d="M9.127 1.275a1.576 1.576 0 0 0-2.255 0l-.693.709a1.576 1.576 0 0 1-1.146.475l-.991-.012a1.576 1.576 0 0 0-1.595 1.595l.011.991a1.576 1.576 0 0 1-.475 1.146l-.708.693a1.576 1.576 0 0 0 0 2.255l.709.693c.308.3.48.716.475 1.146l-.012.992a1.576 1.576 0 0 0 1.595 1.594l.991-.011a1.577 1.577 0 0 1 1.146.475l.693.709a1.575 1.575 0 0 0 2.255 0l.693-.71a1.576 1.576 0 0 1 1.146-.475l.992.012a1.575 1.575 0 0 0 1.594-1.594l-.011-.992a1.577 1.577 0 0 1 .475-1.146l.709-.693a1.575 1.575 0 0 0 0-2.255l-.71-.693a1.576 1.576 0 0 1-.475-1.146l.012-.991a1.576 1.576 0 0 0-1.594-1.595l-.992.011a1.576 1.576 0 0 1-1.146-.475l-.693-.708ZM5.84 6.92a1.08 1.08 0 1 0 0-2.16 1.08 1.08 0 0 0 0 2.16Zm4.32 4.32a1.08 1.08 0 1 0 0-2.161 1.08 1.08 0 0 0 0 2.16Zm.56-5.96a.793.793 0 0 1 0 1.12L6.4 10.72A.792.792 0 0 1 5.28 9.6L9.6 5.28a.792.792 0 0 1 1.12 0Z" clip-rule="evenodd"></path>
</g>
<defs>
<clipPath id="a"><path fill="#fff" d="M0 0h16v16H0z"></path></clipPath>
</defs>
</svg>
<div style="flex: 1;word-break: break-word">
<li id="pdr__rule" class="pdr__rule">
Buy <b>2</b> items and save <b>8%</b> off
</li>
<li id="pdr__rule" class="pdr__rule">
Buy <b>3</b> items and save <b>10%</b> off
</li>
<li id="pdr__rule" class="pdr__rule">
Buy <b>5</b> items and save <b>15%</b> off
</li>
</div>
</a>
</div>
<div class="plugin_modals__list-labels text-right"></div>
</div>
</div>
</div>
</div>
</div>
<spz-variants class="product-info__variants flex flex-col items-start i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" layout="container" id="product-info-variants" src="script:product-json" switch-slide="[]"
slide="product-main-images;" manual="" interference="" select-soldout-suffix=" - Sold out" interact="hover" inherit-url-variant=""
@mouseout="product-info-selected-variant-Color.rerender(data=event);product-info-selected-variant-Size.rerender(data=event);" @colormouseover="product-info-selected-variant-Color.rerender(data=event);"
@sizemouseover="product-info-selected-variant-Size.rerender(data=event);" i-spzhtml-layout="container">
<fieldset class="product-info__variants_content mt-6 lg:mt-8 mx-0" name="Color">
<legend class="w-full">
<span class="lg:body-plus-2 leading-1.3 product-info__variants_title">Color</span>
<spz-render class="inline-block opacity-60 i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" id="product-info-selected-variant-Color" layout="container" manual="" i-spzhtml-layout="container"
style="height: 16px;">
<template> ${function(){ const optName = "Color"; const optionValue = data.originData.selectData ? data.originData.selectData[optName].value : data.originData.value; const optionValueText = optionValue ? (': ' + optionValue) : ''; return
` <span> ${optionValueText} </span> ` }()} </template>
<span> : Multicolor </span></spz-render>
</legend>
<div class="flex flex-wrap ">
<div class="relative mt-3 mr-3">
<input type="radio" option="Multicolor" id="product-info-variant-Multicolor-0" class="pointer-events-auto" name="product-info-variant-Color" value="Multicolor" form="product-info-body"
@input-debounced="product-info-selected-variant-color.rerender(data=event);" checked="">
<label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden
rounded-[1px]
" data-type="image-with-text">
<spz-img class="ml-1 i-spzhtml-layout-responsive i-spzhtml-layout-size-defined i-spzhtml-element i-spzhtml-built i-spzhtml-layout" src="//img.staticdj.com/da85f98146f47e7ad35695059e227c68_48x.jpeg" layout="responsive" width="42"
height="42" alt="" object-fit="cover" auto-fit="" i-spzhtml-layout="responsive" complete=""><i-spzhtml-sizer style="padding-top:100%;"></i-spzhtml-sizer><img decoding="async" alt=""
src="//img.staticdj.com/da85f98146f47e7ad35695059e227c68_48x.jpeg" class="i-spzhtml-fill-content i-spzhtml-replaced-content" style="object-fit: cover;"></spz-img>
<span class="break-words py-2 px-3">Multicolor</span>
</label>
</div>
</div>
</fieldset>
<spz-render id="Color-error-tip" manual="" layout="container" class="i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="container">
<template> ${function(){ const tipText = "Please select a {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data); return `<div class="product-info__variants-tips font-bold">${tipText}</div>` }()} </template>
</spz-render>
<fieldset class="product-info__variants_content mt-6 lg:mt-8 mx-0" name="Size">
<legend class="w-full">
<span class="lg:body-plus-2 leading-1.3 product-info__variants_title">Size</span>
<spz-render class="inline-block opacity-60 i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" id="product-info-selected-variant-Size" layout="container" manual="" i-spzhtml-layout="container"
style="height: 16px;">
<template> ${function(){ const optName = "Size"; const optionValue = data.originData.selectData ? data.originData.selectData[optName].value : data.originData.value; const optionValueText = optionValue ? (': ' + optionValue) : ''; return `
<span> ${optionValueText} </span> ` }()} </template>
<span> : S </span></spz-render>
</legend>
<div class="flex flex-wrap mt-1 product-info-variant-container ">
<div class="relative mt-3 mr-3">
<input type="radio" option="S" id="product-info-variant-S-0" class="pointer-events-auto" name="product-info-variant-Size" value="S" form="product-info-body" @input-debounced="product-info-selected-variant-size.rerender(data=event);"
checked="">
<label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden
rounded-[1px]
" data-type="text">
<span class="break-words py-3 px-4 text-center">S</span>
</label>
</div>
<div class="relative mt-3 mr-3">
<input type="radio" option="M" id="product-info-variant-M-1" class="pointer-events-auto" name="product-info-variant-Size" value="M" form="product-info-body" @input-debounced="product-info-selected-variant-size.rerender(data=event);">
<label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden
rounded-[1px]
" data-type="text">
<span class="break-words py-3 px-4 text-center">M</span>
</label>
</div>
<div class="relative mt-3 mr-3">
<input type="radio" option="L" id="product-info-variant-L-2" class="pointer-events-auto" name="product-info-variant-Size" value="L" form="product-info-body" @input-debounced="product-info-selected-variant-size.rerender(data=event);">
<label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden
rounded-[1px]
" data-type="text">
<span class="break-words py-3 px-4 text-center">L</span>
</label>
</div>
<div class="relative mt-3 mr-3">
<input type="radio" option="XL" id="product-info-variant-XL-3" class="pointer-events-auto" name="product-info-variant-Size" value="XL" form="product-info-body" @input-debounced="product-info-selected-variant-size.rerender(data=event);">
<label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden
rounded-[1px]
" data-type="text">
<span class="break-words py-3 px-4 text-center">XL</span>
</label>
</div>
<div class="relative mt-3 mr-3">
<input type="radio" option="2XL" id="product-info-variant-2XL-4" class="pointer-events-auto" name="product-info-variant-Size" value="2XL" form="product-info-body"
@input-debounced="product-info-selected-variant-size.rerender(data=event);">
<label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden
rounded-[1px]
" data-type="text">
<span class="break-words py-3 px-4 text-center">2XL</span>
</label>
</div>
<div class="relative mt-3 mr-3">
<input type="radio" option="3XL" id="product-info-variant-3XL-5" class="pointer-events-auto" name="product-info-variant-Size" value="3XL" form="product-info-body"
@input-debounced="product-info-selected-variant-size.rerender(data=event);">
<label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden
rounded-[1px]
" data-type="text">
<span class="break-words py-3 px-4 text-center">3XL</span>
</label>
</div>
<div class="relative mt-3 mr-3">
<input type="radio" option="4XL" id="product-info-variant-4XL-6" class="pointer-events-auto" name="product-info-variant-Size" value="4XL" form="product-info-body"
@input-debounced="product-info-selected-variant-size.rerender(data=event);">
<label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden
rounded-[1px]
" data-type="text">
<span class="break-words py-3 px-4 text-center">4XL</span>
</label>
</div>
<div class="relative mt-3 mr-3">
<input type="radio" option="5XL" id="product-info-variant-5XL-7" class="pointer-events-auto" name="product-info-variant-Size" value="5XL" form="product-info-body"
@input-debounced="product-info-selected-variant-size.rerender(data=event);">
<label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden
rounded-[1px]
" data-type="text">
<span class="break-words py-3 px-4 text-center">5XL</span>
</label>
</div>
</div>
</fieldset>
<spz-render id="Size-error-tip" manual="" layout="container" class="i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="container">
<template> ${function(){ const tipText = "Please select a {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data); return `<div class="product-info__variants-tips font-bold">${tipText}</div>` }()} </template>
</spz-render>
</spz-variants>
<div class="mt-5 lg:mt-6">
<div class="lg:body-plus-2 leading-1.3">Quantity</div>
<spz-quantity class="product-info-qty mt-3 i-spzhtml-layout-fixed-height i-spzhtml-layout-size-defined i-spzhtml-element i-spzhtml-built i-spzhtml-layout" id="product-info-quantity" name="quantity" value="1" min="1" max="999999999"
icon-class="product-info-qty-btn clear flex items-center justify-center flex-shrink-0" input-class="product-info-qty-input clear flex-shrink-0 body-plus-2 text-center" height="40" layout="fixed-height" style="height:40px;"
i-spzhtml-layout="fixed-height">
<div class="i-spzhtml-fill-content i-spzhtml-replaced-content"><span role="button" aria-label="decrease" class="i-spzhtml-quantity-number-decrease product-info-qty-btn clear flex items-center justify-center flex-shrink-0" disabled=""><svg
role="decrease" class="" width="16" height="16" xmlns="http://www.w3.org/2000/svg">
<path d="M13.7 7.4a.3.3 0 0 1 .3.3v.6a.3.3 0 0 1-.3.3H2.3a.3.3 0 0 1-.3-.3v-.6a.3.3 0 0 1 .3-.3h11.4z" fill="currentColor"></path>
</svg></span><input type="number" name="quantity" min="1" max="999999999" class="i-spzhtml-quantity-number-input product-info-qty-input clear flex-shrink-0 body-plus-2 text-center" aria-label="quantity"><span role="button"
aria-label="increase" class="i-spzhtml-quantity-number-increase product-info-qty-btn clear flex items-center justify-center flex-shrink-0"><svg role="increase" class="" width="16" height="16" xmlns="http://www.w3.org/2000/svg">
<path d="M8.3 14a.3.3 0 0 0 .3-.3V8.6h5.1a.3.3 0 0 0 .3-.3v-.6a.3.3 0 0 0-.3-.3H8.6V2.3a.3.3 0 0 0-.3-.3h-.6a.3.3 0 0 0-.3.3v5.1H2.3a.3.3 0 0 0-.3.3v.6a.3.3 0 0 0 .3.3h5.1v5.1a.3.3 0 0 0 .3.3h.6z" fill="currentColor"></path>
</svg></span></div>
</spz-quantity>
</div>
<div class="product-info__current-viewer flex items-center mt-6 lg:mt-8">
<svg class="flex-shrink-0" width="24" height="24" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M12.052 6.4h-.002c-4.31 0-7.95 2.395-9.107 5.675a.377.377 0 0 0 0 .25C4.1 15.605 7.739 18 12.05 18c4.337 0 7.996-2.425 9.128-5.737a.194.194 0 0 0 0-.126c-1.132-3.311-4.79-5.736-9.126-5.737zm-8.026 5.947a.372.372 0 0 1 0-.293c.782-1.831 2.517-3.366 4.782-4.13a4.218 4.218 0 1 0 6.494.004c2.26.765 3.99 2.298 4.772 4.126.04.093.04.199 0 .293-1.125 2.631-4.22 4.651-8.024 4.651-3.806 0-6.9-2.02-8.024-4.652zm7.918-4.945a1.582 1.582 0 1 1-3.052.493 10.126 10.126 0 0 1 3.052-.493z"
fill="currentColor"></path>
</svg>
<span class="current__viewer-text ml-2 break-all body-plus-2">
<spz-rng class="inline-block i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" layout="container" max="100" min="20" change-range="6" interval-seconds="3" i-spzhtml-layout="container"><span>54</span></spz-rng>
people are viewing this right now</span>
</div>
<div class="my-6">
<div class="product-info__sale-item flex items-center">
<svg class="flex-shrink-0" width="20" height="20" xmlns="http://www.w3.org/2000/svg">
<path
d="M17.14 13.65h-3.457c.327-1.022.517-2.081.568-3.164h3.751a7.954 7.954 0 0 1-.862 3.165zm-5.784 4.259a13.405 13.405 0 0 0 1.968-3.285h3.226a8.038 8.038 0 0 1-5.194 3.285zM3.45 14.624h3.227a13.407 13.407 0 0 0 1.968 3.285 8.039 8.039 0 0 1-5.195-3.285zm-1.451-4.138h3.751c.051 1.083.24 2.142.568 3.165H2.86a7.97 7.97 0 0 1-.862-3.165zM2.86 6.35h3.457a12.244 12.244 0 0 0-.568 3.164H1.998A7.97 7.97 0 0 1 2.86 6.35zm5.784-4.258a13.416 13.416 0 0 0-1.968 3.285H3.449a8.04 8.04 0 0 1 5.195-3.285zm7.906 3.285h-3.226a13.414 13.414 0 0 0-1.968-3.285 8.04 8.04 0 0 1 5.194 3.285zm-4.3 0h-4.5A12.805 12.805 0 0 1 10 2.007a12.807 12.807 0 0 1 2.25 3.37zM6.734 9.513C6.79 8.43 7 7.37 7.358 6.35h5.284c.359 1.02.568 2.08.624 3.164H6.734zm.624 4.138a11.26 11.26 0 0 1-.624-3.165h6.532a11.26 11.26 0 0 1-.624 3.165H7.358zm.392.973h4.5A12.799 12.799 0 0 1 10 17.992a12.797 12.797 0 0 1-2.25-3.368zm10.252-5.11h-3.75a12.265 12.265 0 0 0-.569-3.165h3.457c.493.96.794 2.03.862 3.164zM1 10c0 4.963 4.037 9 9 9s9-4.037 9-9-4.037-9-9-9-9 4.037-9 9z"
fill="currentColor"></path>
</svg>
<div class="product-info__sales_points-item break-words flex-1 body-minus-1 pl-3">Free Shipping On Orders Over $49.99</div>
</div>
<div class="product-info__sale-item flex items-center">
<svg class="flex-shrink-0" width="20" height="20" xmlns="http://www.w3.org/2000/svg">
<path
d="M18.41 14.672a1.811 1.811 0 0 0-1.743-1.359c-.834 0-1.538.578-1.743 1.359H13.81v-4.366h5.238v4.366h-.638zm-1.743 1.552a1.04 1.04 0 0 1-.929-.582 1.042 1.042 0 0 1 0-.97 1.04 1.04 0 0 1 .929-.582c.404 0 .757.237.928.582a1.042 1.042 0 0 1 0 .97 1.04 1.04 0 0 1-.928.582zm-3.81-1.552h-5.4a1.811 1.811 0 0 0-1.743-1.359c-.833 0-1.538.578-1.743 1.359H.952V4.97h11.905v9.702zm-7.143 1.552a1.04 1.04 0 0 1-.928-.582 1.042 1.042 0 0 1 0-.97 1.04 1.04 0 0 1 .928-.582c.405 0 .757.237.929.582a1.042 1.042 0 0 1 0 .97 1.04 1.04 0 0 1-.929.582zM16.9 6.91l1.699 2.426h-4.79V6.91H16.9zm.486-.97H13.81V4H0v11.642h3.971c.205.78.91 1.358 1.743 1.358.834 0 1.538-.577 1.743-1.358H14.924c.205.78.91 1.358 1.743 1.358.833 0 1.538-.577 1.743-1.358H20V9.666L17.386 5.94z"
fill="currentColor"></path>
</svg>
<div class="product-info__sales_points-item break-words flex-1 body-minus-1 pl-3">Processing time >>Priority is given to delivery after payment.</div>
</div>
<div class="product-info__sale-item flex items-center">
<svg class="flex-shrink-0" width="20" height="20" xmlns="http://www.w3.org/2000/svg">
<path
d="m16.185 9.248-4.237-.92 4.46-4.46c.345 1.804.26 3.646-.223 5.38m-3.019 5.18-.092.091c-2.54 2.484-5.592 1.881-7.533.216l5.592-5.591 4.749 1.03a11.784 11.784 0 0 1-2.716 4.253m-8.094-7.91.092-.093a11.775 11.775 0 0 1 4.252-2.717l1.031 4.751-5.591 5.591c-1.666-1.94-2.268-4.993.216-7.532m8.45-3.548a11.7 11.7 0 0 1 2.202.212l-4.462 4.462-.919-4.235a11.829 11.829 0 0 1 3.18-.439m3.634-.193-.072-.27-.27-.073A12.802 12.802 0 0 0 4.477 5.74l-.099.099c-2.094 2.14-2.985 5.782-.205 8.894L2 16.905l.686.686 2.17-2.171c1.383 1.235 2.869 1.752 4.283 1.752 1.769 0 3.424-.796 4.614-1.96l.1-.1a12.802 12.802 0 0 0 3.304-12.336"
fill="currentColor"></path>
</svg>
<div class="product-info__sales_points-item break-words flex-1 body-minus-1 pl-3">The merchant deposit of USD 100,000 has been paid to PayPal.</div>
</div>
<div class="product-info__sale-item flex items-center">
<svg class="flex-shrink-0" width="20" height="20" xmlns="http://www.w3.org/2000/svg">
<path
d="M9.5 1c2.757 0 5 2.243 5 5v.813H18v12.34H1V6.814h3.5V6c0-2.757 2.243-5 5-5zM17 7.813H2v10.34h15V7.814zM9.5 10.5a1.25 1.25 0 0 1 .5 2.394v2.318H9v-2.318a1.25 1.25 0 0 1 .5-2.394zm0-8.5c-2.205 0-4 1.794-4 4v.813h8V6c0-2.206-1.794-4-4-4z"
fill="currentColor"></path>
</svg>
<div class="product-info__sales_points-item break-words flex-1 body-minus-1 pl-3">Fast refund for any dissatisfaction within 15 days,money-back guarantee.</div>
</div>
</div>
<div class="mt-5 lg:mt-6">
<button class="relative button-primary flex items-center justify-center body-plus-2 type-text-font-family rounded-btn product-info_atc_btn" type="button" role="addToCart" data-track="click" data-track-content="add_to_cart"
data-track-source="add_to_cart">
<span role="content">Add to cart</span>
<div class="loading items-center justify-center absolute inset-0 flex" role="loading" show="">
<div class="loading-bounce"></div>
</div>
</button>
<button class="relative button-secondary w-full rounded-btn mt-3 product-info_atc_btn product-info_buy_now_btn" role="buyNow" type="button" data-track="click" data-track-content="checkout" data-track-source="buy_now">
<span role="content">Buy now</span>
<div class="loading items-center justify-center absolute inset-0 flex" role="loading" show="">
<div class="loading-bounce"></div>
</div>
</button>
<div class="product-info__out_stock mt-2 text-center text-sm leading-1.3 opacity-70 lg:mt-3 hidden"> Product was out of stock. </div>
<div class="product-info__unavailable mt-2 text-center text-sm leading-1.3 opacity-70 lg:mt-3 hidden"> Product is unavailable. </div>
</div>
</div>
<div class="plugin__buy_on_others empty-hidden"></div>
<input name="product_id" type="hidden" value="7dce2da2-1176-4aff-b7af-ccb9cc334cd4"><input name="variant_id" type="hidden" value="ae336d68-5fbc-40ab-a3ec-044adb5ff7bb"><input name="note" type="hidden">
</form>
<form>
<div class="quick-shop-content rounded-global-small">
<div class="quick-shop-inner-content">
<spz-variants name="quick-shop-variant" id="quick-shop-variants" class="pointer-events-none" layout="container" template="quick-shop-variant-template" spz-if="${product_options && product_options.length > 0}"
@mouseout="${mouse_out_event}" interact="hover" interference="" ${mouse_over_event}=""></spz-variants>
<button class="relative mt-5 lg:mt-6 button-primary flex items-center justify-center body-plus-2 type-text-font-family rounded-btn quick-shop_atc_btn" type="button" role="addToCart" data-track="click" data-track-content="add_to_cart"
data-track-source="add_to_cart">
<span role="content">${statusLan}</span>
<div class="loading items-center justify-center absolute inset-0" role="loading" show="">
<div class="loading-bounce"></div>
</div>
</button>
</div>
</div>
</form>
<form>
<div class="quick-shop-content rounded-global-small">
<div class="quick-shop-inner-content">
<spz-variants name="quick-shop-variant" id="quick-shop-variants" class="pointer-events-none" layout="container" template="quick-shop-variant-template" spz-if="${product_options && product_options.length > 0}"
@mouseout="${mouse_out_event}" interact="hover" interference="" ${mouse_over_event}=""></spz-variants>
<button class="relative mt-5 lg:mt-6 button-primary flex items-center justify-center body-plus-2 type-text-font-family rounded-btn quick-shop_atc_btn" type="button" role="addToCart" data-track="click" data-track-content="add_to_cart"
data-track-source="add_to_cart">
<span role="content">${statusLan}</span>
<div class="loading items-center justify-center absolute inset-0" role="loading" show="">
<div class="loading-bounce"></div>
</div>
</button>
</div>
</div>
</form>
POST //translate.googleapis.com/translate_voting?client=te
<form id="goog-gt-votingForm" action="//translate.googleapis.com/translate_voting?client=te" method="post" target="votingFrame" class="VIpgJd-yAWNEb-hvhgNd-aXYTce"><input type="text" name="sl" id="goog-gt-votingInputSrcLang"><input type="text"
name="tl" id="goog-gt-votingInputTrgLang"><input type="text" name="query" id="goog-gt-votingInputSrcText"><input type="text" name="gtrans" id="goog-gt-votingInputTrgText"><input type="text" name="vote" id="goog-gt-votingInputVote"></form>
Text Content
${(function(){ const get_random_six_digits = () => { return Math.random().toString().slice(-6) }; const wholesale_enabled = false; const setting_product_image_display = "133.33%"; const product_image = data.image; const secondary_image = data.secondImage; const image_width = product_image.width; let image_height = product_image.height; if(setting_product_image_display == '100%'){ image_height = image_width }else if(setting_product_image_display == '133.33%'){ image_height = image_width * 1.3333; }; const product_image_hover_on = true && !!secondary_image.src; const has_save_label = true && ((+data.compare_at_price) > (+data.price)); const is_single_variant = data.variants.length == 1; const min_price_variant_href = (data.min_price_variant && data.min_price_variant.available) ? data.min_price_variant.withinUrl : data.withinUrl; const retail_price_max = data.retail_price_max || data.compare_at_price_max; const THUMBNAILS_MAX_SIZE = 3; const thumbnails = data.thumbVariants.slice(0, THUMBNAILS_MAX_SIZE); const image_wrap_id = 'image_wrap_' + get_random_six_digits(); const image_carousel_id = 'image_carousel_' + get_random_six_digits(); const thumbnails_selector_id = 'thumbnails_selector_' + get_random_six_digits(); const form_id = 'form_' + get_random_six_digits(); const mixed_wholesale = data.mixed_wholesale; return ` ${ data.available ? `${ (+data.compare_at_price > +data.price) ? `Save ${ data.off_ratio }% ` : '' }` : "Sold out" } Mixed Lot ${DATA.TITLE} ${ data.price_min != data.price_max ? `From ` : ` ` } +${data.remainInvisibleThumbCount} Add to cart Add to cart Choose an option ${variant.title}/ Sold out ` })()} Welcome to TAVM store Shop now 🎁Buy 2 Save 8%🎁Buy 3 Save 10%🎁Buy 5 Save 15% Shop now>> 🔥Free Shipping over $59.99🔥 Shop now>> Welcome to TAVM store Shop now 🎁Buy 2 Save 8%🎁Buy 3 Save 10%🎁Buy 5 Save 15% Shop now>> 🎁Buy 2 Save 8%🎁Buy 3 Save 10%🎁Buy 5 Save 15% Shop now>> 🔥Free Shipping over $59.99🔥 Shop now>> Welcome to TAVM store Shop now Search Powered by Translate English,Deutsch,Italiano,Français,Español,简体中文 USD * United States Dollars (USD) * Euro (EUR) * United Kingdom Pounds (GBP) * Canadian Dollars (CAD) * Log in * Create an account ${data.data && data.data.count} * Men's suit * Men's long suit * Retro Floral Style * Hawaiian Style * Jumpsuits * Wreath * More links ${(function(){ const formatLinks = (links) => { return links.map(link => { link.tag = tags[link.title.toUpperCase()] || {}; link.target_attr = link.target == '_blank' ? 'target="_blank"' : ''; link.href_attr = link.url ? `href="${link.url}"` : ''; if(link.children && link.children.length){ link.children = formatLinks(link.children); } return link; }) }; const tags = "{}"; let linkList = [ { id: 62285681, title: "Men's suit", url: "\/collections\/personalised-leisure-short-pants-suits", target: "", levels: 0, product0: null || {}, children: [ ] }, { id: 62285683, title: "Men's long suit", url: "\/collections\/mens-suits-a", target: "", levels: 0, product0: null || {}, children: [ ] }, { id: 62285685, title: "Retro Floral Style", url: "\/collections\/retro-floral-53", target: "", levels: 0, product0: null || {}, children: [ ] }, { id: 62285687, title: "Hawaiian Style", url: "\/collections\/hawaiian", target: "", levels: 0, product0: null || {}, children: [ ] }, { id: 62285689, title: "Jumpsuits", url: "\/collections\/farm-jumpsuit", target: "", levels: 0, product0: null || {}, children: [ ] }, { id: 62285691, title: "Wreath", url: "\/collections\/wreath", target: "", levels: 0, product0: null || {}, children: [ ] }, ].slice(offset); linkList = formatLinks(linkList); const hasChild = linkList.some(link => !!(link.children && link.children.length || link.product0.id)); return ` * ${link.title} ${link.tag.label} * ${second_link.title} ${second_link.tag.label} ${third_links.title} ${third_links.tag.label} * ${link.title} ${link.tag.label} ` })()} * Men's suit * Men's long suit * Retro Floral Style * Hawaiian Style * Jumpsuits * Wreath * More links ${(function(){ const formatLinks = (links) => { return links.map(link => { link.tag = tags[link.title.toUpperCase()] || {}; link.target_attr = link.target == '_blank' ? 'target="_blank"' : ''; link.href_attr = link.url ? `href="${link.url}"` : ''; if(link.children && link.children.length){ link.children = formatLinks(link.children); } return link; }) }; const tags = "{}"; let linkList = [ { id: 62285681, title: "Men's suit", url: "\/collections\/personalised-leisure-short-pants-suits", target: "", levels: 0, product0: null || {}, children: [ ] }, { id: 62285683, title: "Men's long suit", url: "\/collections\/mens-suits-a", target: "", levels: 0, product0: null || {}, children: [ ] }, { id: 62285685, title: "Retro Floral Style", url: "\/collections\/retro-floral-53", target: "", levels: 0, product0: null || {}, children: [ ] }, { id: 62285687, title: "Hawaiian Style", url: "\/collections\/hawaiian", target: "", levels: 0, product0: null || {}, children: [ ] }, { id: 62285689, title: "Jumpsuits", url: "\/collections\/farm-jumpsuit", target: "", levels: 0, product0: null || {}, children: [ ] }, { id: 62285691, title: "Wreath", url: "\/collections\/wreath", target: "", levels: 0, product0: null || {}, children: [ ] }, ].slice(offset); linkList = formatLinks(linkList); const hasChild = linkList.some(link => !!(link.children && link.children.length || link.product0.id)); return ` * ${link.title} ${link.tag.label} * ${second_link.title} ${second_link.tag.label} ${third_links.title} ${third_links.tag.label} * ${link.title} ${link.tag.label} ` })()} English,Deutsch,Italiano,Français,Español,简体中文 USD * United States Dollars (USD) * Euro (EUR) * United Kingdom Pounds (GBP) * Canadian Dollars (CAD) * Log in * Create an account ${data.data && data.data.count} Search ${(function(){ if (data === undefined || typeof data !== 'string' || data == '') return ''; const keyword = encodeURIComponent(data); return ` View more Your search for '${data}' did not yield any results. ` })()} * Men's suit * Men's long suit * Retro Floral Style * Hawaiian Style * Jumpsuits * Wreath English,Deutsch,Italiano,Français,Español,简体中文 USD * United States Dollars (USD) * Euro (EUR) * United Kingdom Pounds (GBP) * Canadian Dollars (CAD) Log in (function(){ let w = window.innerWidth; function setHeaderCssVar() { const headerEle = document.getElementById('shoplaza-section-header'); if(!headerEle){ return }; document.body.style.setProperty('--window-height', `${window.innerHeight}px`); document.body.style.setProperty('--header-height', `${headerEle.clientHeight}px`); const mdScorllHideEle = headerEle.querySelector('.header__mobile .header__scroll_hide'); if (mdScorllHideEle) { document.body.style.setProperty('--header-scroll-hide-height-md', `${mdScorllHideEle.clientHeight}px`); } const pcScorllHideEle = headerEle.querySelector('.header__desktop .header__scroll_hide'); if (pcScorllHideEle) { document.body.style.setProperty('--header-scroll-hide-height-pc', `${pcScorllHideEle.clientHeight}px`); } } function handlResize() { if(w == window.innerWidth){return}; w = window.innerWidth; setHeaderCssVar(); }; function init(){ setHeaderCssVar(); window.removeEventListener('resize', window._theme_header_listener) window._theme_header_listener = handlResize; window.addEventListener('resize', window._theme_header_listener); } init(); })(); ${data.index + 1}/2 CUTE CATS TIME ART PATTERN PRINT CASUAL KNIT PULLOVER SWEATER ${function() { const variantData = data.variant || {"id":"ae336d68-5fbc-40ab-a3ec-044adb5ff7bb","product_id":"7dce2da2-1176-4aff-b7af-ccb9cc334cd4","title":"Multicolor-S","weight_unit":"kg","inventory_quantity":1000,"sku":"131-230912-03-MT00778DSL-Multicolor-S","barcode":"","position":1,"option1":"Multicolor","option2":"S","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/da85f98146f47e7ad35695059e227c68.jpeg","path":"da85f98146f47e7ad35695059e227c68.jpeg","width":900,"height":1200,"alt":"","aspect_ratio":0.75},"wholesale_price":[{"price":32.99,"min_quantity":1}],"weight":"0","compare_at_price":"69.99","price":"32.99","retail_price":"69.99","available":true,"url":"\/products\/cute-cats-time-art-pattern-print-casual-knit-pullover-sweater?variant=ae336d68-5fbc-40ab-a3ec-044adb5ff7bb","available_quantity":999999999,"options":[{"name":"Color","value":"Multicolor"},{"name":"Size","value":"S"}],"off_ratio":53,"flashsale_info":[],"sales":0}; const saveType = "percentage"; const saveText = "Save {{saved_amount}}"; const productLabelDiscountOn = true; return ` - ${saveText.replace('\{\{saved_amount\}\}', saveType == 'percentage' ? variantData.off_ratio + '%' : `` )} `; }()} $32.99 $69.99 Save 53% Buy 2 items and save 8% off Buy 3 items and save 10% off Buy 5 items and save 15% off Color ${function(){ const optName = "Color"; const optionValue = data.originData.selectData ? data.originData.selectData[optName].value : data.originData.value; const optionValueText = optionValue ? (': ' + optionValue) : ''; return ` ${optionValueText} ` }()} : Multicolor Multicolor ${function(){ const tipText = "Please select a {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data); return ` ${tipText} ` }()} Size ${function(){ const optName = "Size"; const optionValue = data.originData.selectData ? data.originData.selectData[optName].value : data.originData.value; const optionValueText = optionValue ? (': ' + optionValue) : ''; return ` ${optionValueText} ` }()} : S S M L XL 2XL 3XL 4XL 5XL ${function(){ const tipText = "Please select a {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data); return ` ${tipText} ` }()} Quantity 54 people are viewing this right now Free Shipping On Orders Over $49.99 Processing time >>Priority is given to delivery after payment. The merchant deposit of USD 100,000 has been paid to PayPal. Fast refund for any dissatisfaction within 15 days,money-back guarantee. Add to cart Buy now Product was out of stock. Product is unavailable. Description PRODUCT DETAILS: PRODUCT ID:MT00778DSL Material: Blended Cotton Knit Style: Casual Theme: art Pattern: art Silhouette: H-Line Sleeve Type: Long Sleeves Collar: Round Neck Length: Thigh Thickness: Medium Thickness Elasticity: Middle-Elasticity Edition type: Looser Season: Autumn /Winter Size UK US EUR Length Bust Hip Shoulder Sleeve Length cm inch cm inch cm inch cm inch cm inch S 36 36~37 46 70 27.6 108 42.5 100 39.4 60 23.6 48 18.9 M 40 39~40 50 71 28.0 113 44.5 105 41.3 61 24.0 49 19.3 L 42 42 52 72 28.3 118 46.5 110 43.3 62 24.4 50 19.7 XL 44 44 54~56 73 28.7 125 49.2 117 46.1 63.5 25.0 51 20.1 2XL 46~48 46~48 58 74 29.1 132 52.0 124 48.8 65 25.6 52 20.5 3XL 52 52 75 29.5 142 55.9 134 52.8 67.5 26.6 53 20.9 4XL 56 56 76 29.9 152 59.8 144 56.7 70 27.6 54 21.3 5XL 64 64 77 30.3 172 67.7 164 64.6 74 29.1 55 21.7 📦SHIPPING INFORMATION * We ship to worldwide. * If your order is not delivered by the estimated delivery time, please contact our friendly customer service for assistance! * Tip: Buying 2 products or more at the same time will save you quite a lot on shipping fees. * ❤️RETURNS & EXCHANGES We want you to be thrilled with your purchase. Seriously...we build our business on making you happy. ❤️ So we will do our absolute best to help if you're not completely satisfied with your order. If you are not satisfied with the goods received, please contact us within 15 days after receipt, we will give you the best help!Please don't worry!For more information see our Return policy. YOU MAY ALSO LIKE Customer Reviews Write a Review Write a Review Reviews With Photos Newest Newest Most liked Highest ratings Lowest ratings No reviews yet, why don't you leave the first review? Write a Review Customer Reviews Reviews With Photos Newest Most liked Highest ratings Lowest ratings × ${function(){ const limit = typeof data === 'number' ? data : 0; return ` Pictures/Videos (${limit || 0}/5) ` }()} ${(function(){ const closeIcon = ' '; if (item.type === 'image') { return ` ${closeIcon} ` } return ` ${closeIcon} ` })()} Submit Comments Anonymously class SpzCustomFileUpload extends SPZ.BaseElement { constructor(element) { super(element); this.uploadCount_ = 0; this.fileList_ = []; } buildCallback() { this.action = SPZServices.actionServiceForDoc(this.element); this.registerAction('upload', (data) => { this.handleFileUpload_(data.event?.detail?.data || []); }); this.registerAction('delete', (data) => { this.handleFileDelete_(data?.args?.data); }); this.registerAction('preview', (data) => { this.handleFilePreview_(data?.args?.data); }); this.registerAction('limit', (data) => { this.handleFileLimit_(); }); this.registerAction('sizeLimit', (data) => { this.handleFileSizeLimit_(); }); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } setData_(count, file) { this.uploadCount_ = count; this.fileList_ = file; } handleFileUpload_(data) { data.forEach(i => { if(this.fileList_.some(j => j.url === i.url)) return; this.fileList_.push(i); }) this.uploadCount_++; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileUpload", { count: this.uploadCount_, files: this.fileList_}); if(this.fileList_.length >= 5){ document.querySelector('#review_upload').style.display = 'none'; } if(this.fileList_.length > 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '8px'; } } handleFileDelete_(index) { this.fileList_.splice(index, 1); this.uploadCount_--; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileDelete", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; if(this.fileList_?.length === 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '132px'; } } handleFilePreview_(index) { const finalPreviewData = this.fileList_[index]; const filePreviewModal = document.getElementById('filePreviewModal'); const fullScreenVideo = document.getElementById('fullScreenVideo'); const fullScreenImage = document.getElementById('fullScreenImage'); const previewModalClose = document.getElementById('previewModalClose'); const previewLoading = document.getElementById('previewLoading'); filePreviewModal.style.display = 'block'; previewLoading.style.display = 'flex'; if(finalPreviewData?.type === 'video'){ const media = this.mediaParse_(this.fileList_[index]?.url); fullScreenVideo.addEventListener('canplaythrough', function() { previewLoading.style.display = 'none'; }); fullScreenImage.src = ''; fullScreenImage.style.display = 'none'; fullScreenVideo.style.display = 'block'; fullScreenVideo.src = media.mp4 || ''; } else { fullScreenImage.onload = function() { previewLoading.style.display = 'none'; }; fullScreenVideo.src = ''; fullScreenVideo.style.display = 'none'; fullScreenImage.style.display = 'block'; fullScreenImage.src = finalPreviewData.url; } previewModalClose.addEventListener('click', function() { filePreviewModal.style.display = 'none'; }); } handleFileLimit_() { alert(window.AppReviewsLocale.comment_file_limit || 'please do not upload files more than 5'); this.triggerEvent_("handleFileLimit"); } handleFileSizeLimit_() { alert(window.AppReviewsLocale.comment_file_size_limit || 'File size does not exceed 10M'); } clear(){ this.fileList_ = []; this.uploadCount_ = 0; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleClear", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; } mediaParse_(url) { var result = {}; try { url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (str, key, value) { try { result[key] = decodeURIComponent(value); } catch (e) { result[key] = value; } }); result.preview_image = url.split('?')[0]; } catch (e) {}; return result; } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, name, data); this.action.trigger(this.element, name, event); } } SPZ.defineElement('spz-custom-file-upload', SpzCustomFileUpload); The review would not show in product details on storefront since it does not support to. RECENTLY VIEWED © 2024 zunper About Us Contact Us Terms of Use Checkout with Credit Card Return Policy Shipping Policy View Cart ${function(){ const productData = data.product; let product_change_event = '', mouse_over_event = ' '; mouse_out_event = ''; const product_options = productData.options.filter(Boolean) || []; for (let opt of product_options) { product_change_event = product_change_event + `quick-shop-selected-variant-${opt.name}.rerender(data=event.selectedValues.${opt.name});`; mouse_out_event = mouse_out_event + `quick-shop-selected-variant-${opt.name}.rerender(data=event.selectData.${opt.name});`; mouse_over_event = mouse_over_event + `@${opt.name}Mouseover="quick-shop-selected-variant-${opt.name}.rerender(data=event);"`; } const selectedVariant = productData.variants.find(v => v.available) || productData.variants[0]; const statusLan = ((selectedVariant && !selectedVariant.available) || (!selectedVariant && !productData.available)) ? "Sold out" : "Add to cart"; return ` ${statusLan} ` }()} ${function(){ const currentSelectVariant = data.variant; const defaultVariant = (data.product && data.product.variants && data.product.variants[0]); const variantData = currentSelectVariant || defaultVariant || data; const retail_price = variantData.retail_price || 0; return ` Retail ` }()} ${function(){ const wholesale_enabled = false; const qty = data.quantity || 1; const currentSelectVariant = data.variant; const defaultVariant = (data.product && data.product.variants && data.product.variants[0]); const productVariant = {"id":"ae336d68-5fbc-40ab-a3ec-044adb5ff7bb","product_id":"7dce2da2-1176-4aff-b7af-ccb9cc334cd4","title":"Multicolor-S","weight_unit":"kg","inventory_quantity":1000,"sku":"131-230912-03-MT00778DSL-Multicolor-S","barcode":"","position":1,"option1":"Multicolor","option2":"S","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/da85f98146f47e7ad35695059e227c68.jpeg","path":"da85f98146f47e7ad35695059e227c68.jpeg","width":900,"height":1200,"alt":"","aspect_ratio":0.75},"wholesale_price":[{"price":32.99,"min_quantity":1}],"weight":"0","compare_at_price":"69.99","price":"32.99","retail_price":"69.99","available":true,"url":"\/products\/cute-cats-time-art-pattern-print-casual-knit-pullover-sweater?variant=ae336d68-5fbc-40ab-a3ec-044adb5ff7bb","available_quantity":999999999,"options":[{"name":"Color","value":"Multicolor"},{"name":"Size","value":"S"}],"off_ratio":53,"flashsale_info":[],"sales":0}; const variantData = currentSelectVariant || defaultVariant || productVariant; const wholesale_price = variantData.wholesale_price || []; if(wholesale_enabled && wholesale_price.length > 0) { let wholesaleIndex = wholesale_price.findIndex(item => { return item.min_quantity > qty; }); if(wholesaleIndex < 0){ wholesaleIndex = wholesale_price.length - 1; }else if(wholesaleIndex > 0){ wholesaleIndex = wholesaleIndex - 1; } const wholesalePrice = wholesale_price[wholesaleIndex] || ''; return ` ` }else { const price = variantData && variantData.price; return price != undefined ? ` ` : ''; } }()} ${function() { let variantImageShowed = false; const currentProduct = data.product; return (currentProduct.options || []).map((option, index) => { const optionName = option.name || ''; const position = `option${index + 1}`; let isThumbImage = false; if (currentProduct.need_variant_image && !variantImageShowed) { const variantNames = ["color"] || []; for (let i = 0, len = variantNames.length; i < len; i++) { const name = variantNames[i].toLowerCase(); if (name === optionName.toLowerCase()) { isThumbImage = true; variantImageShowed = true; } } } const variantType = "button"; const thumbStyle = "image_with_text"; return ` ${optionName}: ${option.values.map((value, idx) => { const selected = data.selectedValues[optionName] == value ? 'checked' : ''; let thumbImage = null; if (isThumbImage) { const variants = currentProduct.variants; for (let i = 0, len = variants.length; i < len; i++) { const variant = variants[i]; if (variant[position] == value && thumbImage == null) { thumbImage = variant.image; break; } } } return ` ${value} ` }).join('')} ${optionName} ${option.values.map(value => { const selected = data.selectedValues[optionName] == value ? 'selected' : ''; return `${value}` }).join('')} ` }).join(''); }()} ${data.originData && data.originData.value || data.value} View Cart ${function(){ const productData = data.product; let product_change_event = '', mouse_over_event = ' '; mouse_out_event = ''; const product_options = productData.options.filter(Boolean) || []; for (let opt of product_options) { product_change_event = product_change_event + `quick-shop-selected-variant-${opt.name}.rerender(data=event.selectedValues.${opt.name});`; mouse_out_event = mouse_out_event + `quick-shop-selected-variant-${opt.name}.rerender(data=event.selectData.${opt.name});`; mouse_over_event = mouse_over_event + `@${opt.name}Mouseover="quick-shop-selected-variant-${opt.name}.rerender(data=event);"`; } const selectedVariant = productData.variants.find(v => v.available) || productData.variants[0]; const statusLan = ((selectedVariant && !selectedVariant.available) || (!selectedVariant && !productData.available)) ? "Sold out" : "Add to cart"; return ` ${statusLan} ` }()} ${function(){ const currentSelectVariant = data.variant; const defaultVariant = (data.product && data.product.variants && data.product.variants[0]); const variantData = currentSelectVariant || defaultVariant || data; const retail_price = variantData.retail_price || 0; return ` Retail ` }()} ${function(){ const wholesale_enabled = false; const qty = data.quantity || 1; const currentSelectVariant = data.variant; const defaultVariant = (data.product && data.product.variants && data.product.variants[0]); const productVariant = {"id":"ae336d68-5fbc-40ab-a3ec-044adb5ff7bb","product_id":"7dce2da2-1176-4aff-b7af-ccb9cc334cd4","title":"Multicolor-S","weight_unit":"kg","inventory_quantity":1000,"sku":"131-230912-03-MT00778DSL-Multicolor-S","barcode":"","position":1,"option1":"Multicolor","option2":"S","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/da85f98146f47e7ad35695059e227c68.jpeg","path":"da85f98146f47e7ad35695059e227c68.jpeg","width":900,"height":1200,"alt":"","aspect_ratio":0.75},"wholesale_price":[{"price":32.99,"min_quantity":1}],"weight":"0","compare_at_price":"69.99","price":"32.99","retail_price":"69.99","available":true,"url":"\/products\/cute-cats-time-art-pattern-print-casual-knit-pullover-sweater?variant=ae336d68-5fbc-40ab-a3ec-044adb5ff7bb","available_quantity":999999999,"options":[{"name":"Color","value":"Multicolor"},{"name":"Size","value":"S"}],"off_ratio":53,"flashsale_info":[],"sales":0}; const variantData = currentSelectVariant || defaultVariant || productVariant; const wholesale_price = variantData.wholesale_price || []; if(wholesale_enabled && wholesale_price.length > 0) { let wholesaleIndex = wholesale_price.findIndex(item => { return item.min_quantity > qty; }); if(wholesaleIndex < 0){ wholesaleIndex = wholesale_price.length - 1; }else if(wholesaleIndex > 0){ wholesaleIndex = wholesaleIndex - 1; } const wholesalePrice = wholesale_price[wholesaleIndex] || ''; return ` ` }else { const price = variantData && variantData.price; return price != undefined ? ` ` : ''; } }()} ${function() { let variantImageShowed = false; const currentProduct = data.product; return (currentProduct.options || []).map((option, index) => { const optionName = option.name || ''; const position = `option${index + 1}`; let isThumbImage = false; if (currentProduct.need_variant_image && !variantImageShowed) { const variantNames = ["color"] || []; for (let i = 0, len = variantNames.length; i < len; i++) { const name = variantNames[i].toLowerCase(); if (name === optionName.toLowerCase()) { isThumbImage = true; variantImageShowed = true; } } } const variantType = "button"; const thumbStyle = "image_with_text"; return ` ${optionName}: ${option.values.map((value, idx) => { const selected = data.selectedValues[optionName] == value ? 'checked' : ''; let thumbImage = null; if (isThumbImage) { const variants = currentProduct.variants; for (let i = 0, len = variants.length; i < len; i++) { const variant = variants[i]; if (variant[position] == value && thumbImage == null) { thumbImage = variant.image; break; } } } return ` ${value} ` }).join('')} ${optionName} ${option.values.map(value => { const selected = data.selectedValues[optionName] == value ? 'selected' : ''; return `${value}` }).join('')} ` }).join(''); }()} ${data.originData && data.originData.value || data.value} 111 GIFTS POINTS Someone recently purchased Someone recently purchased Original text Rate this translation Your feedback will be used to help improve Google Translate