Utbros Bohemian Style Plant And Flower Pattern Men's Retro Cotton And Linen Shirt

$28.99
class SpzCustomDiscountFlashsale extends SPZ.BaseElement { constructor(element) { super(element); this.xhr_ = SPZServices.xhrFor(this.win); this.getFlashSaleApi = "\/api\/storefront\/promotion\/flashsale\/display_setting\/product_setting"; this.timer = null; this.variantId = "9d3e1255-813f-4d2a-920a-b2fd779c582e"; // 促销活动数据 this.flashsaleData = {} } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.templates_ = SPZServices.templatesForDoc(); this.viewport_ = this.getViewport(); // 挂载bind函数 解决this指向问题 this.render = this.render.bind(this); this.resize = this.resize.bind(this); this.switchVariant = this.switchVariant.bind(this); } mountCallback() { // 获取数据 this.getData(); this.element.onclick = (e) => { const cur = this.win.document.querySelector(".app_discount_flashsale_desc"); if (this.flashsaleData.product_setting.is_redirection && appDiscountUtils.inProductBody(this.element) && e.target !== cur) { this.win.open(`/promotions/discount-default/${this.flashsaleData.discount_info.id}`); } } // 绑定 this.viewport_.onResize(this.resize); // 监听子款式切换,重新渲染 this.win.document.addEventListener('dj.variantChange', this.switchVariant); } unmountCallback() { // 解绑 this.viewport_.removeResize(this.resize); this.win.document.removeEventListener('dj.variantChange', this.switchVariant); // 清除定时器 if (this.timer) { clearTimeout(this.timer); this.timer = null; } } resize() { if (this.timer) { clearTimeout(this.timer) this.timer = null; } this.timer = setTimeout(() => { this.render(); }, 200) } switchVariant(event) { const variant = event.detail.selected; if (variant.product_id == '802e6fe9-d16b-4511-b1ad-930c62cd5515' && variant.id != this.variantId) { this.variantId = variant.id; this.getData(); } } getData() { const reqBody = { product_id: "802e6fe9-d16b-4511-b1ad-930c62cd5515", product_type: "default", variant_id: this.variantId } this.flashsaleData = {}; this.win.fetch(this.getFlashSaleApi, { method: "POST", body: JSON.stringify(reqBody), headers: { "Content-Type": "application/json" } }).then(async (response) => { if (response.ok) { this.flashsaleData = await response.json(); this.render(); } else { this.clearDom(); } }).catch(err => { this.clearDom(); }); } clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } render() { this.templates_ .findAndRenderTemplate(this.element, { isMobile: appDiscountUtils.judgeMobile(), isRTL: appDiscountUtils.judgeRTL(), inProductDetail: appDiscountUtils.inProductBody(this.element), flashsaleData: this.flashsaleData, image_domain: this.win.SHOPLAZZA.image_domain, }) .then((el) => { this.clearDom(); this.element.appendChild(el); }) } } SPZ.defineElement('spz-custom-discount-flashsale', SpzCustomDiscountFlashsale);
const TAG = "spz-custom-product-automatic"; class SpzCustomProductAutomatic extends SPZ.BaseElement { constructor(element) { super(element); this.variant_id = '9d3e1255-813f-4d2a-920a-b2fd779c582e'; this.isRTL = SPZ.win.document.dir === 'rtl'; } static deferredMount() { return false; } buildCallback() { this.action_ = SPZServices.actionServiceForDoc(this.element); this.templates_ = SPZServices.templatesForDoc(this.element); this.xhr_ = SPZServices.xhrFor(this.win); this.setupAction_(); this.viewport_ = this.getViewport(); } mountCallback() { this.init(); // 监听事件 this.bindEvent_(); } async init() { this.handleFitTheme(); const data = await this.getDiscountList(); this.renderApiData_(data); } async getDiscountList() { const productId = '802e6fe9-d16b-4511-b1ad-930c62cd5515'; const variantId = this.variant_id; const productType = 'default'; const reqBody = { product_id: productId, variant_id: variantId, discount_method: "DM_AUTOMATIC", customer: { customer_id: window.C_SETTINGS.customer.customer_id, email: window.C_SETTINGS.customer.customer_email }, product_type: productType } const url = `/api/storefront/promotion/display_setting/text/list`; const data = await this.xhr_.fetchJson(url, { method: "post", body: reqBody }).then(res => { return res; }).catch(err => { this.setContainerDisabled(false); }) return data; } async renderDiscountList() { this.setContainerDisabled(true); const data = await this.getDiscountList(); this.setContainerDisabled(false); // 重新渲染 抖动问题处理 this.renderApiData_(data); } clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } async renderApiData_(data) { const parentDiv = document.querySelector('.automatic_discount_container'); const newTplDom = await this.getRenderTemplate(data); if (parentDiv) { parentDiv.innerHTML = ''; parentDiv.appendChild(newTplDom); } else { console.log('automatic_discount_container is null'); } } doRender_(data) { const renderData = data || {}; return this.templates_ .findAndRenderTemplate(this.element, renderData) .then((el) => { this.clearDom(); this.element.appendChild(el); }); } async getRenderTemplate(data) { const renderData = data || {}; return this.templates_ .findAndRenderTemplate(this.element, { ...renderData, isRTL: this.isRTL }) .then((el) => { this.clearDom(); return el; }); } setContainerDisabled(isDisable) { const automaticDiscountEl = document.querySelector('.automatic_discount_container_outer'); if(isDisable) { automaticDiscountEl.setAttribute('disabled', ''); } else { automaticDiscountEl.removeAttribute('disabled'); } } // 绑定事件 bindEvent_() { window.addEventListener('click', (e) => { let containerNodes = document.querySelectorAll(".automatic-container .panel"); let bool; Array.from(containerNodes).forEach((node) => { if(node.contains(e.target)){ bool = true; } }) // 是否popover面板点击范围 if (bool) { return; } if(e.target.classList.contains('drowdown-icon') || e.target.parentNode.classList.contains('drowdown-icon')){ return; } const nodes = document.querySelectorAll('.automatic-container'); Array.from(nodes).forEach((node) => { node.classList.remove('open-dropdown'); }) // 兼容主题 this.toggleProductSticky(true); }) // 监听变体变化 document.addEventListener('dj.variantChange', async(event) => { // 重新渲染 const variant = event.detail.selected; if (variant.product_id == '802e6fe9-d16b-4511-b1ad-930c62cd5515' && variant.id != this.variant_id) { this.variant_id = variant.id; this.renderDiscountList(); } }); } // 兼容主题 handleFitTheme() { // top 属性影响抖动 let productInfoEl = null; if (window.SHOPLAZZA.theme.merchant_theme_name === 'Wind' || window.SHOPLAZZA.theme.merchant_theme_name === 'Flash') { productInfoEl = document.querySelector('.product-info-body .product-sticky-container'); } else if (window.SHOPLAZZA.theme.merchant_theme_name === 'Hero') { productInfoEl = document.querySelector('.product__info-wrapper .properties-content'); } if(productInfoEl){ productInfoEl.classList.add('force-top-auto'); } } // 兼容 wind/flash /hero 主题 (sticky属性影响 popover 层级展示, 会被其他元素覆盖) toggleProductSticky(isSticky) { let productInfoEl = null; if (window.SHOPLAZZA.theme.merchant_theme_name === 'Wind' || window.SHOPLAZZA.theme.merchant_theme_name === 'Flash') { productInfoEl = document.querySelector('.product-info-body .product-sticky-container'); } else if (window.SHOPLAZZA.theme.merchant_theme_name === 'Hero') { productInfoEl = document.querySelector('.product__info-wrapper .properties-content'); } if(productInfoEl){ if(isSticky) { // 还原该主题原有的sticky属性值 productInfoEl.classList.remove('force-position-static'); return; } productInfoEl.classList.toggle('force-position-static'); } } setupAction_() { this.registerAction('handleDropdown', (invocation) => { const discount_id = invocation.args.discount_id; const nodes = document.querySelectorAll('.automatic-container'); Array.from(nodes).forEach((node) => { if(node.getAttribute('id') != `automatic-${discount_id}`) { node.classList.remove('open-dropdown'); } }) const $discount_item = document.querySelector(`#automatic-${discount_id}`); $discount_item && $discount_item.classList.toggle('open-dropdown'); // 兼容主题 this.toggleProductSticky(); }); } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, `${ TAG }.${ name }`, data || {}); this.action_.trigger(this.element, name, event); } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } } SPZ.defineElement(TAG, SpzCustomProductAutomatic);
Color:  Beige
Size:  S
Quantity

Description

SPU: DZ-229578-LYJ

Fabric Name: Cotton and linen blended

Pattern: Print

Process: Printed

Style: Casual

Length: Regular

Collar: Collar

Popular Elements: Print

Sleeve Type: Short Sleeve

Occasion: Daily

Theme: Spring, Summer, Fall

NOTE: If you are not sure, please choose a larger size. If you have any doubts about this product, we suggest you contact our customer service team. Due to the color difference between the screens of different electronic devices (computers, mobile phones or ipads), especially the CRT screen and the LCD screen, the color of the item may be slightly different from what you see in the photos, please take the actual product as the standard.

SizeBustLengthShoulder
cminchcminchcminch
S10641.77328.744.517.5
M11244.17529.54618.1
L11846.57730.347.518.7
XL12448.87931.14919.3
2XL13252.08131.950.519.9
3XL14055.18332.75220.5
4XL14858.38533.553.521.1
5XL15661.48734.35521.7
Due to manual measurement, there may be an error of 1-3cm

STANDARD SHIPPING

For standard shipping, orders will be delivered by the national postal service of the destination country. For shipping outside the United States, you might be required to sign on the package to receive the item, and thus please choose an address that someone is available to receive the package during business hours.

DO YOU SHIP INTERNATIONALLY?

Yes, we do offer worldwide shipping! (Excluding Thailand, India, Brazil, Mexico, Dominica, Reunion, Iraq, Mozambique, French Guiana, French Polynesia, Panama, Maldives, Ecuador, Guadeloupe, Martinique, Palau, Turks and Caicos Islands, Seychelles, Mauritius, Trinidad and Tobago, Zambia, Cote d'Ivoire, they are not included in the scope of delivery.)

IMPORT TAXES AND DUTIES:

Some countries/regions have already charged 10% tax at checkout, and the courier company will no longer charge customers.  (Such as the UK, and EU 27 countries: Austria, Belgium, Bulgaria, Hungary, Germany, Greece, Denmark, Ireland, Spain, Italy, Cyprus, Latvia, Lithuania, Luxembourg, Malta, Netherlands, Poland, Portugal, Romania, Slovakia, Slovenia, Finland, France, Croatia, Czech Republic, Sweden and Estonia) Except for the above countries, if others need to pay import taxes, customs duties and related customs fees for imports. These fees (if applicable) are determined and collected by the destination country's customs. For more detailed information on charges, please contact your local customs directly.

UNITED STATE AND OTHER COUNTRIES SHIPPING COST

Order over $89---Free shipping
Order $0-$88.99---Shipping fee $8.99
(It is applicable only to orders with total value after discount)


HOW LONG DOES SHIPPING NORMALLY TAKE?

Receiving Time=Processing Time+Shipping Time

  • Processing Time: 5-9 Business Days
  • Shipping Time: 5-18 Business Days
STANDARD SHIPPING
MethodCountryShipping time
(Business days)
Standard Shipping
United States
10-15
United Kingdom
5-10
Canada
12-18


The above are estimated time required by the postal service and does not include the processing time of the Customs in the destination country. In some cases, the local Customs office of your country may require additional documents and time to have your package cleared, and this may also cause further delay on the delivery.

HOW CAN I GET MY TRACKING CODE?

Every customer will receive their track&trace code automatically, once we have your order ready for shipping. The track&trace code will be sent to your Email, which you filled in our system. In some instances, the carrier's tracking information may only be available in 1-2 business days after the order is shipped.

Will my package be delivered to my house or to the post office for me to pick it up?

Your order will arrive at your house. There may be exceptions that door-to-door delivery service is not provided in particular cities/areas/countries, though this is rare.

Please allow extra time for your order to be processed during public holidays and busy periods. Customs and Postal Service may also require extra time to work on the processing/delivery during peak season or before major festivals (e.g., Valentine’s Day). For details on public holidays in the destination country, please refer to the local government website. Please also note that delays may occur as a result of pending payment authorizations.

 HOW DO I TRACK MY ORDER?

  • For worldwide standard tracking tool: www.17track.net

Why do I have to pay the standard shipping fee for my order?

Free standard shipping is applicable only to orders with a total value (after discount) over USD 89

under normal circumstances. The shipping cost of the return and exchange shall be borne by the buyer.


Still not getting your answers? Email us anytime at service@utbros.com