Frei von Aufwand, flaches Design sitzt bequem am Hinterkopf—perfekt für Autofahren, Entspannen oder Yoga
Mittelgroße Klammer sichert mühelos Strähnen für halb-hoch oder voll aufgesteckte Frisuren
Verwende eine Klammer für einen einfachen Look oder stapele zwei für vielseitige Frisuren
Schöne periwinkle Farbe verleiht deinem Stil eine subtile Farbnote
Die bogenförmige Gestaltung hält dein Haar den ganzen Tag sanft in Position
Hergestellt aus recyceltem Kunststoff für eine nachhaltige und stilvolle Haarpflege
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 - Hortensienbrise | Medium`;
let bundleHandle = `hydrangea-breeze-flat-cloud-clip-medium`;
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');
});
}
}">
Häufig zusammen gekauft
+
Total price:
Flacher Wolkenclip - Hortensienbrise | Medium
$ 210.00
$ 210.00
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.