Diseño plano, que se ajusta cómodamente en la parte posterior de tu cabeza—perfecto para conducir, descansar o hacer yoga
Clip de tamaño medio sujeta fácilmente el pelo para semirrecogidos o recogidos completos
Usa un clip para un look sencillo o combina dos para un estilo versátil
Bonito tono bígaro eleva tu estilo con un sutil toque de color
El diseño en forma de arco mantiene tu cabello sujeto suavemente todo el día
Hecho de plástico reciclado para un peinado sostenible y con estilo
Fácil, rápido y siempre con estilo—simplemente recoge una sección de tu cabello, gírala, sujétala con el clip y listo!
Consejo profesional: El Clip Nube funciona mejor en cabello seco o ligeramente húmedo para un agarre máximo. Si tienes el cabello ultra fino o sedoso, prueba agregar un poco de spray texturizante antes de usar para un agarre extra!
Plástico reciclado
{
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 = `Clip Nube Plano Brisa de Hortensia - Mediana`;
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');
});
}
}">
Comprados juntos frecuentemente
+
Total price:
Clip Nube Plano Brisa de Hortensia - Mediana
$18.00
$18.00
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">
El precio de referencia representa el precio al que se ofrecía anteriormente el producto o el precio de mercado estimado de artículos comparables en otros establecimientos. Dado que los precios suelen fluctuar, no podemos garantizar que el precio de referencia refleje el precio de mercado vigente en un momento determinado.
Al seleccionar una opción, se actualiza toda la página.