Joyside 11 x 11 Ft Outdoor Steel Pergola with Canopy
Joyside 11 x 11 Ft Outdoor Steel Pergola with Canopy
Joyside 11 x 11 Ft Outdoor Steel Pergola with Canopy
Joyside 11 x 11 Ft Outdoor Steel Pergola with Canopy
Joyside 11 x 11 Ft Outdoor Steel Pergola with Canopy
Joyside 11 x 11 Ft Outdoor Steel Pergola with Canopy
Joyside 11 x 11 Ft Outdoor Steel Pergola with Canopy
Joyside 11 x 11 Ft Outdoor Steel Pergola with Canopy
Joyside 11 x 11 Ft Outdoor Steel Pergola with Canopy
Joyside 11 x 11 Ft Outdoor Steel Pergola with Canopy
Joyside 11 x 11 Ft Outdoor Steel Pergola with Canopy
Joyside 11 x 11 Ft Outdoor Steel Pergola with Canopy
Joyside 11 x 11 Ft Outdoor Steel Pergola with Canopy
Joyside 11 x 11 Ft Outdoor Steel Pergola with Canopy
Joyside 11 x 11 Ft Outdoor Steel Pergola with Canopy
Joyside 11 x 11 Ft Outdoor Steel Pergola with Canopy
Joyside 11 x 11 Ft Outdoor Steel Pergola with Canopy
Joyside 11 x 11 Ft Outdoor Steel Pergola with Canopy

Joyside 11 x 11 Ft Outdoor Steel Pergola with Canopy

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

About this item

  • REMOVABLE SIDEWALLS - The pergola comes with sidewalls with breathable & fade-resistant fabric, which can help create an area of shade where users can enjoy good airflow and complete privacy while being free from sun exposure and bugs biting(Equipped the straps for more convenient use).
  • ANCHORING PLATES - Powder-coated steel anchoring plates (with caps and stakes that matches the steel brackets) make it much easier to firmly mount on various terrains. The plate is produced with rustproof steel and it’s hassle-free to keep it fixed with durability.
  • REINFORCED STRUCTURE - With an all-aluminum top frame, 4 galvanized metal steel posts and 8 arched braces(all powder-coated, ensuring it to be rust-resistant), this pergola is formed in a well-constructed structure which is more sturdy and not easy to tip over, making it an ideal shade tent for patio use.
  • TEXTILENE FABRIC CANOPY - This pergola features a 450g/sqm TEXTILENE fabric canopy which is CPAI-84 flame resistant, exceedingly elastic and able to provide UPF50+ UV protection. Besides, it has a stunning performance in breathability and tear-resistance, enabling to sustain years of use.
  • EXTENDED EAVES for DIY - Designed with 4 extended eaves convenient for hanging any decoration you want to throw onto this pergola. Let your creativity help built a pergola that only belongs to you, and immerse yourself in a camping vibe.

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.