Vintage Canvas Smiling Face Printed Makeup Tote Bag Bucket Bag
Vintage Canvas Smiling Face Printed Makeup Tote Bag Bucket Bag
Vintage Canvas Smiling Face Printed Makeup Tote Bag Bucket Bag
Vintage Canvas Smiling Face Printed Makeup Tote Bag Bucket Bag
Vintage Canvas Smiling Face Printed Makeup Tote Bag Bucket Bag
Vintage Canvas Smiling Face Printed Makeup Tote Bag Bucket Bag
Vintage Canvas Smiling Face Printed Makeup Tote Bag Bucket Bag
Vintage Canvas Smiling Face Printed Makeup Tote Bag Bucket Bag
Vintage Canvas Smiling Face Printed Makeup Tote Bag Bucket Bag
Vintage Canvas Smiling Face Printed Makeup Tote Bag Bucket Bag
Vintage Canvas Smiling Face Printed Makeup Tote Bag Bucket Bag
Vintage Canvas Smiling Face Printed Makeup Tote Bag Bucket Bag
Vintage Canvas Smiling Face Printed Makeup Tote Bag Bucket Bag
Vintage Canvas Smiling Face Printed Makeup Tote Bag Bucket Bag
Vintage Canvas Smiling Face Printed Makeup Tote Bag Bucket Bag

Vintage Canvas Smiling Face Printed Makeup Tote Bag Bucket Bag

$9.99
$9.99
-$0.00
Color-WHITE
Please select a color
Size-LARGE SIZE
Please select a size
SKU: CY-!93335-C1295S1692
Vendor by: lemongor
Sku CY-!93335
Material Canvas , >90%Cotton
Feature Contrast Color , Printed
Occasion Going out , Urban , Simple , Vintage
Seasons Spring , Summer , Autumn , Winter
Type Bags
Bags Style Tote Bag
Color WHITE
Size SMALL SIZE,LARGE SIZE


Please consult the size chart we provide for this item's measurements to help you decide which size to buy.Please note: There may be 1-3cm differ due to manual measurement.

CMINCH
Size
SMALL SIZE 23*16*12
LARGE SIZE 30*25*12
Customer Reviews
Write a Review
Customer Reviews
Wow you reached the bottom
Newest
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'); filePreviewModal.style.display = 'block'; previewLoading.style.display = 'flex'; if(finalPreviewData?.type === 'video'){ const media = this.mediaParse_(this.fileList_[index]?.url); fullScreenVideo.addEventListener('canplaythrough', function() { previewLoading.style.display = 'none'; }); fullScreenImage.src = ''; fullScreenImage.style.display = 'none'; fullScreenVideo.style.display = 'block'; fullScreenVideo.src = media.mp4 || ''; } else { fullScreenImage.onload = function() { previewLoading.style.display = 'none'; }; fullScreenVideo.src = ''; fullScreenVideo.style.display = 'none'; fullScreenImage.style.display = 'block'; fullScreenImage.src = finalPreviewData.url; } previewModalClose.addEventListener('click', function() { filePreviewModal.style.display = '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(this.win, 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.