www.urbenie.com
Open in
urlscan Pro
2606:4700::6812:e82a
Public Scan
Submitted URL: http://urbenie.com/
Effective URL: https://www.urbenie.com/
Submission: On March 11 via manual from ES — Scanned from ES
Effective URL: https://www.urbenie.com/
Submission: On March 11 via manual from ES — Scanned from ES
Form analysis
5 forms found in the DOMGET /search
<form class="header__search tw-relative tw-flex md:tw-w-full tw-h-10 lg:tw-py-[18px]" action="/search" method="get">
<input
class="header__search-input tw-box-border tw-inline-block md:tw-flex-1 tw-m-0 tw-pl-9 tw-pr-4 tw-py-3 tw-text-[13px] tw-leading-4 tw-text-header-search-text-color tw-bg-header-search-bg type-text-font-family tw-rounded-none tw-rounded-l-sm lg:tw-rounded-sm tw-border-0 tw-outline-none lg:tw-w-[278px] "
autocomplete="off" type="text" name="q" placeholder="Search products">
<button type="submit"
class="header__search-icon tw-absolute tw-left-[10px] tw-top-1/2 tw--translate-y-1/2 tw-m-0 tw-p-0 tw-text-header-search-text-5 tw-cursor-pointer tw-text-0 tw-bg-transparent type-text-font-family tw-border-0 tw-outline-none hover:tw-text-header-search-text-color"
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
class="header__search-icon-close tw-hidden tw-h-[18px] tw-w-[18px] tw-rounded-full tw-bg-[#C0C0C0] tw-text-[#FFFFFF] tw-items-center tw-justify-center tw-absolute tw-right-[10px] md:tw-right-0 tw-top-1/2 tw--translate-y-1/2 tw-m-0 tw-p-0 tw-text-header-search-text-5 tw-cursor-pointer tw-text-0 tw-bg-transparent type-text-font-family tw-border-0 tw-outline-none hover:tw-text-header-search-text-color"
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>
<button type="submit"
class="header__search-submit-btn lg:tw-hidden tw-m-0 tw-px-4 tw-py-[11px] tw-text-sm tw-leading-[18px] tw-text-header-search-btn-text-color tw-bg-header-search-btn-bg type-text-font-family tw-rounded-none tw-rounded-r-sm tw-border-0 tw-outline-none">Search</button>
</form>
GET /search
<form class="header__search tw-relative tw-flex md:tw-w-full tw-h-10 lg:tw-py-[18px]" action="/search" method="get">
<input
class="header__search-input tw-box-border tw-inline-block md:tw-flex-1 tw-m-0 tw-pl-9 tw-pr-4 tw-py-3 tw-text-[13px] tw-leading-4 tw-text-header-search-text-color tw-bg-header-search-bg type-text-font-family tw-rounded-none tw-rounded-l-sm lg:tw-rounded-sm tw-border-0 tw-outline-none lg:tw-w-[278px] "
autocomplete="off" type="text" name="q" placeholder="Search products">
<button type="submit"
class="header__search-icon tw-absolute tw-left-[10px] tw-top-1/2 tw--translate-y-1/2 tw-m-0 tw-p-0 tw-text-header-search-text-5 tw-cursor-pointer tw-text-0 tw-bg-transparent type-text-font-family tw-border-0 tw-outline-none hover:tw-text-header-search-text-color"
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
class="header__search-icon-close tw-hidden tw-h-[18px] tw-w-[18px] tw-rounded-full tw-bg-[#C0C0C0] tw-text-[#FFFFFF] tw-items-center tw-justify-center tw-absolute tw-right-[10px] md:tw-right-0 tw-top-1/2 tw--translate-y-1/2 tw-m-0 tw-p-0 tw-text-header-search-text-5 tw-cursor-pointer tw-text-0 tw-bg-transparent type-text-font-family tw-border-0 tw-outline-none hover:tw-text-header-search-text-color"
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>
<button type="submit"
class="header__search-submit-btn lg:tw-hidden tw-m-0 tw-px-4 tw-py-[11px] tw-text-sm tw-leading-[18px] tw-text-header-search-btn-text-color tw-bg-header-search-btn-bg type-text-font-family tw-rounded-none tw-rounded-r-sm tw-border-0 tw-outline-none">Search</button>
</form>
<form class="">
<div class="zb-flex">
<a href="${product.url}?${toQuery({ aid: 'smart_recommend.2.' + data.id, ifb: product.ifb || '', cfb: product.cfb || '', scm: product.scm || data.scm || '', ssp: data.ssp || '' })}" impr="1" imprevt="1" class="zb-w-[132px] zb-mr-4 rtl:zb-ml-4 rtl:zb-mr-0" data-prdct="${product.id}" data-ifb="${product.ifb || ''}" data-cfb="${product.cfb || ''}" data-scm="${product.scm || data.scm || ''}" data-spm="${productIndex}"> <ljs-render layout="container" id="smart_cart_pop_image_${product.id}" template="smart_cart_pop_image_template" manual=""></ljs-render> </a>
<div class="zb-flex zb-flex-col zb-flex-grow zb-justify-between">
<div>
<div class="zb-line-clamp-2 zb-text-sm zb-mb-2">${product.title}</div> <ljs-render layout="container" id="smart_cart_pop_price_${product.id}" template="smart_cart_pop_price_template" manual=""></ljs-render>
</div>
<div>
<div class="zb-relative zb-w-full zb-cursor-pointer">
<div class="zb-border zb-border-solid zb-border-[#eee] zb-px-3 zb-py-[10px] zb-flex zb-items-center zb-justify-between zb-font-semibold zb-text-sm zb-rounded-sm"
@tap="smart_pop_variant-select-${product.id}.toggleClass(class=zb-rotate-180);smart_cart_pop_variant_${product.id}_mobile.toggleClass(class=zb-hidden);smart_cart_pop_variant_${product.id}_pc.toggleClass(class=smart_cart_pop_variant_pc_show,force=true);smart_cart_pop_variant_modal_${product.id}.open"
spz-if="${!!(product.options && product.options.length && product.options.length > 0) && data.config.variant_select_visible}"> <ljs-render manual="" layout="container" id="smart_cart_pop_variant_text_${product.id}"
template="smart_cart_pop_variant_text_template"></ljs-render> <svg id="smart_pop_variant-select-${product.id}" width="12" height="8" class="zb-ml-2" viewBox="0 0 12 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M6.00002 7.06738C6.19244 7.06775 6.38498 6.99453 6.5318 6.84772C6.54504 6.83447 6.55769 6.82086 6.56973 6.8069L11.1251 2.25152C11.418 1.95863 11.418 1.48375 11.1251 1.19086C10.8322 0.897968 10.3573 0.897968 10.0645 1.19086L6.00003 5.25529L1.9356 1.19086C1.64271 0.897968 1.16784 0.897968 0.874943 1.19086C0.58205 1.48375 0.58205 1.95863 0.874943 2.25152L5.43033 6.8069C5.44237 6.82086 5.45502 6.83447 5.46826 6.84772C5.61507 6.99453 5.8076 7.06775 6.00002 7.06738Z"
fill="#0A1533"></path>
</svg> </div> <ljs-lightbox layout="nodisplay" disable-unmount="" class="smart_cart_pop_lightbox_pc" id="smart_cart_pop_variant_modal_${product.id}" @close="smart_pop_variant-select-${product.id}.toggleClass(class=zb-rotate-180);">
<div id="smart_cart_pop_variant_${product.id}_pc" class="zb-hidden"><ljs-variants id="smart_cart_pop_variants_${product.id}"
class="md:!zb-absolute md:zb-top-[50px] md:zb-w-full md:zb-left-0 md:zb-z-30 md:zb-bg-white zb-max-h-[280px] zb-overflow-y-auto md:zb-shadow-pop" layout="container" template="smart_cart_pop_variant_template"
onclick="event.stopPropagation()" disabled-dj-event="" interference=""> </ljs-variants></div>
</ljs-lightbox>
</div>
<div class="zb-mt-3"> <button product-id="${product.id}" id="smart_cart_pop_atc_btn_${product.id}"
class="zb-flex zb-items-center zb-justify-center zb-w-full zb-text-white zb-py-[10px] zb-h-9 zb-text-xs zb-font-normal zb-border-none zb-rounded-[4px] smart_cart_pop_atc_btn_bg" type="button" role="addToCart"
@tap="smart_cart_pop_loading_${product.id}.toggleClass(class=zb-hidden);smart_cart_pop_atc_${product.id}.toggleClass(class=zb-hidden);smart_cart_pop_atc_btn_${product.id}.toggleClass(class=zb-pointer-events-none);custom-func.addATCHook(activity_id='${data.id}',ifb='${product.ifb}',cfb='${product.cfb}',scm='${product.scm || data.scm}',ssp='${data.ssp}',spm='${data.spmBase}.${productIndex}')">
<ljs-render layout="container" id="smart_cart_pop_atc_${product.id}" template="smart_cart_pop_atc_template" mamual="" class="notranslate"> </ljs-render>
<div id="smart_cart_pop_added_${product.id}" class="zb-hidden"><span class="zb-flex zb-justify-center zb-gap-1"><svg width="14" height="15" viewBox="0 0 16 17" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M8 16.5006C3.58171 16.5006 0 12.9183 0 8.5C0 4.08171 3.58171 0.5 8 0.5C12.4183 0.5 16 4.08171 16 8.5C16 12.9183 12.4183 16.5006 8 16.5006ZM8 2.04344C4.21314 2.04344 1.54287 4.71371 1.54287 8.50057C1.54287 12.2874 4.21314 14.9577 8 14.9577C11.7869 14.9577 14.4571 12.2874 14.4571 8.50057C14.4571 4.71371 11.7869 2.04344 8 2.04344ZM7.26057 11.1909L7.12229 11.3286L7.09543 11.3017C7.02286 11.336 6.94286 11.3577 6.85714 11.3577C6.73543 11.3577 6.62857 11.3109 6.536 11.2463L6.52229 11.2594L6.45371 11.1909C6.45314 11.1903 6.45314 11.1903 6.45257 11.1897L4.09771 8.83486L4.90629 8.02686L6.85714 9.97771L11.1629 5.67143L11.9714 6.48L7.26171 11.1897C7.26114 11.1903 7.26114 11.1903 7.26057 11.1909Z"
fill="white"></path>
</svg>Added</span></div>
<div id="smart_cart_pop_loading_${product.id}" class="zb-hidden">
<div class="smart_cart_pop_loading"></div>
</div>
</button> </div>
</div>
</div>
</div>
<div id="smart_cart_pop_variant_${product.id}_mobile" class="zb-hidden md:zb-hidden"><ljs-variants id="smart_cart_pop_variants_${product.id}"
class="md:!zb-absolute md:zb-top-[50px] md:zb-w-full md:zb-left-0 md:zb-z-30 md:zb-bg-white zb-max-h-[280px] zb-overflow-y-auto md:zb-shadow-pop" layout="container" template="smart_cart_pop_variant_template" onclick="event.stopPropagation()"
disabled-dj-event="" interference=""> </ljs-variants></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>
<form class="buffalo-get-form">
<input type="email" name="email" class="buffalo-input buffalo-input-get-email " placeholder="Email address" value="" required="">
<p class="buffalo-error buffalo-get-error"></p>
<button type="submit" class="buffalo-button buffalo-button_block buffalo-button-get">Send</button>
</form>
Text Content
Worldwide Free Shipping On Order Over $89 🌎✈️ New Season New Look 🎁 Up To 50% OFF!!! Worldwide Free Shipping On Order Over $89 🌎✈️ New Season New Look 🎁 Up To 50% OFF!!! Worldwide Free Shipping On Order Over $89 🌎✈️ New Year New Look 🎁 Up To 50% OFF!!! Worldwide Free Shipping On Order Over $89 🌎✈️ New Year New Look 🎁 Up To 50% OFF!!! URBENIE Con la tecnología de Traductor de Google Bahasa Indonesia,English,日本語,Português,العربية,Русский,Español,Français,Italiano,Deutsch,Polski,Nederlands,svenska,norsk,Suomalainen,Ελληνικά EUR * United States Dollars (USD) * Euro (EUR) * United Kingdom Pounds (GBP) * Canadian Dollars (CAD) * Australian Dollars (AUD) * Japanese Yen (JPY) * Israeli New Shekel (NIS) * Mexican Pesos (MXN) * New Zealand Dollars (NZD) * Norwegian Kroner (NOK) * Pakistani Rupee (PKR) * Polish Zlotych (PLN) * Russian Rubles (RUB) * Rwandan Franc (RWF) * Singapore Dollars (SGD) * South Korean Won (KRW) * Swedish Kronor (SEK) * Swiss Francs (CHF) * United Arab Emirates Dirham (AED) * Saudi Riyal (SAR) * Qatari Rial (QAR) * Indian Rupees (INR) * Egyptian Pound (EGP) * Colombian Peso (COP) * Chilean Peso (CLP) * Brazilian Real (BRL) * Argentine Pesos (ARS) * Danish Kroner (DKK) * Peruvian Nuevo Sol (PEN) * South African Rand (ZAR) * Kuwaiti Dinar (KWD) * Nigerian Naira (NGN) Search * Log in * Create an account 0 * Sort by style * Anime Style * Sport Style * Racing Style * Vacation Style * Anime Style🔥 * Best Seller * Hoodies & Sweatshirts * Tops * T-Shirts * Tank Tops * Polo Shirts * Sweaters * Bottoms * Shorts * Jeans * Casual Pants * Outerwear * Accessories * More links * Sort by style * Anime Style * Sport Style * Racing Style * Vacation Style * Anime Style🔥 * Best Seller * Hoodies & Sweatshirts * Tops * T-Shirts * Tank Tops * Polo Shirts * Sweaters * Bottoms * Shorts * Jeans * Casual Pants * Outerwear * Accessories * More links Bahasa Indonesia,English,日本語,Português,العربية,Русский,Español,Français,Italiano,Deutsch,Polski,Nederlands,svenska,norsk,Suomalainen,Ελληνικά EUR * United States Dollars (USD) * Euro (EUR) * United Kingdom Pounds (GBP) * Canadian Dollars (CAD) * Australian Dollars (AUD) * Japanese Yen (JPY) * Israeli New Shekel (NIS) * Mexican Pesos (MXN) * New Zealand Dollars (NZD) * Norwegian Kroner (NOK) * Pakistani Rupee (PKR) * Polish Zlotych (PLN) * Russian Rubles (RUB) * Rwandan Franc (RWF) * Singapore Dollars (SGD) * South Korean Won (KRW) * Swedish Kronor (SEK) * Swiss Francs (CHF) * United Arab Emirates Dirham (AED) * Saudi Riyal (SAR) * Qatari Rial (QAR) * Indian Rupees (INR) * Egyptian Pound (EGP) * Colombian Peso (COP) * Chilean Peso (CLP) * Brazilian Real (BRL) * Argentine Pesos (ARS) * Danish Kroner (DKK) * Peruvian Nuevo Sol (PEN) * South African Rand (ZAR) * Kuwaiti Dinar (KWD) * Nigerian Naira (NGN) URBENIE Bahasa Indonesia,English,日本語,Português,العربية,Русский,Español,Français,Italiano,Deutsch,Polski,Nederlands,svenska,norsk,Suomalainen,Ελληνικά EUR * United States Dollars (USD) * Euro (EUR) * United Kingdom Pounds (GBP) * Canadian Dollars (CAD) * Australian Dollars (AUD) * Japanese Yen (JPY) * Israeli New Shekel (NIS) * Mexican Pesos (MXN) * New Zealand Dollars (NZD) * Norwegian Kroner (NOK) * Pakistani Rupee (PKR) * Polish Zlotych (PLN) * Russian Rubles (RUB) * Rwandan Franc (RWF) * Singapore Dollars (SGD) * South Korean Won (KRW) * Swedish Kronor (SEK) * Swiss Francs (CHF) * United Arab Emirates Dirham (AED) * Saudi Riyal (SAR) * Qatari Rial (QAR) * Indian Rupees (INR) * Egyptian Pound (EGP) * Colombian Peso (COP) * Chilean Peso (CLP) * Brazilian Real (BRL) * Argentine Pesos (ARS) * Danish Kroner (DKK) * Peruvian Nuevo Sol (PEN) * South African Rand (ZAR) * Kuwaiti Dinar (KWD) * Nigerian Naira (NGN) * Log in * Create an account 0 Search * Sort by style * Anime Style * Sport Style * Racing Style * Vacation Style * Anime Style🔥 * Best Seller * Hoodies & Sweatshirts * Tops * T-Shirts * Tank Tops * Polo Shirts * Sweaters * Bottoms * Shorts * Jeans * Casual Pants * Outerwear * Accessories * Sort by style * Anime Style🔥 * Best Seller * Hoodies & Sweatshirts * Tops * Bottoms * Outerwear * Accessories Bahasa Indonesia,English,日本語,Português,العربية,Русский,Español,Français,Italiano,Deutsch,Polski,Nederlands,svenska,norsk,Suomalainen,Ελληνικά EUR * United States Dollars (USD) * Euro (EUR) * United Kingdom Pounds (GBP) * Canadian Dollars (CAD) * Australian Dollars (AUD) * Japanese Yen (JPY) * Israeli New Shekel (NIS) * Mexican Pesos (MXN) * New Zealand Dollars (NZD) * Norwegian Kroner (NOK) * Pakistani Rupee (PKR) * Polish Zlotych (PLN) * Russian Rubles (RUB) * Rwandan Franc (RWF) * Singapore Dollars (SGD) * South Korean Won (KRW) * Swedish Kronor (SEK) * Swiss Francs (CHF) * United Arab Emirates Dirham (AED) * Saudi Riyal (SAR) * Qatari Rial (QAR) * Indian Rupees (INR) * Egyptian Pound (EGP) * Colombian Peso (COP) * Chilean Peso (CLP) * Brazilian Real (BRL) * Argentine Pesos (ARS) * Danish Kroner (DKK) * Peruvian Nuevo Sol (PEN) * South African Rand (ZAR) * Kuwaiti Dinar (KWD) * Nigerian Naira (NGN) Log in Sort by style * Anime Style * Sport Style * Racing Style * Vacation Style Tops * T-Shirts * Tank Tops * Polo Shirts * Sweaters Bottoms * Shorts * Jeans * Casual Pants FASHION STREET STYLE New Season New Look Shop now RECOMMENDED CATEGORY Rest assured, you'll find a style that perfectly complements your unique taste! Shop Now Anime Vacation Sport Racing COLLECTION LIST Hoodies&Sweatshirts Sweatpants Outerwear Accessories T-shirts Shorts Hoodies&Sweatshirts Sweatpants Outerwear Accessories T-shirts Shorts Hoodies&Sweatshirts Sweatpants 1/2 STREET STYLE View more View more MEN'S CASUAL RETRO ABORIGINAL PRINT T-SHIRT €15.23 MEN'S CASUAL PRINT T-SHIRT €15.23 TIGER CANVAS ART MEN'S CASUAL T-SHIRT €15.23 COLORFUL BEAGLE WEARING SUNGLASSES T-SHIRT €15.23 LION PRIDE MEN'S CASUAL T-SHIRT €15.23 FLAMINGO MEN'S HOLIDAY LEISURE T-SHIRT €15.23 MEN'S CASUAL ANCHOR PRINT T-SHIRT €16.31 MEN'S CASUAL CAT PRINT T-SHIRT €15.23 MEN'S CASUAL CAT ILLUSTRATION ART T-SHIRT €15.23 MEN'S HOLIDAY TROPICAL LEISURE PRINTED T-SHIRT €15.23 MEN'S CASUAL LIONS PRINT T-SHIRT €15.23 MEN'S CASUAL LIONS PRINT T-SHIRT €15.23 MEN'S SMILEY PRINT COTTON T-SHIRT €20.45 +2 SMILEY T-SHIRT OVERSIZED CASUAL MEN'S SHORT SLEEVE T-SHIRT €19.49 MEN'S CASUAL BULL SWEATPANTS €27.10 €39.86 Save 32% Save 32% SUN AND MOON PRINT OVERSIZED MEN'S T-SHIRT €18.80 1/16 Customer Reviews Subscribe to get special offers, free giveaways, and once-in-a-lifetime deals. 4.9 Total reviews: 15 Newest Newest Most liked Highest ratings Lowest ratings Newest Most liked Highest ratings Lowest ratings Show more Wow you reached the bottom FREE SHIPPING Free shipping on order over $89 CUSTOMER SERVICE service@urbenie.com SECURE PAYMENT 30 day money-back gusrantee CONTACT US customer service SITE INFO * About Us * Privacy Policy * Terms & Conditions * Become Our VIP HELP CENTER * Q&A * Shipping Info * Payment Method * Returns CUSTOMER SERVICE * Contact Us * Track Order * About Size Conversion Chart We Accept American Express Apple Pay Mastercard PayPal Visa Social Media Follow us * * © 2024 URBENIE Rewards × Don't leave without taking discount UP TO 50% OFF On your first order Invalid email Continue NO,I'LL PAY FULL PRICE * Ihre persönlichen Daten werden strengstens vor Offenlegung geschützt. By signing up you agree with our Privacy Policy. 111 GIFTS POINTS 111 $0.00 1 Item has been added ${(function(){ const products = data.products; const getDefaultVariant = function(product){ if (product.min_price_variant.available){ return product.min_price_variant; }else { const avail_variants = product.variants.filter(function(variant){ return variant.available; }); if (avail_variants.length) { return avail_variants[0]; } } }; const toQuery = obj => Object.keys(obj) .map(k => Array.isArray(obj[k]) ? obj[k].map(v => `${k}[]=${encodeURIComponent(v)}`).join('&') : `${k}=${encodeURIComponent(obj[k])}` ) .join('&'); const getDefaultTrackParams = function(product, index){ const variant = getDefaultVariant(product); const params = { aid: 'smart_recommend.2.' + data.id, scm: product.scm || data.scm || '', spm: data.spmBase + '.' + index, ssp: data.ssp || '', }; const trackParams = Object.keys(params).map(function(key){ return params[key]; }).join('__'); return trackParams; }; const hasMore = (data.products.length - data.target_top_product_num - data.page * data.limit) === 0; return ` ${(function(){ return ` ${data.config.pop_title} ${data.rebate_tips || ''} `; })()} ${product.title} Added `; })()} class SpzCustomComponent extends SPZ.BaseElement { constructor(element) { super(element); this.templates_ = null; this.container_ = null; this._atcLineItem = {}; this.cart_ = {}; this.top_product_ids_ = []; this.products_ = []; this.activityId_ = null; this.rendered_ = false; this.myInterceptor_ = null; this.i18n_ = {}; this.config_ = {}; this.page_ = 1; this.limit_ = 10; this.loading_ = false; } static deferredMount() { return false; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.templates_ = SPZServices.templatesForDoc(this.element); this.setAction_(); } mountCallback() { console.log('pop mounted'); this.i18n_ = window.smartRecommendI18n && window.smartRecommendI18n[document.documentElement.lang || 'en-US'] || {}; const cartPopRenderEl = document.getElementById("smart_cart_pop_render"); const modalEl = document.getElementById("smart_cart_pop_modal"); const spmBase = `smart_recommend_2`; const extra = { spmBase: spmBase, i18n: this.i18n_, }; const that = this; document.addEventListener('dj.addToCart', (event) => { try { const e = event.detail; if (e.source === 'buy_now' || window.__upsell_block || this.rendered_) return; that.fetchActivityData({product_id: e.product_id, variant_id: e.variant_id}).then(data => { if (!data || !data.products || !data.products.length) return; that.config_ = data.config; const recommendStyle = document.createElement('style'); recommendStyle.innerHTML = ` #plugin_recommend_atc_pop { display: none !important; } `; document.head.appendChild(recommendStyle); if (data.config.pop_frequency === 'once' && window.sessionStorage.getItem('smart_pop_times') > 0) return; SPZ.whenApiDefined(cartPopRenderEl).then(function(api){ api.render(Object.assign({}, data, extra), true).then(function() { that.rendered_ = true; if (data.products.length) { const headEl = document.getElementById("smart_cart_pop_head_render"); if (headEl) { SPZ.whenApiDefined(headEl).then(function(head){ head.render({ data: data }); }); } SPZ.whenApiDefined(modalEl).then(function(api){ that.impressListen('#smart_cart_pop_activity', function(){ that.trackPluginImpression_(data); }); api.open(); const intersectionObserver = new IntersectionObserver( function (entries) { if (entries[0].intersectionRatio > 0){ !that.loading_ && (that.products_.length - that.target_top_product_num_) === that.page_ * that.limit_ && that.viewMore(); } }, { threshold: [0.1] } ); intersectionObserver.observe( document.querySelector('#smart_cart_pop_view_more_text') ); }); } }) }); }) } catch (e) { console.error(e); } }); } unmountCallback() { } viewMore () { const cartPopRenderEl = document.getElementById("smart_cart_pop_render"); const that = this; const data = {}; SPZ.whenApiDefined(cartPopRenderEl).then(function(api){ that.fetchActivityData({ page: that.page_ + 1, limit: that.limit_ }).then(function(data) { data.products = that.products_; data.target_top_product_num = that.target_top_product_num_; data.i18n = that.i18n_; data.spmBase = `smart_recommend_2`; api.render(data); }) }) } fetchActivityData(data) { const that = this; if (data.product_id) { that._atcLineItem = data; } that.loading_ = true; return that.getCart().then(cart => { that.cart_ = cart.cart; return fetch(window.SHOPLAZZA.routes.root + "/api/possum/recommend_activities", { method: "POST", headers: { "Content-Type": "application/json", "store-id": window.SHOPLAZZA.shop.shop_id, }, body: JSON.stringify({ "show_type": 2, "line_item": { "product_id": that._atcLineItem.product_id, "variant_id": that._atcLineItem.variant_id, }, line_items: cart.cart.line_items, "page": data.page || 1, "limit": data.limit || 10, }) }).then(function(res){ if(res.ok){ return res.json(); } }).then(function(data){ data.cart = cart.cart; if (data.page === 1) { that.target_top_product_num_ = data.target_top_product_num || 0; } that.products_ = that.products_.concat(data.products || []); that.page_ = data.page || 1; that.limit_ = data.limit || 10; return data; }).catch(function(e){ console.log(e); }).finally(function(){ that.loading_ = false; }) }); }; setAction_() { this.registerAction('changeBannerColor', (data) => { if (!data.args.data || !data.args.data.data || !data.args.data.data.data) return false; const config = data.args.data.data.data.config; const bannerBgEl = document.querySelector('.smart_cart_pop_banner_bg'); if (bannerBgEl && config) { bannerBgEl.style.background = config.banner_bg_color; bannerBgEl.style.color = config.banner_text_color; } }); this.registerAction('handleProductChange', (data) => { const that = this; const imageEl = document.getElementById(`smart_cart_pop_image_${data.args.data.product_id}`); SPZ.whenApiDefined(imageEl).then(function(api){ api.render({ data: data.args.data, config: that.config_ }); }); const atcTextEl = document.getElementById(`smart_cart_pop_atc_${data.args.data.product_id}`); SPZ.whenApiDefined(atcTextEl).then(function(api){ api.render({ data: data.args.data, defaultText: data.args.defaultText, soldOutText: that.i18n_.sold_out }); }); if (data.args.data.variant.available) { document.getElementById(`smart_cart_pop_atc_btn_${data.args.data.product_id}`).classList.remove('zb-pointer-events-none'); } else { document.getElementById(`smart_cart_pop_atc_btn_${data.args.data.product_id}`).classList.add('zb-pointer-events-none'); } }); this.registerAction('handleProduct', (detail) => { const that = this; this.renderProductsForm_(detail.args.data.data); }); this.registerAction('addATCHook', (data) => { const params = data.args; this.myInterceptor_ = window.djInterceptors && window.djInterceptors.track.use({ event: 'dj.addToCart', params: { aid: 'smart_recommend.2.' + params.activity_id, ssp: params.ssp, scm: params.scm, cfb: params.cfb, spm: `..${window.SHOPLAZZA.meta.page.template_name}.${params.spm}`, }, once: true }); }); this.registerAction('handleAtcSuccess', (detail) => { detail.args.data.product = detail.args.data.product || {}; detail.args.data.variant = detail.args.data.variant || {}; const defParams = detail.args.product.split('__'); const product_id = detail.args.data.product.id; const product_title = detail.args.data.product.title; const variant_id = detail.args.data.variant.id; const price = detail.args.data.variant.price; const aid = defParams[0]; const ifb = detail.args.data.product.ifb; const cfb = detail.args.data.product.cfb; const scm = defParams[1]; const spm = defParams[2]; const ssp = defParams[3]; const params = { id: product_id, product_id: product_id, number: 1, name: product_title, variant_id: variant_id, childrenId: variant_id, item_price: price, source: 'add_to_cart', _extra: { aid: aid, ifb: ifb, cfb: cfb, scm: scm, spm: `..${window.SHOPLAZZA.meta.page.template_name}.${spm}`, ssp: ssp, } }; const activity_id = `${detail.args.activity_id}`; const target_drive_way = detail.args.target_drive_way; document.getElementById(`smart_cart_pop_loading_${product_id}`).classList.add('zb-hidden'); document.getElementById(`smart_cart_pop_added_${product_id}`).classList.remove('zb-hidden'); setTimeout(() => { document.getElementById(`smart_cart_pop_added_${product_id}`).classList.add('zb-hidden'); document.getElementById(`smart_cart_pop_atc_${product_id}`).classList.remove('zb-hidden'); document.getElementById(`smart_cart_pop_atc_btn_${product_id}`).classList.remove('zb-pointer-events-none'); }, 1000); this.tranckAddToCart(params); if (target_drive_way === 'rebate') { const bannerEl = document.getElementById(`smart_cart_pop_banner`); this.getRecommendInfo(activity_id).then(res => { if (res && res.rebate_tips) { bannerEl.innerHTML = res.rebate_tips; } }) } }); this.registerAction('handleCartSummary', (event) => { const that = this; const checkoutButtonEle = document.getElementById("smart_cart_pop_checkout_button"); if (checkoutButtonEle) { SPZ.whenApiDefined(checkoutButtonEle).then(function(api){ api.render({ i18n: that.i18n_ }, false); }); } const tipEl = document.getElementById("smart_cart_pop_tip_info"); const cart = event && event.args && event.args.data && event.args.data.data; if (!tipEl || !cart) return; let total_price = cart.total_price; if (!total_price) { SPZ.whenApiDefined(tipEl).then(function(api){ api.render({ total_price: total_price, i18n: that.i18n_ }, false); }); } else { this.getBindDiscount_(cart.line_items).then(res => { if (res && res.discount_code){ const total = cart.line_price - cart.total_discount - res.bundle_discount_value; if (total > 0) { total_price = total; } else { total_price = 0; } } SPZ.whenApiDefined(tipEl).then(function(api){ api.render({ total_price: total_price, i18n: that.i18n_ }, false); }); }) } }); this.registerAction('open', () => { window.sessionStorage.setItem('smart_pop_times', Number(window.sessionStorage.getItem('smart_pop_times')) + 1); }); this.registerAction('close', () => { this.rendered_ = false; this.products_ = []; window.djInterceptors && window.djInterceptors.track.eject(this.myInterceptor_); }); } getCart() { return fetch(`${window.SHOPLAZZA.routes.root || ''}/api/cart`, { method: 'GET', headers: { 'Content-Type': 'application/json; charset=UTF-8', }, }).then(res => res.json()) } getRecommendInfo (activity_id) { return this.getCart().then(cart => { this.cart_ = cart.cart; return fetch(`${window.SHOPLAZZA.routes.root || ''}/api/possum/recommend_info`, { method: 'POST', headers: { 'Content-Type': 'application/json; charset=UTF-8', }, body: JSON.stringify({ show_type: 2, rule_id: `${activity_id}`, line_items: cart.cart.line_items, line_item: this._atcLineItem, }) }).then(res => res.json()) }) } renderProductsForm_(data) { const products = data.products; const listPopRenderEl = document.getElementById("smart_cart_pop_render"); if (!listPopRenderEl) return; listPopRenderEl.querySelectorAll('.smart_cart_pop_atc_btn_bg').forEach(function(el){ el.style.background = data.config.add_to_cart_button_color; }); products.forEach(function(product){ const productId = product.id; const productFormEls = listPopRenderEl.querySelectorAll(`ljs-product-form[product-id="${productId}"]`); let variantsEl = listPopRenderEl.querySelectorAll(`ljs-product-form[product-id="${productId}"] #smart_cart_pop_variant_${productId}_mobile ljs-variants`); if (window.innerWidth > 768) { variantsEl = listPopRenderEl.querySelectorAll(`ljs-product-form[product-id="${productId}"] #smart_cart_pop_variant_${productId}_pc ljs-variants`); } productFormEls.forEach(function(el){ SPZ.whenApiDefined(el).then(function(api){ api.setProduct(product); }); }); variantsEl.forEach(function(el){ SPZ.whenApiDefined(el).then(function(api){ api.handleRender(product); }); }) }); } tranckAddToCart(detail) { if (window.$) { window.$(document.body).trigger('dj.addToCart', detail); } } trackPluginImpression_(rule){ if (window.sa && window.sa.track) { window.sa.track("module_impressions", { aid: `smart_recommend.2.${rule.id}` }); } } getBindDiscount_(carts) { let bundle_sale_ids = []; try { bundle_sale_ids = sessionStorage['bundle_sale_ids'] && JSON.parse(sessionStorage['bundle_sale_ids']).filter((item, index, arr) => arr.indexOf(item, 0) === index).slice(-5); } catch (err) { console.error(err); } if (!carts.length) { Promise.resolve(); } return fetch(`${window.SHOPLAZZA.routes.root || ''}/api/bundle-sales/cart`, { method: 'POST', headers: { 'Content-Type': 'application/json; charset=UTF-8', 'store-id': window.SHOPLAZZA.shop.shop_id, }, body: JSON.stringify({ cart: carts, action_type: 'cart', bundle_sale_ids }) }).then(res => res.json()) } impressListen(selector, cb) { const el = document.querySelector(selector); const onImpress = (e) => { if (e) { e.stopPropagation(); } cb(); }; if (el && !el.getAttribute('imprsd')) { el.addEventListener('impress', onImpress) } else if (el) { onImpress(); } } } SPZ.defineElement('spz-custom-smart', SpzCustomComponent); ${function(){ return ` ${data.data.rebate_tips || ''} `; }()} ${function(){ const getImageHeight = function(image){ const width = image.width || 500; const height = image.height || 500; const image_size = data.config.image_size || 0; let ratio = 0; if(image_size == 0){ ratio = (height / width).toFixed(2); }else if(image_size == 1){ ratio = 1.5; } return 132 * ratio; }; const image = data.data.variant.image || data.data.product.image; return ` `; }()} ${(function(){ const product = data.product; const avail_variants = product.variants.filter(function(variant){ return variant.available; }); const selected_variant = product.min_price_variant.available ? product.min_price_variant : avail_variants.length && avail_variants[0]; return ` ${option.name} ${ option.values.map(function(value, index){ const checked = selected_variant["option"+option.position] == value ? "checked": ""; return ` ${value} ` }).join("") } ` })()} ${(function(){ const variant = data.variant; return ` `; })()} ${(function(){ const variant = data.variant; return ` ${ variant.options.map(function(option){ return option.value; }).join("/") || 'Not exist' } `; })()} ${(function(){ const variant = data.data && data.data.variant; const defaultText = data.defaultText || 'Add To Cart'; const text = (!variant || variant.available) ? defaultText: data.soldOutText; return ` ${text} `; })()} ${(function(){ let cart = data; if(data.data) { cart = data.data; } return ` ${cart.item_count >=0 ? cart.item_count : '..'} `; })()} ${(function(){ return ` ${data.i18n.checkout} `; })()} See detail $0.00 Quantity 1 Texto original Valora esta traducción Tu opinión servirá para ayudar a mejorar el Traductor de Google Become a member Welcome to Urbenie! Join us Already have an account? Sign in Referral Refer a friend and get paid! Give $6 OFF, Get 5% OFF Points undefined Earn your points Order reward: $1 = 1 point(s) Place an order Get your points Share on Pinterest: 1 point(s) Share to earn points Get your points Share on Twitter: 1 point(s) Share to earn points Get your points Share on Facebook: 1 point(s) Share to earn points Get your points Sign up reward: 1 point(s) Register to earn points Get your points Spend your points $100 off Cost 2000 point(s) $50 off Cost 1000 point(s) $20 off Cost 500 point(s) $10 off Cost 200 point(s) Get $6 coupon code Send copy to clipboard