Athletic 3 Piece Tankini Swimsuits with Shorts Swim Tank Tops with Sports Bra and Boyshorts Bathing Suits
${function() {
const variantData = data.variant || {"id":"31bc8a32-468e-4b0b-9e02-d3f44d68bb7f","product_id":"a6097683-3f6d-4b12-a7f3-d6114047f3eb","title":"Blue-S","weight_unit":"kg","inventory_quantity":9998,"sku":"SW26060201-Blue-S","barcode":"","position":1,"option1":"Blue","option2":"S","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/2c0853fa381f4cf9c5082bb1c7f37cc2.png","path":"2c0853fa381f4cf9c5082bb1c7f37cc2.png","width":384,"height":593,"alt":"","aspect_ratio":0.6475548060708263},"wholesale_price":[{"price":41.99,"min_quantity":1}],"weight":"0.4","compare_at_price":"0","price":"41.99","retail_price":"0","available":true,"url":"\/products\/athletic-3-piece-tankini-swimsuits-with-shorts-swim-tank-tops-with-sports-bra-and-boyshorts-bathing-suits?variant=31bc8a32-468e-4b0b-9e02-d3f44d68bb7f","available_quantity":999999999,"options":[{"name":"Color","value":"Blue"},{"name":"Size","value":"S"}],"off_ratio":"0","flashsale_info":{"variant_id":"31bc8a32-468e-4b0b-9e02-d3f44d68bb7f","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":"41.99","compare_at_price":"","discount_price":"41.99","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"0","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 : SW26060201-Blue-S
Weight : 0.4kg
${function(){
const variantData = data.variant || {"id":"31bc8a32-468e-4b0b-9e02-d3f44d68bb7f","product_id":"a6097683-3f6d-4b12-a7f3-d6114047f3eb","title":"Blue-S","weight_unit":"kg","inventory_quantity":9998,"sku":"SW26060201-Blue-S","barcode":"","position":1,"option1":"Blue","option2":"S","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/2c0853fa381f4cf9c5082bb1c7f37cc2.png","path":"2c0853fa381f4cf9c5082bb1c7f37cc2.png","width":384,"height":593,"alt":"","aspect_ratio":0.6475548060708263},"wholesale_price":[{"price":41.99,"min_quantity":1}],"weight":"0.4","compare_at_price":"0","price":"41.99","retail_price":"0","available":true,"url":"\/products\/athletic-3-piece-tankini-swimsuits-with-shorts-swim-tank-tops-with-sports-bra-and-boyshorts-bathing-suits?variant=31bc8a32-468e-4b0b-9e02-d3f44d68bb7f","available_quantity":999999999,"options":[{"name":"Color","value":"Blue"},{"name":"Size","value":"S"}],"off_ratio":"0","flashsale_info":{"variant_id":"31bc8a32-468e-4b0b-9e02-d3f44d68bb7f","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":"41.99","compare_at_price":"","discount_price":"41.99","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"0","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}
`
}()}
Fabric type
82% Polyamide, 18% Elastane
Care instructions
Hand Wash Only
Closure type
Pull On
About this item
- Three piece tankini swimsuits include swim tank tops, sports bra and boyshorts. The athletic swim shorts are so comfy and stretchy.The soft padded bra offers great support and the tank top gives coverage while still being cute
- Athletic Style: You can wear the sports bra top while sun bathing and put on the tankini when walking around. Sporty swimwear with the racerback bikini top is cute and flattering. U-neck tankini top is loose and long enough to hide your belly, special open back design perfectly show your curves
- Swim Tops Women: The athletic racerback tankini swimsuit has a padded bra for added extra support and shape. The racerback provides good bra support and a flattering look
- Racerback tank top with mid-waist solid boy shorts make you feel relieved to show yourself off and do some sports outside, which is very suitable for volleyball and family gatherings, and which is conservative but still flattering
- Occasion: Ladies swimwear is suitable for swimming pools, beach, water playing, summer vacation. Wear the swimming tankini set will show your glamour. It’s a good gift to your girlfriend, mom, sister. Choose the right size according to the size chart