SKU CODE {
const now = new Date().getTime();
const distance = endDate - now;
if (distance < 0) {
countdownEl.innerHTML = 'Offer Ended
';
return;
}
const days = Math.floor(distance / (1000 * 60 * 60 * 24));
const hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
const seconds = Math.floor((distance % (1000 * 60)) / 1000);
const daysEl = countdownEl.querySelector('[data-days]');
const hoursEl = countdownEl.querySelector('[data-hours]');
const minutesEl = countdownEl.querySelector('[data-minutes]');
const secondsEl = countdownEl.querySelector('[data-seconds]');
if (daysEl) daysEl.textContent = String(days).padStart(2, '0');
if (hoursEl) hoursEl.textContent = String(hours).padStart(2, '0');
if (minutesEl) minutesEl.textContent = String(minutes).padStart(2, '0');
if (secondsEl) secondsEl.textContent = String(seconds).padStart(2, '0');
};
updateCountdown();
setInterval(updateCountdown, 1000);
}
initStockBar() {
const stockBar = this.querySelector('[data-stock-bar]');
const stockRemaining = this.querySelector('[data-stock-remaining]');
if (!stockBar) return;
const remaining = this.stockTotal - this.stockSold;
const percentage = (remaining / this.stockTotal) * 100;
stockBar.style.width = percentage + '%';
if (stockRemaining) {
stockRemaining.textContent = remaining;
}
}
initVariantSelector() {
const variantButtons = this.querySelectorAll('[data-variant-id]');
const priceEl = this.querySelector('.ai-product-price-amcs5zki5amf4mulwbaigenblockf9357538rnepu');
const comparePriceEl = this.querySelector('.ai-product-compare-price-amcs5zki5amf4mulwbaigenblockf9357538rnepu');
variantButtons.forEach(button => {
button.addEventListener('click', () => {
if (button.classList.contains('unavailable')) return;
variantButtons.forEach(btn => btn.classList.remove('selected'));
button.classList.add('selected');
this.selectedVariantId = button.dataset.variantId;
const price = button.dataset.variantPrice;
const comparePrice = button.dataset.variantCompare;
if (priceEl && price) {
priceEl.textContent = this.formatMoney(price);
}
if (comparePriceEl && comparePrice) {
comparePriceEl.textContent = this.formatMoney(comparePrice);
}
});
});
if (variantButtons.length > 0) {
this.selectedVariantId = variantButtons[0].dataset.variantId;
}
}
initQuantitySelector() {
const minusBtn = this.querySelector('[data-quantity-minus]');
const plusBtn = this.querySelector('[data-quantity-plus]');
const input = this.querySelector('[data-quantity-input]');
if (!input) return;
if (minusBtn) {
minusBtn.addEventListener('click', () => {
const currentValue = parseInt(input.value) || 1;
if (currentValue > 1) {
input.value = currentValue - 1;
this.quantity = currentValue - 1;
}
});
}
if (plusBtn) {
plusBtn.addEventListener('click', () => {
const currentValue = parseInt(input.value) || 1;
const max = parseInt(input.max) || 10;
if (currentValue < max) {
input.value = currentValue + 1;
this.quantity = currentValue + 1;
}
});
}
input.addEventListener('change', () => {
const value = parseInt(input.value) || 1;
const min = parseInt(input.min) || 1;
const max = parseInt(input.max) || 10;
if (value < min) input.value = min;
if (value > max) input.value = max;
this.quantity = parseInt(input.value);
});
}
initActionButtons() {
const whatsappBtn = this.querySelector('[data-whatsapp-btn]');
const addToCartBtn = this.querySelector('[data-add-to-cart]');
const buyNowBtn = this.querySelector('[data-buy-now]');
if (whatsappBtn) {
whatsappBtn.addEventListener('click', (e) => {
e.preventDefault();
this.handleWhatsAppOrder();
});
}
if (addToCartBtn) {
addToCartBtn.addEventListener('click', () => {
this.handleAddToCart();
});
}
if (buyNowBtn) {
buyNowBtn.addEventListener('click', () => {
this.handleBuyNow();
});
}
}
handleWhatsAppOrder() {
const productTitle = this.querySelector('.ai-product-title-amcs5zki5amf4mulwbaigenblockf9357538rnepu').textContent.trim();
const productPrice = this.querySelector('.ai-product-price-amcs5zki5amf4mulwbaigenblockf9357538rnepu').textContent.trim();
const whatsappNumber = '';
const message = encodeURIComponent(
`Hi! I want to order:\n\nProduct: ${productTitle}\nPrice: ${productPrice}\nQuantity: ${this.quantity}\n\nPlease confirm availability.`
);
const whatsappUrl = `https://wa.me/${whatsappNumber}?text=${message}`;
window.open(whatsappUrl, '_blank');
}
handleAddToCart() {
const variantId = this.selectedVariantId || '42345681911879';
const formData = {
items: [{
id: variantId,
quantity: this.quantity
}]
};
fetch('/cart/add.js', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(formData)
})
.then(response => response.json())
.then(data => {
window.location.href = '/cart';
})
.catch(error => {
console.error('Error:', error);
alert('Error adding to cart. Please try again.');
});
}
handleBuyNow() {
const variantId = this.selectedVariantId || '42345681911879';
const formData = {
items: [{
id: variantId,
quantity: this.quantity
}]
};
fetch('/cart/add.js', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(formData)
})
.then(response => response.json())
.then(data => {
window.location.href = '/checkout';
})
.catch(error => {
console.error('Error:', error);
alert('Error processing order. Please try again.');
});
}
formatMoney(cents) {
const amount = cents / 100;
return '₹' + amount.toFixed(2);
}
}
customElements.define('conversion-product-amcs5zki5amf4mulwbaigenblockf9357538rnepu', ConversionProductamcs5zki5amf4mulwbaigenblockf9357538rnepu);
})();