${function() {
const variantData = data.variant || {"id":"fb487926-478a-468d-807c-a4e7500b493e","product_id":"622b5138-35e4-42bf-9305-fd3f5223555c","title":"Gold","weight_unit":"kg","inventory_quantity":0,"sku":"Lin211124536-Gold","barcode":"","position":1,"option1":"Gold","option2":"","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/bbb744d1a859194f838c912cfbbe7421.jpeg","path":"bbb744d1a859194f838c912cfbbe7421.jpeg","width":1000,"height":1000,"alt":"","aspect_ratio":1},"wholesale_price":[{"price":19.61,"min_quantity":1}],"weight":"0.03","compare_at_price":"28.25","price":"19.61","retail_price":"28.25","available":true,"url":"\/products\/baroque-hip-hop-clavicle-two-layer-necklace-41pr?variant=fb487926-478a-468d-807c-a4e7500b493e","available_quantity":999999999,"options":[{"name":"Color","value":"Gold"}],"off_ratio":31,"flashsale_info":[],"sales":6};
const saveType = "percentage";
const saveText = "Save {{saved_amount}}";
const productLabelDiscountOn = false;
return `
-
${saveText.replace('\{\{saved_amount\}\}',
saveType == 'percentage'
? variantData.off_ratio + '%'
: ` `
)}
`;
}()}
Color
: Gold
${function(){
const optName = "Color";
const optionValue = data.originData.selectData ? data.originData.selectData[optName].value : data.originData.value;
const optionValueText = optionValue ? (': ' + optionValue) : '';
return `
${optionValueText}
`
}()}
${function(){
const tipText = "Please select a {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data);
return `${tipText}
`
}()}
Add to cart
$19.61
${function(){
const wholesale_enabled = false;
const qty = data.quantity || 1;
const currentSelectVariant = data.variant;
const defaultVariant = (data.product && data.product.variants && data.product.variants[0]);
const productVariant = {"id":"fb487926-478a-468d-807c-a4e7500b493e","product_id":"622b5138-35e4-42bf-9305-fd3f5223555c","title":"Gold","weight_unit":"kg","inventory_quantity":0,"sku":"Lin211124536-Gold","barcode":"","position":1,"option1":"Gold","option2":"","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/bbb744d1a859194f838c912cfbbe7421.jpeg","path":"bbb744d1a859194f838c912cfbbe7421.jpeg","width":1000,"height":1000,"alt":"","aspect_ratio":1},"wholesale_price":[{"price":19.61,"min_quantity":1}],"weight":"0.03","compare_at_price":"28.25","price":"19.61","retail_price":"28.25","available":true,"url":"\/products\/baroque-hip-hop-clavicle-two-layer-necklace-41pr?variant=fb487926-478a-468d-807c-a4e7500b493e","available_quantity":999999999,"options":[{"name":"Color","value":"Gold"}],"off_ratio":31,"flashsale_info":[],"sales":6};
const variantData = currentSelectVariant || defaultVariant || productVariant;
const wholesale_price = variantData.wholesale_price || [];
if(wholesale_enabled && wholesale_price.length > 0) {
let wholesaleIndex = wholesale_price.findIndex(item => {
return item.min_quantity > qty;
});
if(wholesaleIndex < 0){
wholesaleIndex = wholesale_price.length - 1;
}else if(wholesaleIndex > 0){
wholesaleIndex = wholesaleIndex - 1;
}
const wholesalePrice = wholesale_price[wholesaleIndex] || '';
return `
`
}else {
const price = variantData && variantData.price;
return price != undefined ? `
` : ' ';
}
}()}
Buy now
Product was out of stock.
Product is unavailable.
${function(){
const variantData = data.variant || {"id":"fb487926-478a-468d-807c-a4e7500b493e","product_id":"622b5138-35e4-42bf-9305-fd3f5223555c","title":"Gold","weight_unit":"kg","inventory_quantity":0,"sku":"Lin211124536-Gold","barcode":"","position":1,"option1":"Gold","option2":"","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/bbb744d1a859194f838c912cfbbe7421.jpeg","path":"bbb744d1a859194f838c912cfbbe7421.jpeg","width":1000,"height":1000,"alt":"","aspect_ratio":1},"wholesale_price":[{"price":19.61,"min_quantity":1}],"weight":"0.03","compare_at_price":"28.25","price":"19.61","retail_price":"28.25","available":true,"url":"\/products\/baroque-hip-hop-clavicle-two-layer-necklace-41pr?variant=fb487926-478a-468d-807c-a4e7500b493e","available_quantity":999999999,"options":[{"name":"Color","value":"Gold"}],"off_ratio":31,"flashsale_info":[],"sales":6};
return `
`
}()}
Please allow a processing time of 3-5 business days before orders ship from our warehouse.
/** @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}","linenstylish")}
To display this card to customers, you need to go to "Booster & Store Conversion" to turn on the trust enhancement feature.