Free shipping over $40
Car Vent Clip Aromatherapy Fragrance Diffuser
Car Vent Clip Aromatherapy Fragrance Diffuser
Car Vent Clip Aromatherapy Fragrance Diffuser
Car Vent Clip Aromatherapy Fragrance Diffuser
Car Vent Clip Aromatherapy Fragrance Diffuser
Car Vent Clip Aromatherapy Fragrance Diffuser
Car Vent Clip Aromatherapy Fragrance Diffuser
1 / 7
Car Vent Clip Aromatherapy Fragrance Diffuser
Car Vent Clip Aromatherapy Fragrance Diffuser
Car Vent Clip Aromatherapy Fragrance Diffuser
Car Vent Clip Aromatherapy Fragrance Diffuser
Car Vent Clip Aromatherapy Fragrance Diffuser
Car Vent Clip Aromatherapy Fragrance Diffuser
Car Vent Clip Aromatherapy Fragrance Diffuser
33% OFF
Save $10.00
goodidealshop

Car Vent Clip Aromatherapy Fragrance Diffuser

$19.99 $29.99
0 sold
Qty

MAIN FEATURES

  • 【Aromatherapy Diffuser for Car】the car oil aromatherapy diffuser helps to release your stress and create a charming atmosphere, and stay away from the unpleasant smell when you drive, aroma around you, bring you good mood.

  • 【Car Air Freshener Vent Clip】the car air diffusers freshener is only 2.2*2.1*1.6in (5.6*5.5*4cm), which is small and cute. With the stable vent clip, you can clip this wind driven fragrance to anywhere with wind, like air conditioning or fan in you car, home or office place, and the non-slip soft clips will not damage your car.

  • 【Fine Work High Quality Device】Not only a car fragrance but also a beautiful decoration, all part are carefully designed and processed, fine work with high quality material.
  • 【Retro Record Player Car Decor】air freshener for car is in record-player disc design, the aroma album can rotate with the air conditioning wind, bringing fragrance. Retro wood design, gold magnetic head, texture base, vinyl record, take you back to the era of record player.

  • 【Best Choice For Gifts】give you 3 different covers of replaceable records, 3 times lasting marine fragrance, and replace them with your mood and car music style, there is no doubt that it is the best choice for gifts, especially for those people who love record player.

SPECIFICATIONS

  • Package Dimensions: 3.82 x 3.46 x 2.01 inches
  • Weight: 50g

Shipping:

  • Free Shipping Over $30.
  • Orders will be processed within 7 business days of ordering and shipped out the next day after the processing day. Orders will generally be delivered within 7 to 14 working days.

Returns:Fast refund for any dissatisfaction within 15 days, 100% money-back guarantee.

Note:

  • Due to manual measurements, please allow slight measurement deviations.
  • Due to the different display and lighting effects, the actual color of the item may be slightly different from the color displayed on the picture.
/** @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-1711005325228').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);