Up to 90% off, cut out the middleman price difference, to give customers more affordable, can add to cart means there are still in stock.

✅ Guaranteed!GoogleTrusted Store!
PaymentsViaPayPal®andCredit card.

✈Free Shipping on orders over £29.99

🎁Order today andover £19.99 GetRandom style Free Bag!

Swimwear

500 Products
Filter
Sort by

Sweet Floral Print Pendulum Hem Swim Dress

$4.99 $33.90

Leopard Print Knotted Surplice Swim Dress

$4.99 $33.90

Solid Tiered Ruffles Ruched One Piece Swimsuit

$4.99 $29.90

Two-Piece Floral Print Ruched Mesh Swimsuit, Sarong

$4.99 $38.90 +5

Surplice Neckline Belted Plain One-Piece Swimsuit

$4.99 $34.90 +8

Boho Flower Print Surplice Swim Dress

$4.99 $34.90

Glide Lock Zipper Pockets One-Piece Swimsuit

$4.99 $31.90

Two-Piece Ombre Gradient Surplice Swimsuit, Sarong

$4.99 $30.90

Halter Neck Pockets Cinched One-Piece Swimsuit

$4.99 $40.90

Geometric Print Surplice Neck Swim Dress

$4.99 $35.90

Boho Print Pockets Belted One-Piece Swimsuit

$4.99 $34.90

Ditsy Floral Ruched Empire Waist Swim Dress

$4.99 $33.90 +1

Leopard Print Color Contrast One-Piece Swimsuit

$4.99 $34.90

High Waisted Pockets Solid Pleated Swim Bottom

$4.99 $23.90

Solid Keyhole Elastic Waist Gathered One Piece Swimsuit

$4.99 $40.90 +2

Tropical Flower Print Pockets One-Piece Swimsuit

$4.99 $40.90 +8

Stereo Flower Design Slit Hem Swim Cover Up

$4.99 $31.90

Leopard Print Color Block Swim Dress

$4.99 $33.90

Cut-Out Twisted-Front Swim Top

$4.99 $20.90

Color Block Keyhole One-Piece Swimsuit

$4.99 $28.90

Solid Sculpt Waist Patchwork Ruffle Tiered One Piece Swimsuit

$4.99 $29.90

Hips Contour Curvy Pockets Swim Bottoms

$4.99 $22.90

Anti-Float Ties Webbed Split Hem Swim Dress

$4.99 $34.90

Anti-Float Ties Floral Print Swim Dress

$4.99 $33.90

Tie-Dye Print Swim Top

$4.99 $26.90

Leopard Print Slim-Fit One-Piece Swimsuit

$4.99 $33.90

Textured Side Drawstrings U-Neck Swim Tankini

$4.99 $26.90

Sweet Floral Print Wide Strap Swim Top

$4.99 $20.90

Patchwork Contrast Crossover One Piece Swimsuit

$4.99 $32.90 +5

Tropical Print Crisscross Split Hem Swim Dress

$4.99 $32.90

Adjustable Drawstring Drapey One-Piece Swimsuit

$4.99 $36.90

Floral Print Keyhole Pockets Swim Romper

$4.99 $40.90

Floral Removable Cups One-Piece Swimsuit

$4.99 $39.90

Polka Dot Bowknot Detail Ruched Swim Dress

$4.99 $35.90

Eyelet Trim Lace Pleated Swim Bottoms

$4.99 $25.90

Plain Ties Wrap Flutters Swim Dress

$4.99 $33.90 +1

Patchwork Ruched Knot Asymmetrical Hem Swim Dress

$4.99 $35.90

Curved Hem Knotted Plain Swim Dress

$4.99 $35.90

Boho Print Color Contrast One-Piece Swimsuit

$4.99 $27.90

Plain Bowknot Pocket Gathered One Piece Swimsuit

$4.99 $33.90

Bandana Tie Knot Slit Hem Swim Bottom

$4.99 $22.90

Nautical Striped Twist Front One-Piece Swimsuit

$4.99 $27.90

Polka Dots Contrast Drawstring One-Piece Swimsuit

$4.99 $30.90

Twist Front Plain Ruched One-Piece Swimsuit

$4.99 $28.90

Boho Print Ruched Pockets Swim Dress

$4.99 $34.90

Boho Print Ruched Bow Asymmetrical Hem Swim Dress

$4.99 $34.90

Color Block Waist-Tie One-Piece Swimsuit

$4.99 $28.90

Overlap Collar Bandana Patchwork Split Hem Swim Dress

$4.99 $32.90

Drawstring Front Ruched Flutter Split Hem Swim Dress

$4.99 $32.90 +1

Striped Spliced Knotted One-Piece Swimsuit

$4.99 $34.90

Crochet Floral Cut-Out Swim Cover-Up

$4.99 $31.90

Stripes Crochet V-Neck Swim Cover-Up

$4.99 $26.90

Laser Cut Surplice Neck Waist-Cinched Swim Dress

$4.99 $38.90

Geometric Stripe Twist Front Swim Top

$4.99 $26.90

Crochet Shoulder Flower Cut-Out Swim Cover-Up

$4.99 $33.90

V Neck Striped Patchwork Ruched One Piece Swimsuit

$4.99 $29.90

Marine Print Cut-Out Pleated Swim Top

$4.99 $26.90

Plain Gathered Knot Adjustable Straps Swim Dress

$4.99 $32.90

Boho Print Ruffled One-Piece Swimsuit

$4.99 $27.90

Cold Shoulder Belted Ruffled One-Piece Swimsuit

$4.99 $30.90

Cut-Out Waist-Cinched Button Swim Cover-Up

$4.99 $33.90

Laser Cut Ruched Drawstring A Line Swim Dress

$4.99 $39.90

Contrast Webbing Wrap One Piece Swimsuit

$4.99 $33.90

Ribbon Detail Halter Neck One-Piece Swimsuit

$4.99 $29.90
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 }); }); }); 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);

Sadly, my sister and I are forced to close our boutique...💔

Over the past few years, we've poured our hearts into all kinds of clothing: coats, jackets, sweaters, shoes, bags - to create a warm and welcoming environment for our community, trying to represent and leave a part of ourselves in each of these garments. We've reached the point where we're out of stock and, to speed up the process, we're offering you, our customers, considerable discounts of up to 80%.

Why are we forced to close the store?

Well, let's be frank with you.... It turns out that running an online store is a lot harder than we thought just a few years ago.... This is due to a variety of reasons: poor cooperation with partners, too many unsold products and insufficient funds accumulated, leaving us with no choice but to stop displaying most of our products. We are now in the clearance phase and to speed up the process we are offering you these huge discounts. It's hard for us to let this go on... We hope that you, our community, understand and support our decision.