Cfocto Makeup Bags PU Leather Travel Cosmetic Bags for Women Double Layer Large Capacity Travel Cosmetic Organizer Toiletry Wash Bags for Girls Ladies Black

Cfocto Makeup Bags PU Leather Travel Cosmetic Bags for Women Double Layer Large Capacity Travel Cosmetic Organizer Toiletry Wash Bags for Girls Ladies Black

300 sold
Color : Black
people are viewing this right now

🎀【MULTI-FUNCTION】: It can not only be used as a travel cosmetic cases, the makeup bag also as a wash bag, a toiletry bag, suitable for all kinds of daily or travel use, and will bring great convenience to your life.

🎀【WONDERFUL GIFTS】: Give this cosmetic makeup bag to your wife, girlfriend, mother, sister or someone you like as a gift. They will be very happy and surprised when received your gift at Birthday, Christmas, Mother's Day, Women's Day and Valentine's Day.

🎀【LARGE COSMETIC MAKEUP BAG】: Size: 9.8" x 5.7" x 5.1", Our cosmetic makeup bag is designed with multiple divisions and compartments, which can hold so many of your makeup accessories such as cosmetics, essential oils, toiletries kits, valuables, etc. It can be organized to accommodate the cosmetics and makeup tools you need.

🎀【HIGH QUALITY】Our travel cosmetic makeup bag is made of a premium leather fabric with a waterproof surface that prevents internal products from getting wet and is easy to clean. All linings are also made of a material that is easy to clean and will not damage the lining even if it spills.The double zipper is very smooth, and when the device is too full, just grab one corner of the edge and pull it up.If the bag has a slight smell, put it in a ventilated place to dissipate.

🎀【UNIQUE DESIGN】: This large capacity pu leather fabric cosmetic makeup bag for women is designed with double zippers on the top for easy access. The double layers ensure that all your makeup essentials are well-organized and securely stored. The extra bag at the bottom of the makeup bag is perfect for carrying your brushes, eyeshadow palette, or any other makeup tools you need to have on hand. It makes easy to keep everything organized and within reach.

Customer Reviews

Here are what our customers say.

Write a Review
Customer Reviews
Wow you reached the bottom
Most liked
Highest ratings
Lowest ratings
class SpzCustomFileUpload extends SPZ.BaseElement { constructor(element) { super(element); this.uploadCount_ = 0; this.fileList_ = []; } buildCallback() { this.action = SPZServices.actionServiceForDoc(this.element); this.registerAction('upload', (data) => { this.handleFileUpload_(data.event?.detail?.data || []); }); this.registerAction('delete', (data) => { this.handleFileDelete_(data?.args?.data); }); this.registerAction('preview', (data) => { this.handleFilePreview_(data?.args?.data); }); this.registerAction('limit', (data) => { this.handleFileLimit_(); }); this.registerAction('sizeLimit', (data) => { this.handleFileSizeLimit_(); }); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } setData_(count, file) { this.uploadCount_ = count; this.fileList_ = file; } handleFileUpload_(data) { data.forEach(i => { if(this.fileList_.some(j => j.url === i.url)) return; this.fileList_.push(i); }) this.uploadCount_++; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileUpload", { count: this.uploadCount_, files: this.fileList_}); if(this.fileList_.length >= 5){ document.querySelector('#review_upload').style.display = 'none'; } if(this.fileList_.length > 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '8px'; } } handleFileDelete_(index) { this.fileList_.splice(index, 1); this.uploadCount_--; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileDelete", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; if(this.fileList_?.length === 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '132px'; } } handleFilePreview_(index) { const finalPreviewData = this.fileList_[index]; const filePreviewModal = document.getElementById('filePreviewModal'); const fullScreenVideo = document.getElementById('fullScreenVideo'); const fullScreenImage = document.getElementById('fullScreenImage'); const previewModalClose = document.getElementById('previewModalClose'); const previewLoading = document.getElementById('previewLoading'); = 'block'; = 'flex'; if(finalPreviewData?.type === 'video'){ const media = this.mediaParse_(this.fileList_[index]?.url); fullScreenVideo.addEventListener('canplaythrough', function() { = 'none'; }); fullScreenImage.src = ''; = 'none'; = 'block'; fullScreenVideo.src = media.mp4 || ''; } else { fullScreenImage.onload = function() { = 'none'; }; fullScreenVideo.src = ''; = 'none'; = 'block'; fullScreenImage.src = finalPreviewData.url; } previewModalClose.addEventListener('click', function() { = 'none'; }); } handleFileLimit_() { alert(window.AppReviewsLocale.comment_file_limit || 'please do not upload files more than 5'); this.triggerEvent_("handleFileLimit"); } handleFileSizeLimit_() { alert(window.AppReviewsLocale.comment_file_size_limit || 'File size does not exceed 10M'); } clear(){ this.fileList_ = []; this.uploadCount_ = 0; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleClear", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; } mediaParse_(url) { var result = {}; try { url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (str, key, value) { try { result[key] = decodeURIComponent(value); } catch (e) { result[key] = value; } }); result.preview_image = url.split('?')[0]; } catch (e) {}; return result; } triggerEvent_(name, data) { const event = SPZUtils.Event.create(, name, data); this.action.trigger(this.element, name, event); } } SPZ.defineElement('spz-custom-file-upload', SpzCustomFileUpload);
The review would not show in product details on storefront since it does not support to.