Olivenorma French Classical Aromatherapy Decorative Ornament Candle Holder
Olivenorma French Classical Aromatherapy Decorative Ornament Candle Holder
Olivenorma French Classical Aromatherapy Decorative Ornament Candle Holder
Olivenorma French Classical Aromatherapy Decorative Ornament Candle Holder
Olivenorma French Classical Aromatherapy Decorative Ornament Candle Holder
Olivenorma French Classical Aromatherapy Decorative Ornament Candle Holder
Olivenorma French Classical Aromatherapy Decorative Ornament Candle Holder
Olivenorma French Classical Aromatherapy Decorative Ornament Candle Holder
Olivenorma French Classical Aromatherapy Decorative Ornament Candle Holder
Olivenorma French Classical Aromatherapy Decorative Ornament Candle Holder
Olivenorma French Classical Aromatherapy Decorative Ornament Candle Holder
Olivenorma French Classical Aromatherapy Decorative Ornament Candle Holder
Olivenorma French Classical Aromatherapy Decorative Ornament Candle Holder
Olivenorma French Classical Aromatherapy Decorative Ornament Candle Holder
Olivenorma French Classical Aromatherapy Decorative Ornament Candle Holder
Olivenorma French Classical Aromatherapy Decorative Ornament Candle Holder
Olivenorma French Classical Aromatherapy Decorative Ornament Candle Holder
Olivenorma French Classical Aromatherapy Decorative Ornament Candle Holder
Olivenorma French Classical Aromatherapy Decorative Ornament Candle Holder
Olivenorma French Classical Aromatherapy Decorative Ornament Candle Holder

Olivenorma French Classical Aromatherapy Decorative Ornament Candle Holder

Olivenorma's French Classical Aromatherapy Decorative Ornament Candle Holder transcends mere decoration, infusing spaces with a blend of elegance and tranquility. It harmonizes the ambiance, promoting relaxation and a deeper connection with the historical and cultural richness of French classical design.
Price
$43.11
$27.59
Save  $15.52
size
Please select a size
Quantity
This candle holder is not just a piece of decor but a gateway to an enriched sensory experience. Inspired by French classical artistry, its design invites a sense of peace and historical depth into any room. Perfect for aromatherapy, it enhances the atmosphere, aiding in stress relief and mental clarity. Its stable and smooth design ensures safety, making it an essential element for meditative spaces, intimate gatherings, or as a meaningful gift that speaks to the soul's longing for beauty and serenity.

This Olivenorma French Classical Aromatherapy Decorative Ornament Candle Holder is stable with a smooth surface for safe use and will not damage your furniture.Ideal decoration and ideal gift for holidays, such as gatherings, weddings, dinners, Christmas, etc. It is an ideal choice for home decor gifts, wedding gifts, new celebration gifts

HOW IT'S MADE

Made of cast iron and resin
Just put the candles in and light up your space with a dreamy soft light and make your own special night. You can place a shelf on a flat surface.

SPECIFICATIONS

  • Name: Olivenorma Resin Angel Desktop Ornaments Candle Holder
  • Category: Candle Holder
  • Origin: India
  • Size: Reference Picture
  • Gross Weight:120g

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.