Special-Shaped Painted Christmas Ball Set

$36.97 $73.98 Save 50%
Color:  Green color
Quantity
Share the love
Description
  • Full refund within 30 days without reason
  • Shipping>>Worldwide Express Shipping Available
  • Payments Via PayPal® 
  • Delivery time: Worldwide 7-12 days
  • Enjoy FREE SHIPPING over $39!

30 Pack 60mm/2.36in Christmas Ball Ornaments Shatterproof Hand Painted & Glittering Christmas Tree Pendants Decorative Hanging Christmas Baubles Balls Ornaments Set 

  • 30ct CHRISTMAS BALL ORNAMENTS - Comes with 30 pieces of Christmas balls in 1 box. Totally 6 classic Christmas design with traditional color scheme, 5pcs of each kind. Ball ornaments measure about 2.36"/60mm in diameter which is appropriate for a medium/big tree, wreath and garland
  • CLASSIC & EXQUISITE ORNAMENTS - These red and white Christmas balls set features classic Christmas elements: snowflake, reindeer, Christmas tree ornaments, with different finishes such as glaze, matte and glittering base, perfect accents for your Xmas tree decoration
  • SHATTERPROOF CHRISTMAS ORNAMENTS - These ornaments are made of durable and eco-friendly plastic to provide excellent shatterproof performance, and will not break or dent if accident drop occurs, safe for your kids and pets
  • GREAT DECORATION - These shatterproof balls ornaments for Christmas tree provide an attractive decorative solution for families with kids and pets, homes, offices, schools, hotels, churches, markets, shopping malls and shops to meet many scenes such as Christmas, Wedding, Party, Anniversary, Festivals, as hanging ornaments on tree branches, above reception, centerpiece DIY etc.
  • PERFECT CHRISTMAS GIFT - A perfect Christmas gift choice for your families, friends or co-workers, exquisite design and vibrant colors of these shatterproof ornaments will help them enliven Christmas decoration, enjoy the valuable health and reunion in the special year of 2020

Service: We provide you with the best shopping experience by the most professional attitude of service. Contact us if you have any questions!

OUR GUARANTEE

  • We take pride in our products as we believe they are amazing. However, we understand that buying things online can be daunting, especially for the first time, so we offer a 100% satisfaction guarantee.
  • If you don't have a positive experience for any reason, we will do whatever it takes to make sure you are 100% satisfied with your purchase.
HOW TO PAY
IF YOU WANT TO CHECKOUT WITH CREDIT CARD, PLEASE CLICK PAYPAL AND SEARCH FOR ‘PAY WITH DEBIT OR CREDIT CARD’!

ENTER YOUR PAYMENT DETAILS, YOUR BILLING ADDRESS, AND YOUR CONTACT INFORMATION.

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.