Crea recogidos franceses pulidos, semirrecogidos y peinados elegantes en segundos
Úsalo solo o combina ambos peines para mayor sujeción y versatilidad de peinado
Sus dientes suaves y redondeados se deslizan cómodamente en el cabello sin jalar ni engancharse
Su diseño ligero sujeta el cabello de forma segura sin sentirse voluminoso
Su tamaño compacto facilita peinados rápidos y retoques sobre la marcha
Hecho de plástico reciclado resistente
Su tono negro atemporal combina con todo, desde looks diarios hasta el infaltable vestido negro
Desliza un peine en el cabello para sujetar secciones o fijar un semirrecogido. Para recogidos franceses y peinados, usa ambos peines en lados opuestos para mayor sujeción y equilibrio. Ajusta según sea necesario para un ajuste cómodo y seguro.
{
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;
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 = `Set de 2 Peines Franceses - Negro`;
let bundleHandle = `black-french-hair-combs-2pc-set`;
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');
});
}
}">
Acquistati spesso insieme
+
Total price:
Set de 2 Peines Franceses - Negro
$ 243.00
$ 243.00
Set de 2 Peines Franceses - Tort
$ 243.00
$ 243.00
Cerchietto a Zig Zag 2pz - Nero e Tartarugato
$ 364.00
$ 364.00
Registratevi per ricevere una notifica quando questo articolo sarà di nuovo disponibile.
Inserire un indirizzo e-mail valido.
Grazie per esserti iscritto/a! Ti invieremo un'e-mail quando il prodotto sarà disponibile.
{
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">
Il prezzo di confronto rappresenta il prezzo al quale il prodotto era precedentemente offerto o il prezzo di mercato stimato per articoli comparabili venduti altrove. Poiché i prezzi possono variare frequentemente, non possiamo garantire che il prezzo di confronto rifletta il prezzo di mercato corrente in un determinato momento.
Scegliendo una selezione si ottiene un aggiornamento completo della pagina.