Hand Woven Lace Wall Hanging Bohemian Boho Art Decor
Hand Woven Lace Wall Hanging Bohemian Boho Art Decor
Hand Woven Lace Wall Hanging Bohemian Boho Art Decor
Hand Woven Lace Wall Hanging Bohemian Boho Art Decor
Hand Woven Lace Wall Hanging Bohemian Boho Art Decor
Hand Woven Lace Wall Hanging Bohemian Boho Art Decor
Hand Woven Lace Wall Hanging Bohemian Boho Art Decor
Hand Woven Lace Wall Hanging Bohemian Boho Art Decor
Hand Woven Lace Wall Hanging Bohemian Boho Art Decor
Hand Woven Lace Wall Hanging Bohemian Boho Art Decor
Hand Woven Lace Wall Hanging Bohemian Boho Art Decor
Hand Woven Lace Wall Hanging Bohemian Boho Art Decor

Hand Woven Lace Wall Hanging Bohemian Boho Art Decor

Price
$59.00
$36.00
Save  $23.00
Quantity
Free worldwide shipping
Free returns
Sustainably made
Secure payments
Vendor by: Lighting & Décor
SKU: '24280

Hand Woven Macrame Wall Tapestry Hanging Bohemian Boho Art Decor Wedding Backdrop Home Bedroom Living Room Decoration Nordic Handmade Tassel Cotton.

Features:
  • A beautiful combination of Elegance and Bohemian Style in a Tapestry. This is a handcrafted Macrame Wall Hanging with beautiful delicate detail and a gorgeous fringe. It is great for a bedroom, living area, baby nursery, workspace or anywhere where you'd like to bring some texture and interest to your walls.
  • Macrame Wall Hanging is made of 100% Pure cotton cord. Sturdy, durable and premium quality. Beautiful wall art creates a sense of harmony and comfort for your room.
  • Its symmetrical design will fit in any interior. This wall hanging makes a perfect statement piece for hanging over the head of a bed or baby crib, over a couch, fireplace mantel or desk, or near a window for adding a cozy touch to your living or work space. Great decoration for party, wedding, or as photo props.
  • Improved tassel banner by simple and elegant design, meticulously handcrafted, as an eye-catching work of art. It will be a beautiful and practical gift for your family or friends, also great for housewarming, birthday, wedding, Christmas, and more!
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.