🔥Sale 49% OFF🔥Batana Hair Oil
🔥Sale 49% OFF🔥Batana Hair Oil
🔥Sale 49% OFF🔥Batana Hair Oil
🔥Sale 49% OFF🔥Batana Hair Oil
🔥Sale 49% OFF🔥Batana Hair Oil
🔥Sale 49% OFF🔥Batana Hair Oil
🔥Sale 49% OFF🔥Batana Hair Oil
🔥Sale 49% OFF🔥Batana Hair Oil
1/8
🔥Sale 49% OFF🔥Batana Hair Oil
🔥Sale 49% OFF🔥Batana Hair Oil
🔥Sale 49% OFF🔥Batana Hair Oil
🔥Sale 49% OFF🔥Batana Hair Oil
🔥Sale 49% OFF🔥Batana Hair Oil
🔥Sale 49% OFF🔥Batana Hair Oil
🔥Sale 49% OFF🔥Batana Hair Oil
🔥Sale 49% OFF🔥Batana Hair Oil
1/8

🔥Sale 49% OFF🔥Batana Hair Oil

$24.99
$49.98
Save $24.99
13286 sold
🎈Start your hair transformation journey🎈
Please select a 🎈start your hair transformation journey🎈
Quantity
/** @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-1539149753700').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);

Are you still troubled by the following problems?

Is your hair dry and frizzy, lifeless like straw?

Is your hair split and broken, difficult to manage?

Is your hair dull and lackluster?

BATANA OIL-One bottle solves all your hair troubles and helps you regain your charming radiance!

【BATANA OIL】Four core effects:

1. Deep nourishment, repair damage: Rich in essence, deeply penetrates the hair, repairs damage caused by perming, dyeing, sun exposure, etc., and restores hair to strong elasticity.

2. Locks in moisture and says goodbye to frizz: Forms a protective film on the surface of the hair to lock in moisture, prevents hair from drying and frizzing, and makes hair smooth, shiny, and easy to manage.

3. Brightens the luster and shines beautifully: The unique gloss factor instantly brightens the hair color, making the hair shine with a charming luster and attracting everyone's attention.

4. Light texture, refreshing and non-greasy: Light texture, easy to absorb, after use, the hair is refreshing and non-greasy, without any burden.

HOW TO USE: