We are Leaping Bunny certified! The Leaping Bunny Logo is the only internationally recognized symbol guaranteeing consumers that no new animal tests were used in the development of any product displaying it.
{
discount_percentage = $event.detail?.percentage || 0;
})"
x-init="$watch('selected', value => {
if (value.length != total_items) {
discount_percentage = 0;
}else{
discount_percentage = 0;
}
})"
x-data="{
renderPrice(price){
let total = price;
if(this.discount_percentage > 0){
total = price - (price * (this.discount_percentage / 100));
}
return Unick.formatMoney(total);
},
selected: [],
fixed_product: false,
discount_percentage: 0,
total_items: 3,
imgSrc(src, width) {
if (!src) return '';
if (/[?&]width=/.test(src)) return src.replace(/([?&]width=)\d+/, '$1' + width);
return src + (src.includes('?') ? '&' : '?') + 'width=' + width;
},
getSrcset(src) {
if (!src) return '';
return [72, 100, 144, 200].map(w => this.imgSrc(src, w) + ' ' + w + 'w').join(', ');
},
add(item) {
this.selected.push(item)
},
remove(id) {
this.selected = this.selected.filter(item => item.id !== id)
},
isInBundle(id) {
return this.selected.some(item => item.id === id)
},
priceBeforeDiscount(){
let total = 0;
this.selected.forEach(function (item) {
total += item.price;
})
return total;
},
totalPrice(){
let total = 0;
this.selected.forEach(function (item) {
total += item.price;
})
total = total - (total * (this.discount_percentage / 100));
let extraDiscount = 0;
let discount = 0;
this.selected.forEach(function (item) {
item.tags.forEach(function (tag) {
if(tag.includes('discount:') || tag.includes('Discount:') || tag.includes('discount: ') || tag.includes('Discount: ')){
discount = tag.split(':')[1];
}
})
})
if(discount > 0){
extraDiscount = total * (discount / 100);
}
return total - extraDiscount;
},
addToCart(){
let cartObj = [];
let bundleTitle = `シアーバイオレット ヘアパフューム`;
let bundleHandle = `シアーバイオレットヘアパフューム`;
let bundleCount = 3;
let bundleQty = 1;
let index = 0;
// Update button text to 'adding...'
this.$refs.addToCartButton.textContent = 'Adding...';
this.selected.forEach(function (item) {
cartObj.push({
quantity: 1,
id: item.variants[0].id,
properties: {
'_fbt_bundle': bundleTitle,
'_fbt_bundle_handle': bundleHandle,
'_fbt_bundle_count': bundleCount,
}
})
})
if(this.fixed_product && this.total_items == this.selected.length){
cartObj = [];
cartObj.push({
quantity: 1,
id: this.fixed_product,
})
}
fetch(routes.cart_add_url + '.js', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
items: cartObj
})
})
.then(response => {
// Update button text back to 'add to cart'
this.$refs.addToCartButton.textContent = 'Add to cart';
// Update cart with event dispatch
this.$dispatch('update-cart', { cart: response });
// Open cart after adding product
this.$dispatch('toggle-cart-drawer');
});
}
}">
Register to receive a notification when this item comes back in stock.
Please enter a valid email address.
Thanks for signing up! We'll send you an email when the product becomes available.
{
let mainAddToCart = document.querySelector('.product__info-wrapper .button-add-to-cart, .product__info-wrapper .product-form__submit');
if(mainAddToCart) {
let rect = mainAddToCart.getBoundingClientRect();
// Hide floating cart when main button is visible (with some buffer)
show = rect.top > window.innerHeight || rect.bottom < 0;
} else {
// If main button not found, show floating cart
show = true;
}
})"
x-init="$nextTick(() => {
// Delay initialization to ensure Alpine has rendered the main add-to-cart button
setTimeout(() => {
let mainAddToCart = document.querySelector('.product__info-wrapper .button-add-to-cart, .product__info-wrapper .product-form__submit');
if(mainAddToCart) {
let rect = mainAddToCart.getBoundingClientRect();
show = rect.top > window.innerHeight || rect.bottom < 0;
} else {
// Fallback: show sticky cart if main button not found after delay
show = true;
}
}, 500);
})"
class="add-to-cart-footer p-3 bg-white text-black fixed bottom-0 w-full z-20 shadow border-t">
Kitsch Hair Perfume is your super-powered hair scent, designed to eliminate odors instead of just masking them. Powered by a first-of-its-kind, patented odor-eliminating technology, it refreshes your hair between washes while leaving behind an irresistible fragrance.
Unlike traditional hair perfumes that simply cover up bad smells, ours uses patented odor-eliminating molecules that attach to the source of unwanted odors, transforming them into a neutral-smelling compound. No lingering smoke, sweat, or mystery smells—just fresh, clean-smelling hair.
Absolutely! These scents are designed to mix and match. Here are some layering ideas:
- For a sun-kissed, beachy sweetness, layer Warm Sugar and Amber Shores.
- For a cozy yet sophisticated scent, layer Pistachio Latte and Amber Shores.
- For a soft, floral sweetness, layer Sheer Violet and Warm Sugar.
- For a fun, floral-gourmand fusion, layer Sheer Violet and Pistachio Latte.
- For a fresh yet sultry contrast, layer Sheer Violet and Amber Shores.
Just spritz it directly onto dry hair from about 6-8 inches away to refresh and scent your strands. You can also use it on your body for a head-to-toe scent boost or your pillow for a dreamy fragrance experience.
Yes! Our formula is sheer, lightweight, and non-greasy, so it won’t weigh your hair down or leave it feeling sticky. It’s also free from harsh chemicals and designed to be gentle on all hair types.
Yes, our hair perfume contains alcohol denat., a cosmetic-grade alcohol that evaporates quickly to help the fragrance disperse beautifully—without leaving hair sticky or heavy. And while typical eau de parfums contain around 80% alcohol, our fragrances average 60%.
While it does contain alcohol denat., this type of alcohol is used in fragrances to help the scent disperse beautifully without leaving behind residue or buildup. It won’t strip moisture when used as directed—just leave you with deliciously scented, touchable hair! We also use highly purified Deionized (Type II) Water, which helps with longevity and stability, while also making it skin-friendly.
Ours actually eliminates odors—no masking here! The patented odor-eliminating molecules, used for the first time ever, neutralize bad smells at the source. Crafted by a world-renowned fragrance house, it also features a clean formula free from any direct synthetic CMRs (Carcinogens, Mutagens, Reproductive Toxins), phthalates, parabens, and PFAS.
Kitsch Hair Perfume is a sheer, buildable scent that lingers nicely without being overpowering. To refresh later in the day, reapply as needed.
For best results, we recommend using it on dry hair.
No! Kitsch Hair Perfume is not a dry shampoo, but it works great alongside one! While dry shampoo absorbs oil and adds volume, Hair Perfume eliminates odors and leaves your hair smelling incredible. (For a dry shampoo, try our Volumizing Rice Protein Dry Shampoo!)
Yes! It comes in a perfectly packable size, so you can throw it in your purse, gym bag, or suitcase for on-the-go freshness.
Comp. Value represents the price that was previously offered for the product or the estimated market price for comparable items elsewhere. As prices often fluctuate, we cannot guarantee that the comp value price reflects the prevailing market price at any given time.