Ruched Swim Floral Print Tankini Set Swimsuit
${function() {
const variantData = data.variant || {"id":"c6f27208-d78b-43d0-8495-3ce03d2e72a6","product_id":"695a937f-4a6d-41d0-b345-c0cb8e9fa643","title":"Navy Floral-XS","weight_unit":"kg","inventory_quantity":999,"sku":"SW211221L03-Navy Floral-XS","barcode":"","position":1,"option1":"Navy Floral","option2":"XS","option3":"","note":"","image":null,"wholesale_price":[{"price":38.69,"min_quantity":1}],"weight":"0.3","compare_at_price":"49.99","price":"38.69","retail_price":"49.99","available":true,"url":"\/products\/ruched-swim-floral-print-tankini-set-swimsuit?variant=c6f27208-d78b-43d0-8495-3ce03d2e72a6","available_quantity":999,"options":[{"name":"Color","value":"Navy Floral"},{"name":"Size","value":"XS"}],"off_ratio":"23","flashsale_info":{"variant_id":"c6f27208-d78b-43d0-8495-3ce03d2e72a6","product_id":"","quantity":0,"discount_id":"","limit_time":0,"limit_buy":0,"user_limit_buy":0,"discount_sales":0,"discount_sales_rate":"","discount_stock":0,"ends_at":0,"starts_at":0,"allow_oversold":"","allocation_method":"","price":"38.69","compare_at_price":"","discount_price":"38.69","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"23","use_before_price":false,"before_price":"","title":"","properties":"","color_setting_promotional_copy":"","discount_quantity":0,"is_need_split":false},"sales":0};
const saveType = "amount";
const productLabelDiscountOn = true;
return `
-
${saveType == 'percentage'
? `-${variantData.off_ratio}%`
: `-`
}
`;
}()}
${function(){
const tipText = "Please select a {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data);
return `${tipText}
`
}()}
${function(){
const tipText = "Please select a {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data);
return `${tipText}
`
}()}
${function() {
const minDays = parseInt('6');
const maxDays = parseInt('12');
const customText = "Estimated Delivery\uff1a{min_date} - {max_date}";
const minDate = new Date(Date.now() + (minDays * 86400000));
const maxDate = new Date(Date.now() + (maxDays * 86400000));
const formatDate = (minDate.getFullYear() == maxDate.getFullYear() && minDate.getFullYear() == new Date().getFullYear())
? new Intl.DateTimeFormat('en', { month: 'short', day: '2-digit' })
: new Intl.DateTimeFormat('en', { month: 'short', day: '2-digit', year: 'numeric' });
const tipText = customText.replace(/\{min_date\}/g, '' + formatDate.format(minDate) + '')
.replace(/\{max_date\}/g, '' + formatDate.format(maxDate) + '');
return `
${tipText}
`;
}()}
${function() {
const postageFreeAmount = 69;
const custom_text = "Buy {amount} more to enjoy FREE Shipping";
const totalPrice = +data.total_price;
const diffPrice = postageFreeAmount - totalPrice;
const percentDiff = (diffPrice > 0 ? (totalPrice / postageFreeAmount * 100) : 100) + '%';
let tipText = "Your order is free delivery";
if (diffPrice > 0) {
tipText = custom_text.replace('{amount}', `
`);
}
return `
`;
}()}
Product was out of stock.
Product is unavailable.
/** @private {string} */
class SpzCustomAnchorScroll extends SPZ.BaseElement {
static deferredMount() {
return false;
}
constructor(element) {
super(element);
/** @private {Element} */
this.scrollableContainer_ = null;
}
isLayoutSupported(layout) {
return layout == SPZCore.Layout.LOGIC;
}
buildCallback() {
this.viewport_ = this.getViewport();
this.initActions_();
}
setTarget(containerId, targetId) {
this.containerId = '#' + containerId;
this.targetId = '#' + targetId;
}
scrollToTarget() {
const container = document.querySelector(this.containerId);
const target = container.querySelector(this.targetId);
const {scrollTop} = container;
const eleOffsetTop = this.getOffsetTop_(target, container);
this.viewport_
.interpolateScrollIntoView_(
container,
scrollTop,
scrollTop + eleOffsetTop
);
}
initActions_() {
this.registerAction(
'scrollToTarget',
(invocation) => this.scrollToTarget(invocation?.caller)
);
this.registerAction(
'setTarget',
(invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId)
);
}
/**
* @param {Element} element
* @param {Element} container
* @return {number}
* @private
*/
getOffsetTop_(element, container) {
if (!element./*OK*/ getClientRects().length) {
return 0;
}
const rect = element./*OK*/ getBoundingClientRect();
if (rect.width || rect.height) {
return rect.top - container./*OK*/ getBoundingClientRect().top;
}
return rect.top;
}
}
SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll);
const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings";
class SpzCustomStrengthenTrust extends SPZ.BaseElement {
constructor(element) {
super(element);
this.renderElement_ = null;
}
isLayoutSupported(layout) {
return layout == SPZCore.Layout.CONTAINER;
}
buildCallback() {
this.xhr_ = SPZServices.xhrFor(this.win);
const renderId = this.element.getAttribute('render-id');
SPZCore.Dom.waitForChild(
document.body,
() => !!document.getElementById(renderId),
() => {
this.renderElement_ = SPZCore.Dom.scopedQuerySelector(
document.body,
`#${renderId}`
);
if (this.renderElement_) {
this.render_();
}
this.registerAction('track', (invocation) => {
this.track_(invocation.args);
});
}
);
}
render_() {
this.fetchData_().then((data) => {
if (!data) {
return;
}
SPZ.whenApiDefined(this.renderElement_).then((apis) => {
apis?.render(data);
document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{
if(event.target.nodeName == 'A'){
this.track_({type: 'trust_content_click'});
}
})
});
});
}
track_(data = {}) {
const track = window.sa && window.sa.track;
if (!track) {
return;
}
track('trust_enhancement_event', data);
}
parseJSON_(string) {
let result = {};
try {
result = JSON.parse(string);
} catch (e) {}
return result;
}
fetchData_() {
return this.xhr_
.fetchJson(STRENGTHEN_TRUST_URL)
.then((responseData) => {
if (!responseData || !responseData.data) {
return null;
}
const data = responseData.data;
const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => {
return result.concat(Object.assign(moduleSetting, {
logos: (moduleSetting.logos || []).map((item) => {
return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item;
})
}));
}, []);
return Object.assign(data, {
module_settings: moduleSettings,
isEditor: window.self !== window.top,
});
});
}
}
SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);
${data.module_title}
To display this card to customers, you need to go to "Booster & Store Conversion" to turn on the trust enhancement feature.
${item.content.replaceAll("{store_name}","tankiniskirt")}
To display this card to customers, you need to go to "Booster & Store Conversion" to turn on the trust enhancement feature.
Sku : SW211221L03-Navy Floral-XS
Weight : 0.3kg
${function(){
const variantData = data.variant || {"id":"c6f27208-d78b-43d0-8495-3ce03d2e72a6","product_id":"695a937f-4a6d-41d0-b345-c0cb8e9fa643","title":"Navy Floral-XS","weight_unit":"kg","inventory_quantity":999,"sku":"SW211221L03-Navy Floral-XS","barcode":"","position":1,"option1":"Navy Floral","option2":"XS","option3":"","note":"","image":null,"wholesale_price":[{"price":38.69,"min_quantity":1}],"weight":"0.3","compare_at_price":"49.99","price":"38.69","retail_price":"49.99","available":true,"url":"\/products\/ruched-swim-floral-print-tankini-set-swimsuit?variant=c6f27208-d78b-43d0-8495-3ce03d2e72a6","available_quantity":999,"options":[{"name":"Color","value":"Navy Floral"},{"name":"Size","value":"XS"}],"off_ratio":"23","flashsale_info":{"variant_id":"c6f27208-d78b-43d0-8495-3ce03d2e72a6","product_id":"","quantity":0,"discount_id":"","limit_time":0,"limit_buy":0,"user_limit_buy":0,"discount_sales":0,"discount_sales_rate":"","discount_stock":0,"ends_at":0,"starts_at":0,"allow_oversold":"","allocation_method":"","price":"38.69","compare_at_price":"","discount_price":"38.69","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"23","use_before_price":false,"before_price":"","title":"","properties":"","color_setting_promotional_copy":"","discount_quantity":0,"is_need_split":false},"sales":0};
return `
Sku : ${variantData && variantData.sku}
Weight : ${variantData && variantData.weight}${variantData && variantData.weight_unit}
Barcode : ${variantData && variantData.barcode}
`
}()}
Perfect for navigating the sandbar or the snack bar, our swim skirt features a waist-whittling waistband, hip-hugging curved seams, and an attached brief for coverage. Thanks to your feedback, we added more slimming ruching to the waistband, increased the backside of the brief, and lengthened the skirt for extra coverage and confidence.
- Updated lining for a more streamlined fit
- Silky-luxe fabric with inherent UPF 50+ sun protection (no chemicals added)
- Nylon/spandex; poly/spandex lined
- Imported
- Package included:1*Top 1*Panty
Runs true to size.
SIZE MEASUREMENT (INCHES)
|
(IN)
|
XS
|
S
|
M
|
L
|
XL
|
XXL
|
|
USA
|
0/2
|
4/6
|
8/10
|
12/14
|
16/18
|
20
|
|
AU
|
8
|
10
|
12
|
14
|
16
|
18
|
|
BUST
|
31-33
|
32-36
|
35-39
|
37-41
|
40-43
|
43-47
|
|
WAIST
|
25-27
|
26-30
|
28-33
|
31-35
|
33-37
|
37-41
|
|
TORSO
|
27-28
|
28-29
|
29-30
|
30-31
|
31-32
|
32-33
|
|
HIP
|
35-37
|
36-39
|
37-41
|
41-44
|
43-46
|
45-50
|