Hand Blown Glass Hummingbird Feeder - 34 Ounces - Comet
Hand Blown Glass Hummingbird Feeder - 34 Ounces - Comet
Hand Blown Glass Hummingbird Feeder - 34 Ounces - Comet
Hand Blown Glass Hummingbird Feeder - 34 Ounces - Comet
Hand Blown Glass Hummingbird Feeder - 34 Ounces - Comet
Hand Blown Glass Hummingbird Feeder - 34 Ounces - Comet
1/7
Hand Blown Glass Hummingbird Feeder - 34 Ounces - Comet
Hand Blown Glass Hummingbird Feeder - 34 Ounces - Comet
Hand Blown Glass Hummingbird Feeder - 34 Ounces - Comet
Hand Blown Glass Hummingbird Feeder - 34 Ounces - Comet
Hand Blown Glass Hummingbird Feeder - 34 Ounces - Comet
Hand Blown Glass Hummingbird Feeder - 34 Ounces - Comet
Hand Blown Glass Hummingbird Feeder - 34 Ounces - Comet
00:00
00:00
1/7

Hand Blown Glass Hummingbird Feeder - 34 Ounces - Comet

$27.95
$0.00
Save $-27.95
Quantity
Weight: 0kg
Barcode:

Handmade for the unparalleled

Glass blowing is an ancient and magical art that originated in the 1st century B.C. Loveiny's glass works are hand-crafted by artisans, with each product having unique color-ratio, pattern and shape.

During the manual blowing of the glass, the air cannot float, thus forming small bubbles. These bubbles represent the life of the glass.

The slight convex vertical line mark left on the glass during the blowing process, as well as the bubbles are proofs of hand-made craftsmanship.

Not only attracting, but also offering meticulous care to hummingbirds

- The base is equipped with perches for hummingbirds to rest instead of feeding when flying.

- Free from lead and other toxic substances, it is certified by the EU RoHS to ensure the safety of hummingbirds.

Other features

- The simple structure is easy to disassemble, the large bottle mouth easy to clean and easy to fill. The base is tightly sealed with a leak-proof gasket to prevent nectar from leaking.

- The durable glass is resistant to damage and fading. Compared with plastic bird feeders, it performs better in all weathers.

Nectar formula:

Mix water and sugar in the ratio of 4:1, boil and wait for it to cool down completely before pouring it into the feeder.

What's in the Box

- 1 hummingbird feeder (removable glass bottle and base)

- 1 ant moat, 1 S hook, 1 hemp rope (to hang the bird feeder)

- 1 brush (to clean the feeding hole)

OUR GUARANTEE

If you don’t have a positive shopping experience with loveiny, we will do whatever it takes to make sure you are 110% delighted and satisfied with your purchase.

Shopping online can sometimes be a daunting task, so we want you to know there is absolutely zero risks in purchasing something from loveiny and trying it out. If you don’t like it, no hard feelings, we’ll make it right.

We aim to be the #1 provider of the best quality online shopping experience for you. We are 110% committed to making sure you are completely satisfied. :)

If you have any question, please contact:support@loveiny.com.

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.