Midnight Top With High-Waisted Bottoms
${function() {
const variantData = data.variant || {"id":"bf4afd1c-e04f-4490-8a39-e914fc868a66","product_id":"56b7029c-8a83-4c43-bf26-672c9aa7df51","title":"black-XS","weight_unit":"kg","inventory_quantity":0,"sku":"SW24052304-black-XS","barcode":"","position":1,"option1":"black","option2":"XS","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/a28390d9075324e6854ea9c35fafa64e.png","path":"a28390d9075324e6854ea9c35fafa64e.png","width":1100,"height":1649,"alt":"","aspect_ratio":0.667070952092177},"wholesale_price":[{"price":38.99,"min_quantity":1}],"weight":"0.3","compare_at_price":"58.99","price":"38.99","retail_price":"58.99","available":true,"url":"\/products\/midnight-top-with-high-waisted-bottoms?variant=bf4afd1c-e04f-4490-8a39-e914fc868a66","available_quantity":999999999,"options":[{"name":"color","value":"black"},{"name":"size","value":"XS"}],"off_ratio":"34","flashsale_info":{"variant_id":"bf4afd1c-e04f-4490-8a39-e914fc868a66","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.99","compare_at_price":"","discount_price":"38.99","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"34","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 : SW24052304-black-XS
Weight : 0.3kg
${function(){
const variantData = data.variant || {"id":"bf4afd1c-e04f-4490-8a39-e914fc868a66","product_id":"56b7029c-8a83-4c43-bf26-672c9aa7df51","title":"black-XS","weight_unit":"kg","inventory_quantity":0,"sku":"SW24052304-black-XS","barcode":"","position":1,"option1":"black","option2":"XS","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/a28390d9075324e6854ea9c35fafa64e.png","path":"a28390d9075324e6854ea9c35fafa64e.png","width":1100,"height":1649,"alt":"","aspect_ratio":0.667070952092177},"wholesale_price":[{"price":38.99,"min_quantity":1}],"weight":"0.3","compare_at_price":"58.99","price":"38.99","retail_price":"58.99","available":true,"url":"\/products\/midnight-top-with-high-waisted-bottoms?variant=bf4afd1c-e04f-4490-8a39-e914fc868a66","available_quantity":999999999,"options":[{"name":"color","value":"black"},{"name":"size","value":"XS"}],"off_ratio":"34","flashsale_info":{"variant_id":"bf4afd1c-e04f-4490-8a39-e914fc868a66","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.99","compare_at_price":"","discount_price":"38.99","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"34","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}
`
}()}
This trendy bikini top is just begging you to go on your next tropical vacation! We love this classic black swim top thats sure to look great on any skin tone. Thick gathered straps and a plunge neckline give this swim top a classic silhouette that looks stunning on so many body types. As if that's not enough, a dainty tie finishes the back and keeps the straps in place.
These ruched black swimsuit bottoms are just begging you to go on your next getaway! These high-waisted bikini bottoms feature our traditional more full-coverage leg cut, with added ruching in the front that's incredibly flattering and stylish. You'll fall in love with these ruched swimsuit bottoms as soon as you put them on!
DETAILS
High Waisted with a Higher Leg Cut
Nylon/Spandex Material
Double Lined
FABRIC & CARE
Exterior 82% Nylon 18% Spandex. Liner 90% Polyester 10% Spandex.
Hand wash cold with mild detergent. Line dry. Rinse after each use.