Rain Ede Chain Tassel Pendant Light Vjlight
Rain Ede Chain Tassel Pendant Light Vjlight
Rain Ede Chain Tassel Pendant Light Vjlight
Rain Ede Chain Tassel Pendant Light Vjlight
Rain Ede Chain Tassel Pendant Light Vjlight
Rain Ede Chain Tassel Pendant Light Vjlight
Rain Ede Chain Tassel Pendant Light Vjlight

Rain Ede Chain Tassel Pendant Light

$1,588.00
$0.00
-$-1,588.00
Certification: UL / CE / SAA
3-Years Warranty
Free Shipping For All Orders
Complimentary light bulbs (Dimmable bulbs)
SIZE-Diameter 50 cm
Please select a size
Quantity
 Vjlight

Product:

  • Bulbs Included: Yes
  • Bulb Base and Type: E14-LED
  • Dimmable Bulb: No
  • Dimmer Switch Compatible: Yes
  • Voltage Range: 90-260V
  • Power Source: AC
  • Certifications: UL/CE/SAA.
  • Installation Type: Flush Mount
  • Materials: Aluminum
  • Finish: Silver
  • Style: Modern
  • Application: Living room, dinning room, bedroom, hotel hallway, foyer entryway
  • Diameter 50 cm ( 19.7 in )
  • Diameter 68 cm ( 26.8 in )
  • Diameter 80 cm ( 31.5 in )

Features:

  • This modern LED tassel chandelier is sure to give your space a super neat and tidy vibe. The aluminum chain tassel hangs from a silver plated frame. The additional metal tassels and the unique shape of the base make this chandelier truly gorgeous. Available in a variety of sizes for small and large spaces

Customized Design is Acceptable. The dimension, quantity of lights, finish and shape of the canopy can all be changed. Chat with us first if necessary before you place an order.

If you have any questions, please contact us

    Shipping and Returns

    Shipping:

    • Free shipping worldwide, for the US and Canada we use DHL, UPS or Fedex Express. Delivery time is 7-12 days.
    • For lamps with a product size over 45 inches and a weight over 70kg, we use Mason Shipping and we will notify the customer as soon as possible after placing the order.
    • We can also provide expedited shipping if needed. Please see "Shipping Policy" for more information.

    Return:

    • We support unconditional returns within 30 days after receiving the product. For more information, see Returns and Refunds.
    • Warranty: (Free warranty for 2 years)
    • Includes all light sources. We support free replacement of most parts.

    If you have any further questions, please contact us.

    Step 1:

    All of our products come with free shipping, and each lighting fixture includes a complimentary light bulb. The listed price for website products includes shipping and all applicable taxes, so customers don't need to pay any additional fees.

    Step 2:

    Before placing an order, customers can refer to the website specifications. If any changes are needed in terms of color, material, wire length, lighting fixture type, or light bulb color temperature, please contact our customer service team. We offer free customization services; for more details, please visit the customization page.

    Step 3:

    Upon receiving an order, we will send an order confirmation email. Customers have a 24-hour window to cancel their order.

    Step 4:

    All lighting fixtures undergo a thorough inspection and are photographed prior to shipment. 

    Step 5:

    We will arrange the transportation method based on the size of the lighting fixture. Air transportation takes 5 to 8 days.If necessary, we can provide actual photos of the lighting fixtures and packaging.

    Step 6:

    Upon receiving your order, please promptly inspect the lighting fixtures. If any damage is observed, take photos or videos and contact our customer service team immediately. We will assist you with free returns or exchanges.

    Step 7:

    Within two years of installation, we offer complimentary replacement light bulbs for the lighting fixtures. If any small components are damaged, we also provide free replacement parts, such as crystal connectors, etc.

    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.

    Why Choose Us

     Vjlight

    30-day return: We pay for the return shipping

    Free customization: Customize the lamps quickly within seven days

    Factory price: We have our own factory, not a dealer

    Project support: We have completed dozens of large projects with customers

    /** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1725270891949').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);