Geumxl-Fall Outfits Sexy Women Solid Strappy Tank 2024 Vest Crop Top Summer Beach Party Sleeveless Slash Neck Tanks Woman Girls Bralette Tank Top

$13.99
Color:  Black
Size:  S
people are viewing this right now
(function () { try { const getProduct = () => { const productJson = document.querySelector('#product-json'); if (productJson?.textContent) { return JSON.parse(productJson.textContent); } if (window.jQuery) { const $product = window.jQuery?.(document)?.data('djproduct'); const productData = JSON.parse(JSON.stringify($product || {})); return productData || {}; } return {}; }; const blockDomId = 'pm-block-afterpay-message-1539149753700-11' const placeholderDomId = 'pm-block-afterpay-message-placeholder-1539149753700-11' const badgeTheme = "black-on-mint"; const size = "md"; const shopCurrencyCode = "USD"; const productDetail = getProduct(); let productPrice = productDetail?.selected?.price || 13.99; let settingConfig; const req = { ROOT_URL: (C_SETTINGS && C_SETTINGS.routes && C_SETTINGS.routes.root) || '', post: async (url, data = {}) => { try { const response = await fetch(req.ROOT_URL + url, { method: 'POST', headers: { 'Content-Type': 'application/json', }, ...data, body: JSON.stringify(data.body), }); const result = await response.json(); return result } catch (error) { throw new Error('post request error' + error); } }, get: async (url, data = {}) => { try { const response = await fetch(req.ROOT_URL + url); const result = await response.json(); return result } catch (error) { throw new Error('get request error' + error); } } } const supportLocaleMap = { AU: 'en-AU', NZ: 'en-NZ', US: 'en-US', CA: 'en-CA', GB: 'en-GB', FR: 'fr-FR', IT: 'it-IT', ES: 'es-ES', DE: 'de-DE', } const getPayLaterSetting = () => { return req.post('/api/payment/pay-later-setting', {body: {payment_channel: 'afterpay'}}).then(res => { const result = { ...res, afterpay_currency_locale: supportLocaleMap?.[res?.afterpay_support_country?.[0]] || supportLocaleMap?.US || 'en-US' } return result; }); } const getBlockDom = () => { const blockDOM = document.getElementById(blockDomId); if (!blockDOM) { return; } return blockDOM } function errorHandler() { const blockDOM = getBlockDom(); if (blockDOM) { blockDOM.style.display = 'none'; } } function hasAfterpayMessage() { // 获取目标元素 const targetElement = document.getElementById(placeholderDomId); // 判断目标元素是否有兄弟元素节点 const siblings = Array.from(targetElement.parentNode.children).filter(function (node) { return node.nodeType === Node.ELEMENT_NODE; }); return siblings.length > 1 } function renderAfterpay(data = {}) { const blockDOM = getBlockDom(); if (!blockDOM) { return; } blockDOM.innerHTML = null; const placeholderDOM = document.createElement('div'); placeholderDOM.id = placeholderDomId; placeholderDOM.className = 'pm-display-none' blockDOM.appendChild(placeholderDOM); blockDOM.style.display = 'block'; if (window.Afterpay && typeof Afterpay?.createPlacements === 'function' && !hasAfterpayMessage()) { try { Afterpay.createPlacements({ targetSelector: `#${placeholderDomId}`, attributes: { locale: data.afterpay_currency_locale, currency: data.afterpay_currency, amount: data.productPrice, size: size, badgeTheme: badgeTheme, } }); } catch (e) { console.error('payment-sdk:', e); } } } async function init(data = {}) { const blockDOM = getBlockDom(); if (!blockDOM) { return; } if (!settingConfig) { settingConfig = await getPayLaterSetting(); } if(data?.detail?.selected?.price){ productPrice = data?.detail?.selected?.price; } if ( !settingConfig || !settingConfig.afterpay_promo_msg_enabled || !settingConfig.afterpay_max_amount || !settingConfig.afterpay_min_amount || !settingConfig.afterpay_support_country || shopCurrencyCode !== settingConfig.afterpay_currency || Number(productPrice) <= Number(settingConfig.afterpay_min_amount) || Number(productPrice) > Number(settingConfig.afterpay_max_amount) ) { errorHandler(); return; } const scriptDOM = document.getElementById('pm-afterpay-sdk'); if (!scriptDOM) { window.addEventListener('Afterpay.ready', () => renderAfterpay({ ...settingConfig, productPrice })); const afterpaySDK = document.createElement('script'); afterpaySDK.id = 'pm-afterpay-sdk' afterpaySDK.src = 'https://js.afterpay.com/afterpay-1.x.js'; afterpaySDK.setAttribute('data-analytics-enabled', ''); afterpaySDK.setAttribute('data-min', settingConfig.afterpay_min_amount); afterpaySDK.setAttribute('data-max', settingConfig.afterpay_max_amount); afterpaySDK.async = true; afterpaySDK.onerror = errorHandler; document.body.appendChild(afterpaySDK); } else { renderAfterpay({...settingConfig, productPrice}); } } document.addEventListener('dj.variantChange', init); init(); } catch (e) { console.error('payment-sdk-afterpaymessage:', e) } })()
Shipping
$35 Globle Free Shipping
15 Days Return,100% Money Back
7*24h Service at: support@geumxl.com
Secure payments
class SpzSmartBlockComponent extends SPZ.BaseElement { constructor(element) { super(element); this.templates_ = null; this.container_ = null; this.i18n_ = {}; this.config_ = {}; this.show_type_ = 3; this.product_resource_id_ = ''; this.collection_resource_id_ = ''; this.cart_items_ = []; this.customer_id_ = ''; this.order_id_ = ''; } static deferredMount() { return false; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { const template_type = window.SHOPLAZZA.meta.page.template_type; if (template_type === 1) { this.show_type_ = 3; this.product_resource_id_ = window.SHOPLAZZA.meta.page.resource_id; } else if (template_type === 2) { this.show_type_ = 4; this.collection_resource_id_ = window.SHOPLAZZA.meta.page.resource_id; } else if (template_type === 15){ this.show_type_ = 5; } else if (template_type === 13){ this.show_type_ = 6; } else if (template_type === 20){ this.show_type_ = 7; this.customer_id_ = window.SHOPLAZZA.customer.customer_id; } else if (template_type === 35){ this.show_type_ = 8; this.order_id_ = window.location.pathname.split('/').pop(); } this.templates_ = SPZServices.templatesForDoc(this.element); this.setAction_(); } mountCallback() { console.log('appzebu smart mounted'); const that = this; const themeName = window.SHOPLAZZA.theme.merchant_theme_name; const isGeek = /Geek/.test(themeName); this.fetchRules().then((res) => { if (res && res.rules && res.rules.length) { const blockEl = document.getElementById('smart_recommend_block'); SPZ.whenApiDefined(blockEl).then((api) => { api.render({data: res}, true).then(() => { if (isGeek && that.show_type_ === 6) { blockEl.querySelector('.plugin_container_wrpper').style.padding = '30px 0'; } const recommendStyle = document.createElement('style'); recommendStyle.innerHTML = ` .plugin__recommend_container,.app-recommend-card { display: none !important; } `; document.head.appendChild(recommendStyle); const fetchList = []; res.rules.forEach((rule) => { fetchList.push(this.fetchRuleProductList(rule.id)); }); const fetchAll = Promise.all(fetchList); fetchAll.then((p_res) => { res.rules.forEach((rule, index) => { rule.products = p_res[index] && p_res[index].products; const ruleEl = document.getElementById('smart_recommend_rule_' + rule.id); SPZ.whenApiDefined(ruleEl).then((api) => { api.render({data: rule}, true).then(() => { that.impressListen(`#smart_recommend_rule_ul_${rule.id}`, function(){ that.trackRuleImpress(rule); }); const btnElList = document.querySelectorAll(`#smart_recommend_rule_ul_${rule.id} button`); btnElList.forEach((btnEl) => { if (btnEl && rule.config && rule.config.quick_shop_button_bg_color && rule.config.quick_shop_button_text_color) { btnEl.style.backgroundColor = rule.config.quick_shop_button_bg_color; btnEl.style.color = rule.config.quick_shop_button_text_color; } }) }); }); }); }); }) }) } else { if (window.top !== window.self) { const template_type = window.SHOPLAZZA.meta.page.template_type; const holderEl = document.getElementById('smart_recommend_preview_no_data_placeholder'); SPZ.whenApiDefined(holderEl).then((api) => { api.render({data: { isCart: template_type === 13, isCollection: template_type === 2, isProduct: template_type === 1, isIndex: template_type === 15 }}, true); }); } } }); } setAction_() { this.registerAction('quickShop', (data) => { const that = this; const product_id = data.args.product_id; const productIndex = data.args.productIndex; const rule_id = data.args.rule_id; const ssp = data.args.ssp; const scm = data.args.scm; const cfb = data.args.cfb; const ifb = data.args.ifb; const modalRender = document.getElementById('smart_recommend_product_modal_render'); if (product_id) { this.fetchProductData(product_id).then((res) => { const product = res.products && res.products.length && res.products[0] || {}; product.cfb = cfb; product.ifb = ifb; SPZ.whenApiDefined(modalRender).then((api) => { api.render({product: product, productIndex: productIndex, rule_id: rule_id, ssp: ssp, scm: scm, show_type: that.show_type_}, true).then(() => { const modalEl = document.getElementById('smart_recommend_product_modal'); SPZ.whenApiDefined(modalEl).then((modal) => { that.impressListen('#smart_recommend_product_modal', function(){ that.trackQuickShop({ rule_id: rule_id, product_id: product_id }); }); modal.open(); }); const formEl = document.getElementById('smart_recommend_product_form'); SPZ.whenApiDefined(formEl).then((form) => { form.setProduct(product); }); const variantEl = document.getElementById('smart_recommend_product_variants'); SPZ.whenApiDefined(variantEl).then((variant) => { variant.handleRender(product); }); }); }) }); } }); this.registerAction('handleScroll', (data) => { this.directTo(data.args.rule_id, data.args.direction); }); this.registerAction('handleProductChange', (data) => { const variant = data.args.data.variant; const product = data.args.data.product; const imageRenderEl = document.getElementById('smart_recommend_product_image'); SPZ.whenApiDefined(imageRenderEl).then((api) => { api.render({ variant: variant, product: product }, true); }); }); this.registerAction('handleAtcSuccess', (detail) => { const data = detail.args; data.data.product = data.data.product || {}; data.data.variant = data.data.variant || {}; const product_id = data.data.product.id; const product_title = data.data.product.title; const variant_id = data.data.variant.id; const price = data.data.variant.price; const rule_id = data.rule_id; const aid = `smart_recommend.${this.show_type_}.${rule_id}`; const ifb = data.data.product.ifb; const cfb = data.data.product.cfb; const ssp = data.ssp; const scm = data.scm; const spm = `smart_recommend_${this.show_type_}.${data.spmIndex}`; 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, } }; this.tranckAddToCart(params); }); this.registerAction('addATCHook', (data) => { const params = data.args; const spm = `smart_recommend_${this.show_type_}.${params.spmIndex}`; this.myInterceptor_ = window.djInterceptors && window.djInterceptors.track.use({ event: 'dj.addToCart', params: { aid: `smart_recommend.${this.show_type_}.` + params.rule_id, ssp: params.ssp, scm: params.scm, cfb: params.cfb, spm: `..${window.SHOPLAZZA.meta.page.template_name}.${spm}`, }, once: true }); }); } tranckAddToCart(detail) { if (window.$) { window.$(document.body).trigger('dj.addToCart', detail); } } fetchRules() { const payload = { show_type: this.show_type_, }; let that = this; if (this.show_type_ === 6) { let line_items = []; return this.fetchCart().then((res) => { if (res && res.cart && res.cart.line_items) { line_items = res.cart.line_items.map((item) => { return { product_id: item.product_id, variant_id: item.variant_id, quantity: item.quantity, price: item.price } }); } payload.line_items = line_items; that.cart_items_ = line_items; return that.fetchRulesRequest(payload); }); } else { if (this.show_type_ === 3) { payload.line_items = [{ product_id: this.product_resource_id_ }]; } else if (this.show_type_ === 4) { payload.collection_id = this.collection_resource_id_; } else if (this.show_type_ === 7) { payload.customer_id = this.customer_id_; } else if (this.show_type_ === 8) { payload.order_id = this.order_id_; } return this.fetchRulesRequest(payload); } } fetchRulesRequest(payload) { return fetch(window.SHOPLAZZA.routes.root + "/api/possum/recommend_query", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload) }).then(function(res){ if(res.ok){ return res.json(); } }); } fetchCart() { return fetch(`/api/cart/cart-select?r=${Math.random().toString(36).slice(-4)}`) .then((res) => { if (res.ok) { return res.json(); } }); } fetchRuleProductList(rule_id) { const payload = { page: 1, limit: 100, fields: ["title", "url", "image", "min_price_variant.price", "min_price_variant.compare_at_price"], rule_id: rule_id, }; if (this.show_type_ === 3) { payload.line_items = [{ product_id: this.product_resource_id_ }]; } else if (this.show_type_ === 4) { payload.collection_id = this.collection_resource_id_; } else if (this.show_type_ === 6) { payload.line_items = this.cart_items_; } else if (this.show_type_ === 7) { payload.customer_id = this.customer_id_; } else if (this.show_type_ === 8) { payload.order_id = this.order_id_; } return fetch(window.SHOPLAZZA.routes.root + "/api/possum/recommend_products", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload) }).then(function(res){ if(res.ok){ return res.json(); } }).catch(function(err){ console.log(err); }); } fetchProductData(product_id) { return fetch(window.SHOPLAZZA.routes.root + "/api/possum/products", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ product_ids: [product_id], fields: [ "images", "options", "min_price_variant", "variants"] }) }).then(function(res){ if(res.ok){ return res.json(); } }).catch(function(err){ console.log(err); const loadingEl = document.getElementById('smart_recommend_loading'); if (loadingEl) { loadingEl.style.display = 'none'; } }); } getStyle(ele, style) { if (!ele) return; if (window.getComputedStyle) { return window.getComputedStyle(ele)[style]; } return ele.currentStyle[style]; } directTo(id, direction) { const scrollElement = document.getElementById(`smart_recommend_rule_ul_${id}`); const blockWidth = parseInt(this.getStyle(scrollElement, 'width')); const scrollLength = (blockWidth * 0.19 - 12) * 5; const scrollPoint = scrollElement.scrollWidth - scrollElement.clientWidth; if (!scrollElement) return; if (direction === 'left') { if (document.dir === 'rtl') { scrollElement.scrollTo({ left: Math.abs(scrollElement.scrollLeft) >= scrollPoint - 100 ? 0 : scrollElement.scrollLeft - scrollLength, behavior: 'smooth' }); return; } scrollElement.scrollTo({ left: Math.max(scrollElement.scrollLeft - scrollLength, 0), behavior: 'smooth' }); } else { if (document.dir === 'rtl') { scrollElement.scrollTo({ left: Math.abs(scrollElement.scrollLeft) >= scrollPoint + 100 ? 0 : scrollElement.scrollLeft + scrollLength, behavior: 'smooth' }); return; } scrollElement.scrollTo({ left: scrollElement.scrollLeft >= scrollPoint - 100 ? 0 : scrollElement.scrollLeft + scrollLength, behavior: 'smooth' }); } } trackRuleImpress(rule) { if (window.sa && window.sa.track) { window.sa.track("plugin_common", { plugin_name: "upsell", event_type: "impressions", rule_id: rule.id, ssp: rule.ssp, scm: rule.scm, show_type: this.show_type_, support_app_block: window.SHOPLAZZA.theme.support_app_block }); window.sa.track("module_impressions", { aid: `smart_recommend.${this.show_type_}.${rule.id}`, support_app_block: window.SHOPLAZZA.theme.support_app_block }); } } trackQuickShop(data) { window.sa && sa.track && sa.track("plugin_common", { plugin_name: "upsell", event_type: "quick_shop", rule_id: data.rule_id, product_id: data.product_id, show_type: this.show_type_, }); } 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-block', SpzSmartBlockComponent);

Description

 

Notice

Dear customers:

We accept drop shipping and wholesale. Our warehouse will ship out packages in 1-7 days after receiving orders. In addition, there is no customer service on weekends. If you have any questions,please free to leave us message.

Tips:

In order to ensure the transparency of the transaction, our shop currently does not provide the service of modifying the address. Please confirm whether the delivery address and information are accurate before making the payment. If there is an error, please cancel the order in time and place the order again, thank you!

Welcome To Our Shop
Quality is the first with best service. customers all are our friends.
Fashion design,100cm Brand New,high quality!

Material:Polyester
Color:White/Orange/Black/Blue/Red/Wine Red/yellow
Style: Yoga,Fitness,Sport
Size : S M L XL
There is 2-3cm difference according to manual measurement.
please check the measurement chart carefully before you buy the item.

1 inch = 2.54 cm
Please note that slight color difference should be acceptable due to the light and screen.
What You Get:

1 x Fashion Tank Tops

Size Chart:

SIZE Length Bust
s 37cm(14.5") 66cm(26")~80cm(31.5")
 M 28cm(11") 70cm(27.5")~84cm(33")
L 39cm(15.25") 74cm(29.25")~88cm(34.75")
XL 40cm(15.75") 78cm(30.75")~92cm(36.25")

Preview:








Material  COTTON
Material  Polyester
Decoration  NONE
Clothing Length  Short
Item Type  Tops
Tops Type  Tank Tops
Fabric Type  Broadcloth
Model Number  Sexy Women Solid Strappy Tank 2022 Vest Crop Top Summer Beach
Gender  WOMEN
Style  Sexy & Club
Pattern Type  Solid