1/9
${data.index + 1}/${data.total}
Description
Feature
- 💄[Beautiful and Durable Material] Made of PU+cotton, smooth zippers, Choosing high-quality materials to make the makeup bag more durable. It will be easy to clean if it gets dirty.
- 💅🏽[Separate Brushes Compartment] It comes with a separate space to hold your brushes and protect them from dust. The convenient design will provide a good usage experience for you.
- 👜[Travel Makeup Bag] which is perfect to put in a carry on suitcase or backpack. It can hold every day makeup, keeps your makeup separated and organized, it is so cool! Good for travelling. Zips flat and great to store in a drawer or suitcase
- 💜[Travel Cosmetic Bag] Practical yet compact design, much lighter than a bulky makeup bag, so that's a major plus for traveling. The soft sides could easily fit in a crowded suitcase or bag with enough cushion.
- ★[Compact Size] Set of 2 makeup bags- velvet bag : 24.5*16.5*10CM + wash bag: 22.5*7.5*15cm, enough to hold all daily cosmetics and travel toiletry accessories
Specifications
- Fabric texture: PU
- Lining texture: cotton
- Color: Pink/Blue/Grey
- Cosmetic bag size: 24.5*16.5*10CM
- Wash bag size: 22.5*7.5*15cm
- Product weight: 250g
- Package includes: 1 x velvet cosmetic bag + 1 x wash bag
Notes
- Due to manual measurements, please allow slight measurement deviations.
- Due to the different display and lighting effects, the actual color of the item may be slightly different from the color displayed in the picture.
${isCart ? 'The items in the shopping cart do not participate in any recommendation rule. Add the participating items to your shopping cart to check the design.' : ''}
${isProduct ? 'This product did not participated in any recommendation rule. Switch to another product to check the design.' : ''}
${isCollection ? 'The items in this collection do not participate in any recommendation rule. Switch the participating items to check the design.' : ''}
${isIndex ? 'The home page do not participate in any recommendation rule.' : ''}
(This prompt would not display on client-side)
Recommended Products
${rule.config.title}
${(function(){
const product = data.product;
const avail_variants = product.variants.filter(function(variant){
return variant.available;
});
const selected_variant = product.min_price_variant.available ? product.min_price_variant : avail_variants.length && avail_variants[0];
return `
`
})()}
You may also like
Recently Viewed
Cart
Your shopping bag is empty
-
${item.product_title}
- ${item.options.map(option => option.value).join('/')}
- ${propertie.name}/${propertie.isImage ? `View image` : propertie.value}
Free giftMixed Lot*${item.quantity}${item.item_text}${discount_item.title} )
${textArrayHtml}
You've got free shipping
${rate}%
Total:
${function() {
const textArray = ("Save {{save_amount}}").split(/\{\{\s*save_amount\}\}/);
if (textArray.length > 0 && textArray.length < 2) {
textArray.push('');
}
return textArray.map((text, index) => {
if (index == 0) {
return `${text}`;
}
return `
${text}
`;
}).join('');
}()}
${function() {
const textArray = ("Save {{save_amount}}").split(/\{\{\s*save_amount\}\}/);
if (textArray.length > 0 && textArray.length < 2) {
textArray.push('');
}
return textArray.map((text, index) => {
if (index == 0) {
return `${text}`;
}
return `
${text}
`;
}).join('');
}()}
-
${discount_application.title}:
-
${data.invalid_msg}
Taxes and shipping calculated at checkout
${(function(){
var total_price = data.total_price;
var postageFreeAmount = 59.99;
var freeAmount = postageFreeAmount - total_price;
var isFreeShipping = freeAmount <= 0;
var rate = Math.min(total_price / postageFreeAmount * 100, 100).toFixed(2);
const textArray = ("Spend {{ amount }} more and get free shipping!").split(/\{\{\s*amount\s*\}\}/);
const textArrayHtml = textArray.map((text, index) => {
if (index == 0) {
return `${text}`;
}
return ` ${text}`;
}).join('');
return `
`
})()}
const summaryStickyRender = document.querySelector('#cart-drawer-summary-sticky-render');
if (summaryStickyRender) {
document.body.style.setProperty('--cart-drawer-summary-sticky-height', summaryStickyRender.clientHeight + 'px');
}
${textArrayHtml}
You've got free shipping
${rate}%
${data.invalid_msg}
Total:
${function() {
const textArray = ("Save {{save_amount}}").split(/\{\{\s*save_amount\}\}/);
if (textArray.length > 0 && textArray.length < 2) {
textArray.push('');
}
return textArray.map((text, index) => {
if (index == 0) {
return `${text}`;
}
return `
${text}
`;
}).join('');
}()}
${function() {
const textArray = ("Save {{save_amount}}").split(/\{\{\s*save_amount\}\}/);
if (textArray.length > 0 && textArray.length < 2) {
textArray.push('');
}
return textArray.map((text, index) => {
if (index == 0) {
return `${text}`;
}
return `
${text}
`;
}).join('');
}()}
${function() {
const textArray = ("Save {{save_amount}}").split(/\{\{\s*save_amount\}\}/);
if (textArray.length > 0 && textArray.length < 2) {
textArray.push('');
}
return textArray.map((text, index) => {
if (index == 0) {
return `${text}`;
}
return `
${text}
`;
}).join('');
}()}
-
${discount_application.title}:
-
${data.invalid_msg}
Taxes and shipping calculated at checkout
-
Subtotal:
-
${discount_application.title}:
-
Total:
Taxes and shipping calculated at checkout