Hummingbird Print Casual Sun Protection Shirt
Hummingbird Print Casual Sun Protection Shirt
Hummingbird Print Casual Sun Protection Shirt
Hummingbird Print Casual Sun Protection Shirt
Hummingbird Print Casual Sun Protection Shirt
Hummingbird Print Casual Sun Protection Shirt
4/6
Hummingbird Print Casual Sun Protection Shirt
Hummingbird Print Casual Sun Protection Shirt
Hummingbird Print Casual Sun Protection Shirt
Hummingbird Print Casual Sun Protection Shirt
Hummingbird Print Casual Sun Protection Shirt
Hummingbird Print Casual Sun Protection Shirt
4/6

Hummingbird Print Casual Sun Protection Shirt

$33.99
$47.99
Save 29%
ColorPicture 1
Please select a color
Size
Please select a size
Quantity
Free worldwide shipping
Free return within 45 days
Sustainably made
Secure payments

Description

  • SPU:
    WSH83749
  • Material:
    Polyester
  • Pattern Type:
    Print/Animal
  • Sleeve Type:
    Long sleeve
  • Style:
    Vacation/Casual
  • Neckline:
    Button-down
  • Decoration:
    Buttons
  • Theme:
    Spring/Summer/Autumn
  • Occasion:
    Outdoor/Beach/Vacation
  • Fit:
    Loose
*The item does not include any accessories in the picture, unless stated otherwise in the product description.

Size chart

Size ShoulderBustSleeve LengthLength
CM INCHCM INCHCM INCHCM INCH
S 39 15.35102 40.1658 22.8373 28.74
M 40 15.75106 41.7359 23.2375 29.53
L 41 16.14110 43.3159 23.2376 29.92
XL 42 16.54114 44.8860 23.6278 30.71
2XL 43 16.93118 46.4660 23.6279 31.10
3XL 44 17.32122 48.0361 24.0281 31.89
4XL 45 17.72126 49.6161 24.0282 32.28
5XL 46 18.11130 51.1862 24.4184 33.07
Customer Reviews

Here are what our customers say.

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.