Women's Vintage Romantic Celtic Knot With Floral Art Linen Blend Round Neck Maxi Dress

$38.99
$99.42
-61%
const TAG = "spz-custom-product-automatic"; class SpzCustomProductAutomatic extends SPZ.BaseElement { constructor(element) { super(element); this.variant_id = '451ac195-4b0f-484b-bf3f-709cca3c5475'; this.isRTL = SPZ.win.document.dir === 'rtl'; this.isAddingToCart_ = false; // 加购中状态 } 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 = 'd9fc62e0-0b2c-4baa-a457-cff568d00573'; 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 == 'd9fc62e0-0b2c-4baa-a457-cff568d00573' && 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(); }); // 加购事件 this.registerAction('handleAddToCart', (invocation) => { // 阻止事件冒泡 const event = invocation.event; if (event) { event.stopPropagation(); event.preventDefault(); } // 如果正在加购中,直接返回 if (this.isAddingToCart_) { return; } const quantity = invocation.args.quantity || 1; this.addToCart(quantity); }); } // 加购方法 async addToCart(quantity) { // 设置加购中状态 this.isAddingToCart_ = true; const productId = 'd9fc62e0-0b2c-4baa-a457-cff568d00573'; const variantId = this.variant_id; const url = '/api/cart'; const reqBody = { product_id: productId, variant_id: variantId, quantity: quantity }; try { const data = await this.xhr_.fetchJson(url, { method: 'POST', body: reqBody }); // 触发加购成功提示 this.triggerAddToCartToast_(); return data; } catch (error) { error.then(err=>{ this.showToast_(err?.message || err?.errors?.[0] || 'Unknown error'); }) } finally { // 无论成功失败,都重置加购状态 this.isAddingToCart_ = false; } } showToast_(message) { const toastEl = document.querySelector("#apps-match-drawer-add_to_cart_toast"); if (toastEl) { SPZ.whenApiDefined(toastEl).then((apis) => { apis.showToast(message); }); } } // 触发加购成功提示 triggerAddToCartToast_() { // 如果主题有自己的加购提示,则不显示 const themeAddToCartToastEl = document.querySelector('#add-cart-event-proxy'); if (themeAddToCartToastEl) return; // 显示应用的加购成功提示 this.showToast_("Added successfully"); } 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);
class SpzCustomDiscountBundle extends SPZ.BaseElement { constructor(element) { super(element); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } mountCallback() {} unmountCallback() {} setupAction_() { this.registerAction('showAddToCartToast', () => { const themeAddToCartToastEl = document.querySelector('#add-cart-event-proxy') if(themeAddToCartToastEl) return const toastEl = document.querySelector('#apps-match-drawer-add_to_cart_toast') SPZ.whenApiDefined(toastEl).then((apis) => { apis.showToast("Added successfully"); }); }); } buildCallback() { this.setupAction_(); }; } SPZ.defineElement('spz-custom-discount-toast', SpzCustomDiscountBundle);
Color- Green purple
Size- S
Quantity
No Risk. Free 30-Day Exchange.
DHL / UPS (2–3 business days)
Together we’re stronger, together we fight
🎀🎗️

United for Every Woman

Fashion can be beautiful, meaningful, and powerful. Every piece in this collection represents solidarity, compassion, hope, and the strength of women everywhere.

30% of every order supports breast cancer programs

More Than Clothing

Each piece in this collection is more than something to wear—it is a symbol of love, courage, and support. By choosing one of our pink styles, you are helping raise awareness, expand access to recovery resources, and support ongoing prevention and treatment programs.

With every qualifying order, Wrenoin proudly donates 30% of the proceeds in your name to organizations and initiatives dedicated to breast cancer prevention, research, treatment, and patient support.

Our Promise

At Wrenoin, we believe fashion is not only about what you wear—it is also about what you stand for. Three years ago, we made a promise to use our platform, our brand, and our voice to support the fight against breast cancer.

We were deeply moved by the stories of courageous women, families, caregivers, survivors, and advocates. Their strength inspired us to turn our collection into something greater than fashion.

Since then, every participating purchase has become part of that promise. Each design represents hope. Each order becomes an act of support. Each customer becomes part of a community working toward meaningful change.

3 Years
Standing together for awareness and support
$80,000
Raised for breast cancer initiatives
30%
Donated from every participating order

The Journey: Powered by Our Community

Today, we are proud to celebrate our third year supporting this important cause. With the generosity and trust of our community, we have raised $80,000 for breast cancer initiatives.

Every pink item, every thoughtful purchase, every shared message, and every act of advocacy has helped us reach this milestone. These funds represent far more than a number—they represent compassion in action.

Together, we are helping provide practical resources, emotional support, education, treatment assistance, and hope to women and families who need it most.

💗

You Are Not Alone

We understand that every journey is different. Some battles are visible, while others are carried quietly. No matter where you are in your journey, your story matters.

To every patient, survivor, caregiver, family member, and advocate: we see you, we honor you, and we stand beside you.

You are strong. You are courageous. You are never alone.

What Your Purchase Helps Support

🔬

Research

Supporting programs that help advance prevention, diagnosis, and treatment.

🤝

Patient Resources

Helping connect women and families with practical assistance and recovery resources.

📣

Awareness

Encouraging education, early detection, open conversations, and community support.

Fashion That Fights for Change

Every Wrenoin design in this collection carries a message. When you wear it, you are not only expressing your personal style—you are helping bring attention to a cause that affects millions of women and families.

Your purchase becomes a conversation starter, a sign of solidarity, and a reminder that collective action can create meaningful progress.

Thank You for Standing With Us

Thank you to every person who has supported this journey through a purchase, a shared story, a kind message, or an act of advocacy.

Together, we are more than a fashion community. We are a source of strength, compassion, and hope.

Wrenoin stands with you. Always. 💗

Donation details, participating products, eligible order periods, and beneficiary programs may vary. Please refer to the current campaign terms for complete information.

Description

SPU: DZ-303975-LSX

Fabric Name: 95% Cotton-5% Nylon

Pattern: Celtic Knot With Floral Art

Process: Printed

Style: Retro

Length: Mid-Length

Collar: Round Neck

Popular Elements: Celtic Knot With Floral Art

Sleeve Type: 3/4 Sleeve

Occasion: Daily

Theme: Summer, Spring

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.

Size Bust Length Sleeve
cm inch cm inch cm inch
S 95 37.1 114 44.5 39 15.2
M 100 39.0 115 44.9 40 15.6
L 105 41.0 116 45.2 41 16.0
XL 110 42.9 117 45.6 42 16.4
2XL 115 44.9 118 46.0 43 16.8
3XL 120 46.8 119 46.4 44 17.2
4XL 125 48.8 120 46.8 45 17.6
5XL 130 50.7 121 47.2 46 17.9
Due to manual measurement, there may be an error of 1-3cm

You may also like