Joyside Patio Propane Heater - Outdoor 41000BTU Freestanding Heater
Joyside Patio Propane Heater - Outdoor 41000BTU Freestanding Heater
Joyside Patio Propane Heater - Outdoor 41000BTU Freestanding Heater
Joyside Patio Propane Heater - Outdoor 41000BTU Freestanding Heater
Joyside Patio Propane Heater - Outdoor 41000BTU Freestanding Heater
Joyside Patio Propane Heater - Outdoor 41000BTU Freestanding Heater
Joyside Patio Propane Heater - Outdoor 41000BTU Freestanding Heater
Joyside Patio Propane Heater - Outdoor 41000BTU Freestanding Heater
Joyside Patio Propane Heater - Outdoor 41000BTU Freestanding Heater
Joyside Patio Propane Heater - Outdoor 41000BTU Freestanding Heater
Joyside Patio Propane Heater - Outdoor 41000BTU Freestanding Heater
Joyside Patio Propane Heater - Outdoor 41000BTU Freestanding Heater
Joyside Patio Propane Heater - Outdoor 41000BTU Freestanding Heater
Joyside Patio Propane Heater - Outdoor 41000BTU Freestanding Heater
Joyside Patio Propane Heater - Outdoor 41000BTU Freestanding Heater
Joyside Patio Propane Heater - Outdoor 41000BTU Freestanding Heater
Joyside Patio Propane Heater - Outdoor 41000BTU Freestanding Heater
Joyside Patio Propane Heater - Outdoor 41000BTU Freestanding Heater

Joyside Patio Propane Heater - Outdoor 41000BTU Freestanding Heater

Color-
Please select a color
$429.99
-$0.00
Quantity
Free Shipping
Ships Within 6-8 Business Days.
Sustainably Made
Secure Payments
SKU:

【High Power & Wide Heating Range】: This 41,000 BTU patio heater with stainless steel burner is CSA certified, providing stable and efficient heating. With heat range reaching up to 13 feet in diameter, this propane gas heater will create warm atmosphere
【Extra Weather-resistant Cover】: The heater comes with a waterproof cover to protect your heater when not in use. Note: please cover the fire pit after it cools down. What's more, made of premium material, this outdoor gas heater is rustproof for longer working life. The tempered windproof glass makes the flame burn stably outdoors
【Movable Wheels & Adjustable Feet for Options】: 2 universal wheels with 2 lockable wheels allow you to move it everywhere easily. In addition, 4 adjustable feet are provided to replace the wheels when needed for stability. The flame-out protection for added safety
【Simple Ignition System】: Step 1: attach to a 20lb propane gas cylinder(not included); step 2: press & turn the gas control knob and press the ignition button for 15 seconds. Besides, the excess flow valve and tank secure ring makes it easy to control and fix the gas tank
【Wide Application】: This outdoor heater with unique finish design adds a retro feel for the balcony, patio, poolside, restaurant and so on. Note: this outdoor heater is not for use on wood decks or other flammable surfaces. Minimum heater clearances from combustible materials: 3 ft from the sides and 5 ft from the top. Product dimension: 15" x 15" x 61"(L x W x H)

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.