3fe1aee6aa46cabec7a2a61a35754ee4
53c17e7abc6f058a54bb1114d35edf62
ad93ea6a2fd1bf56650a7220862d040a
62b89947a1e03c313ad71ce723c24dfe
92960069de14e9883e63b46a4e401759
e042a63b7f69b990b402dff8bbf0eedd
92960069de14e9883e63b46a4e401759
b19ce60676ef7a393bfadba6239ca41a
380f87a19398bbc59b7095ff793f4276
47229767f94709258f2843a1837a0957
96a5ff275945adea43df99415f00763c
7f4a698468d1b4cc013985d8f33a51fb
456656ed061c221b521224fe3550a387
91033f14b0359084a59a2514858d2e87
808cea62eb2a69884ef698a528350920
a1cde4dd1d1c262fc36dcf1485f1a65b
e61c8fe6754e411aeb4ebb9f503768a6
1bd6234569624b61db3492d595554772
4048a1b1600ab3feb524bf40cf4cc29a
cca0494f1218e6a6969cc8922bd495bc
367388f6cb9f33d66d4360bd55c23017
c6cf8354e5184cd75038ba8934a71508
57bd0438aa3218971e743bcfed524967
618805eda5e9e880f1bb3517a5553630
8a1b47fc8946bf5150cacc168abd0921
6568a92d643d52cb4cddd1b8e303162a
c2711c51df413a3414c45b6244404e0b
e042a63b7f69b990b402dff8bbf0eedd

We The People Are Pissed Off Printed Baseball Cap Washed Cotton Hat

1 sold
$9.80
$0.00
-$-9.80
Color-Color 1
Please select a color
Size-L(58-60cm)
Please select a size
Quantity
Free worldwide shipping
Free returns
Sustainably made
Secure payments
SKU: 1466665683080699906
const TAG = "spz-custom-product-automatic"; class SpzCustomProductAutomatic extends SPZ.BaseElement { constructor(element) { super(element); this.variant_id = '846e26c4-23ae-4de5-b46c-5fb987acb4c9'; this.debounceRenderDiscountList = this.win.SPZCore.Types.debounce(this.win,this.renderDiscountList.bind(this), 500); } 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(); console.log('promotion_complex',{"downgrade":false,"automatic_discount_list":[],"hash":""}); // 监听事件 this.bindEvent_(); } init() { this.handleFitTheme(); // 兜底方案, downgrade == true; 需要降级 则要请求接口 this.doRender_({}).then(async () => { const downgrade = 'false'; if(downgrade != 'false') { this.renderDiscountList(); } }); } async getDiscountList() { const productId = '3bb0822b-61c8-46db-bc74-71ca2e383b72'; const variantId = this.variant_id; 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 } } 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); // 重新渲染 抖动问题处理 const parentDiv = document.querySelector('.automatic_discount_container'); const oldDom = parentDiv.querySelector('.automatic_discount_wrapper'); const newTplDom = await this.getRenderTemplate(data); if(oldDom){ parentDiv.replaceChild(newTplDom, oldDom); } else { parentDiv.appendChild(newTplDom); } } doRender_(data) { const renderData = data || {}; return this.templates_ .findAndRenderTemplate(this.element, renderData) .then((el) => { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); this.element.appendChild(el); }); } async getRenderTemplate(data) { const renderData = data || {}; return this.templates_ .findAndRenderTemplate(this.element, renderData) .then((el) => { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); return el; }); } setContainerDisabled(isDisable) { const automaticDiscountEl = document.querySelector('.automatic_discount_container'); 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 == '3bb0822b-61c8-46db-bc74-71ca2e383b72') { this.variant_id = variant.id; } await this.debounceRenderDiscountList(); }); } // 兼容主题 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);
ProductNo SP211203W4K8