Spa Gift Sets for Women - 6 Pcs Rose Bath and Body Set, Beauty Holiday Birthday Gift Baskets for Her
Spa Gift Sets for Women - 6 Pcs Rose Bath and Body Set, Beauty Holiday Birthday Gift Baskets for Her
${function() {
const variantData = data.variant || {"id":"c8ae8169-352b-47cf-9e3c-488c2d539b48","product_id":"dea64317-22b5-46ff-a01d-82e403525eb5","title":"","weight_unit":"lb","inventory_quantity":0,"sku":"BE-BP-020","barcode":"","position":1,"option1":"","option2":"","option3":"","note":"","image":null,"wholesale_price":[{"price":21.99,"min_quantity":1}],"weight":"0","compare_at_price":"38.99","price":"21.99","retail_price":"38.99","available":true,"url":"\/products\/spa-gift-sets-for-women-6-pcs-rose-bath-and-body-set-beauty-holiday-birthday-gift-baskets-for-her?variant=c8ae8169-352b-47cf-9e3c-488c2d539b48","available_quantity":999999999,"options":[],"off_ratio":"44","flashsale_info":{"variant_id":"c8ae8169-352b-47cf-9e3c-488c2d539b48","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":"21.99","compare_at_price":"","discount_price":"21.99","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"44","use_before_price":false,"before_price":"","title":"","properties":"","color_setting_promotional_copy":"","discount_quantity":0,"is_need_split":false},"sales":0};
const saveType = null;
const productSaveLabel = null;
return `
-
${ variantData.off_ratio }%
`; }()}
${function(){
return `
${data.starNum}/${data.starTotal}
`;
}()}
${function(){
return `
${data.showStarText === 'true' ? `
${data.starNum}/${data.starTotal}
` : ''}
`;
}()}
const TAG = 'spz-custom-revue-star';
class SPZCustomRevueStar extends SPZ.BaseElement {
constructor(element) {
super(element);
}
static deferredMount() {
return false;
}
buildCallback = () => {
this.action_ = SPZServices.actionServiceForDoc(this.element);
this.templates_ = SPZServices.templatesForDoc(this.element);
this.xhr_ = SPZServices.xhrFor(this.win);
this.starNum = this.element.getAttribute('starNum');
this.starTotal = this.element.getAttribute('starTotal');
this.showStarText = this.element.getAttribute('showStarText');
this.starColor = this.element.getAttribute('color');
this.interact = this.element.getAttribute('interact');
this.starSize = this.element.getAttribute('starSize') || 14;
}
mountCallback = () => {
this.doRender_({
starTotal: this.starTotal,
totalArray: Array.from({ length: Number(this.starTotal) }, (v, k) => k + 1),
starNum: this.starNum,
showStarText: this.showStarText,
starColor: this.starColor,
starSize: this.starSize
}).then(() => {
if (this.interact) {
this.addEventListeners_();
}
});
}
addEventListeners_ = () => {
const stars = document.querySelectorAll('.revue-star__star');
stars.forEach(star => {
star.addEventListener('click', event => {
const starEl = star.closest('.revue-star__star');
const starIndex = Number(starEl.dataset.index);
let isHalf = event.offsetX < star.offsetWidth / 2;
// rtl
if (document.documentElement.getAttribute('dir') === 'rtl') {
isHalf = event.offsetX > star.offsetWidth / 2;
}
const starValue = isHalf ? starIndex - 0.5 : starIndex;
this.starClickHandler_({ value: starValue });
});
});
}
renderStar = () => {
const isRtl = document.documentElement.getAttribute('dir') === 'rtl';
const stars = this.element.querySelectorAll('.revue-star__star');
stars.forEach((star, i) => {
const starIndex = i + 1;
const starEl = star.querySelector('svg:nth-child(2)');
const isHalf = this.starNum % 1 > 0 && Math.ceil(this.starNum) === starIndex;
const isSolid = starIndex <= Math.ceil(this.starNum);
starEl.style.display = isSolid ? 'block' : 'none';
if (isHalf) {
if (isRtl) {
// RTL布局下,如果是半星,显示星星的右半边
starEl.style.clipPath = `polygon(50% 0, 100% 0, 100% 100%, 50% 100%)`;
} else {
// LTR布局下,如果是半星,显示星星的左半边
starEl.style.clipPath = `polygon(0 0, 50% 0, 50% 100%, 0 100%)`;
}
} else {
starEl.style.clipPath = `polygon(0 0, 100% 0, 100% 100%, 0 100%)`
}
});
const showCountEle = this.element.querySelector('#revue-star-show-count');
showCountEle && SPZ.whenApiDefined(showCountEle).then((api) => {
api.render({ starNum: this.starNum, starTotal: this.starTotal });
});
}
doRender_ = (data) => {
return this.templates_
.findAndRenderTemplate(this.element, { starSize: this.starSize, ...data }, null)
.then((el) => {
const children = this.element.querySelector('*:not(template)');
children && SPZCore.Dom.removeElement(children);
this.element.appendChild(el);
})
.then(() => {
this.starNum = data.starNum;
this.renderStar();
});
}
starClickHandler_ = (event) => {
this.starNum = event.value;
this.renderStar();
this.triggerEvent_('change', { value: event.value });
}
triggerEvent_(name, data) {
const event = SPZUtils.Event.create(this.win, `${ TAG }.${ name }`, data || {});
this.action_.trigger(this.element, name, event);
}
isLayoutSupported(layout) {
return layout == SPZCore.Layout.CONTAINER;
}
}
SPZ.defineElement(TAG, SPZCustomRevueStar)
()
try {
const productId = window.SHOPLAZZA.meta.page.resource_id;
const productType = `default`;
const getProductReviews = (star_least) =>
fetch('/api/comment/count-star-multi',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
product_id: [productId],
star_least: star_least || 1,
}),
}).then(res => res.json());
try {
const section = document.querySelector('#revue-product-star');
if(productType === "gift_card" && section) {
section.style.display = 'none';
}
} catch(e) {
console.log(e);
window.addEventListener('load', () => {
try {
const section = document.querySelector('#revue-product-star');
if(productType=== "gift_card" && section) {
section.style.display = 'none';
}
} catch(e) {
console.log(e)
}
})
}
const getReviewsConfig = async () => {
let data = {};
const url = new URL(window.location.href);
const preview_theme_id = url.searchParams.get('preview_theme_id');
const commentConfig = await fetch('/api/comment-config', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
}
}).then(res => res.json());
data = commentConfig.data;
const themeConfig = await fetch(`/api/comment-config?theme_id=${preview_theme_id || ''}`, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
}
}).then(res => res.json());
if (themeConfig?.data && themeConfig.data.star_color) {
data.star_color = themeConfig.data.star_color;
}
if (preview_theme_id) {
data.star_least = window.apps_global && apps_global.reviews && apps_global.reviews.preview_star_least;
} else if (themeConfig?.data && themeConfig.data.product_settings) {
data.star_least = themeConfig.data.product_settings.star_least;
}
return data;
};
if (productId && window.SHOPLAZZA.meta.page.template_type == 1) {
getReviewsConfig().then(async res => {
const config = res;
let review = await getProductReviews(config.star_least);
review = review.data[productId];
if (!config.open_status || (!review.comment_avg_star && !config.show_no_comment_star)) return;
const render = async () => {
const section = document.querySelector('#revue-product-star');
const starComponent = document.querySelector('#revue-product-star-component');
const count = document.querySelector('#revue-product-star-count');
count.innerText = review.published_count;
const api = await SPZ.whenApiDefined(starComponent);
api.doRender_({
starNum: review.comment_avg_star,
starTotal: 5,
showStarText: false,
starColor: config.star_color,
totalArray: Array.from({ length: 5 }, (v, k) => k + 1)
});
section.style.opacity = 1;
}
render();
document.addEventListener('dj.editor.update', render);
});
}
} catch (e) {console.warn(e)};
${function() {
const minInventory = parseInt('7');
const maxInventory = parseInt('10');
const randomInventory = Math.round(Math.random() * (maxInventory - minInventory)) + minInventory;
const customText = "Only {stock} item(s) left in stock!".replace(/\{stock\}/g, '' + randomInventory + '');
const barWidth = (randomInventory / maxInventory) * 100 + '%';
return `
`;
}()}
Product was out of stock.
Enjoy free shipping on every order, delivered to your doorstep no matter where you are in the world.
Shop with confidence with our hassle-free returns policy, ensuring you love what you buy.
Designed with the planet in mind, all our products are committed to sustainable practices.
Your payment information is always protected with our advanced, encrypted checkout security.
Doing Holiday Spa at home!
Our complete bath and body collection captures the aromatic essence of lush floral and delectable fruits that promotes overall health and wellness,Using this spa set is perfect to achieve complete relaxation and have the ultimate spa experience
As a Spa Gift Basket Set for Her:
Nourishing formulas and pampering scents refresh your skin and awaken your senses mind, body and spirit, making this complete spa set as a present everyone is sure to love, Great women gift set for Valentines Day, Halloween, Thanksgiving Day, Christmas!
Package list:
Shower Gel: 5FL OZ/ 148ml
Hand Lotion: 1.9FL OZ/ 55ml
Body Butter: 1.7FL OZ/ 50ml
Body Lotion:1.9FL OZ/ 55ml
Bar: 3.5OZ/ 100g
-
Perfect Partner: This bath set designed to give your skin are filled with authentic, all-natural ingredients that will leave your face and body feeling fresh, hydrated, moisturized and use it regularly to keep the skin on your skin moist and not greasy
-
Nourishing Ingredients: Everything in the bath gift set is made from top rated and natural ingredients, including sunflower seed oil and vitamin E, focusing on moisturizing and softening skin
-
Essential Oils: the bath gift box for women infused with Rose essential oils which naturally strengthen skin tissue. This romantic scent it perfect to achieve complete relaxation and have the ultimate spa experience
-
Body Butter: Our body butter is a thicker and ultra-moisturizing version to help moisturize the skin deeply and make your skin firm and elastic
-
Decorative Spa Gift Box: Makes this bath set easy to gift as is, or is an easy shape to gift wrap, making the bath set as a perfect gifts for the woman in your life for any occasion
- Gift Sets For Women: Rose scent spa set is designed to relax the mind while nourishing and repairing the skin, making this complete spa set as a present everyone is sure to love is great women gift set for Valentines Day, Halloween, Thanksgiving Day
Vendor by :
BODY & EARTH
Sku :
BE-BP-020
Inventory :
999999999
${function(){
const variantData = data.variant || {"id":"c8ae8169-352b-47cf-9e3c-488c2d539b48","product_id":"dea64317-22b5-46ff-a01d-82e403525eb5","title":"","weight_unit":"lb","inventory_quantity":0,"sku":"BE-BP-020","barcode":"","position":1,"option1":"","option2":"","option3":"","note":"","image":null,"wholesale_price":[{"price":21.99,"min_quantity":1}],"weight":"0","compare_at_price":"38.99","price":"21.99","retail_price":"38.99","available":true,"url":"\/products\/spa-gift-sets-for-women-6-pcs-rose-bath-and-body-set-beauty-holiday-birthday-gift-baskets-for-her?variant=c8ae8169-352b-47cf-9e3c-488c2d539b48","available_quantity":999999999,"options":[],"off_ratio":"44","flashsale_info":{"variant_id":"c8ae8169-352b-47cf-9e3c-488c2d539b48","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":"21.99","compare_at_price":"","discount_price":"21.99","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"44","use_before_price":false,"before_price":"","title":"","properties":"","color_setting_promotional_copy":"","discount_quantity":0,"is_need_split":false},"sales":0};
return `
Vendor by :
${data.product && data.product.vendor}
Weight :
${variantData && variantData.weight}${variantData && variantData.weight_unit}
Barcode :
${variantData && variantData.barcode}
Sku :
${variantData && variantData.sku}
Inventory :
${variantData && variantData.available_quantity}
` }()}