Mühelos, flaches Design sitzt bequem am Hinterkopf—perfekt zum Autofahren, Entspannen oder Yoga
Großer Clip sichert mühelos Strähnen fürhalboffene oder vollständige Hochsteckfrisuren
Verwende einen Clip für einen einfachen Look oder stapele zwei zusammen für vielseitiges Styling
Schöne tiefblaue Nuance verleiht Ihrem Stil eine subtile Farbnote
Sanfte, aber starke Zähne greifen alle Haartypen ohne zu verhaken oder zu rutschen
Hergestellt aus recyceltem Kunststoff, damit Sie nachhaltig stylen können
Einfach, schnell und immer stilvoll—sammle einfach eine Sektion deines Haares, drehe sie, clipse sie ein und los geht's!
Profi-Tipp: Der Cloud Clip funktioniert am besten bei trockenem oder leicht feuchtem Haar für maximalen Halt. Wenn du ultrafeines oder seidiges Haar hast, versuche, vor dem Styling etwas Texturspray hinzuzufügen, um zusätzlichen Halt zu erhalten!
Recycelter Kunststoff
{
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: 4,
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;
return total - extraDiscount;
},
addToCart(){
let cartObj = [];
let bundleTitle = `Flacher Wolkenclip Blaue Orchidee - Groß`;
let bundleHandle = `blue-orchid-flat-cloud-clip-large`;
let bundleCount = 4;
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');
});
}
}">
Registrieren Sie sich, um eine Benachrichtigung zu erhalten, wenn dieser Artikel wieder auf Lager ist.
Bitte geben Sie eine gültige E-Mail Adresse ein.
Danke für die Anmeldung! Wir schicken Ihnen eine E-Mail, sobald das Produkt wieder verfügbar ist.
{
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">
Der Vergleichspreis entspricht dem Preis, zu dem das Produkt zuvor angeboten wurde, oder dem geschätzten Marktpreis vergleichbarer Artikel bei anderen Anbietern. Da Preise häufig schwanken, können wir nicht garantieren, dass der Vergleichspreis zu einem bestimmten Zeitpunkt dem aktuellen Marktpreis entspricht.
Wenn du dich für eine Auswahl entscheidest, wird die Seite komplett aktualisiert.