Blue Mandala Print Tankini with Shorts
${function() {
const variantData = data.variant || {"id":"dbf52c13-684f-4261-865b-1f203d5c0d24","product_id":"f9085684-670a-4964-9297-4dce27afce76","title":"Blue Mandala-S","weight_unit":"kg","inventory_quantity":997,"sku":"tstankini0225001-Blue Mandala-S","barcode":"","position":1,"option1":"Blue Mandala","option2":"S","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/6b13eadedc11ce96b3f1385783831a16.jpeg","path":"6b13eadedc11ce96b3f1385783831a16.jpeg","width":1200,"height":1500,"alt":"","aspect_ratio":0.8},"wholesale_price":[{"price":27.69,"min_quantity":1}],"weight":"0.2","compare_at_price":"49.99","price":"27.69","retail_price":"49.99","available":true,"url":"\/products\/blue-mandala-tankini-with-shorts?variant=dbf52c13-684f-4261-865b-1f203d5c0d24","available_quantity":999999999,"options":[{"name":"Color","value":"Blue Mandala"},{"name":"Size","value":"S"}],"off_ratio":"45","flashsale_info":{"variant_id":"dbf52c13-684f-4261-865b-1f203d5c0d24","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":"27.69","compare_at_price":"","discount_price":"27.69","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"45","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 : tstankini0225001-Blue Mandala-S
Weight : 0.2kg
${function(){
const variantData = data.variant || {"id":"dbf52c13-684f-4261-865b-1f203d5c0d24","product_id":"f9085684-670a-4964-9297-4dce27afce76","title":"Blue Mandala-S","weight_unit":"kg","inventory_quantity":997,"sku":"tstankini0225001-Blue Mandala-S","barcode":"","position":1,"option1":"Blue Mandala","option2":"S","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/6b13eadedc11ce96b3f1385783831a16.jpeg","path":"6b13eadedc11ce96b3f1385783831a16.jpeg","width":1200,"height":1500,"alt":"","aspect_ratio":0.8},"wholesale_price":[{"price":27.69,"min_quantity":1}],"weight":"0.2","compare_at_price":"49.99","price":"27.69","retail_price":"49.99","available":true,"url":"\/products\/blue-mandala-tankini-with-shorts?variant=dbf52c13-684f-4261-865b-1f203d5c0d24","available_quantity":999999999,"options":[{"name":"Color","value":"Blue Mandala"},{"name":"Size","value":"S"}],"off_ratio":"45","flashsale_info":{"variant_id":"dbf52c13-684f-4261-865b-1f203d5c0d24","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":"27.69","compare_at_price":"","discount_price":"27.69","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"45","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}
`
}()}
- 85% Polyester, 15% Spandex
- Elastic closure
- Hand Wash Only
- The athletic racerback tankini swimsuit has a padded bra for added extra support and shape.
- The soft shoulder straps and sexy see-through mesh patchwork swim top with shorts is modest and fitted. The sporty tribal tummy control bathing suit matched with mesh shoulder and racer back which is extremely popular and flattering.
- 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.
- Two piece sporty swimwear with boyleg bottoms is made of high quality fabric, professional stitching technology makes swimsuit more durable, elastic and comfortable, quick dry makes sure more comfort for your body.
- We specially designed different US sizes for the tankini sets: S(US 4-6), M(US 8-10), L(US 12-14), XL(US 16), XXL(US 18). Please choose a more suitable size according to the following detailed size measurement.