0 && vSalePrice < vRegPrice;
// Different calculations based on product condition
if (isNew) {
// For NEW products, calculate discount from MSRP
if (vMsrp > 0 && vPrice > 0) {
discountPercentage = Math.round((vMsrp - vPrice) / vMsrp * 100);
// Show badge if discount is 40% or more
if (discountPercentage >= 40) {
discountBadge.textContent = discountPercentage + '% OFF!';
discountBadge.style.display = 'inline-flex';
} else {
discountBadge.style.display = 'none';
}
} else {
discountBadge.style.display = 'none';
}
} else {
// For USED/refurbished products, calculate discount from regular price
if (isOnSale && vRegPrice > 0 && vPrice > 0) {
discountPercentage = Math.round((vRegPrice - vPrice) / vRegPrice * 100);
// Show badge if discount is 40% or more
if (discountPercentage >= 40) {
discountBadge.textContent = discountPercentage + '% OFF!';
discountBadge.style.display = 'inline-flex';
} else {
discountBadge.style.display = 'none';
}
} else {
discountBadge.style.display = 'none';
}
}
">

Sale!
0) {
const newIndex = currentIndex - 1;
const img = thumbs[newIndex].querySelector('img');
const fullUrl = img.dataset.fullUrl;
const srcset = img.dataset.srcset;
const alt = img.alt;
const tempImage = new Image();
tempImage.src = fullUrl;
const updateImages = () => {
currentLightboxImage = fullUrl;
currentLightboxSrcset = srcset;
currentLightboxAlt = alt;
currentIndex = newIndex;
requestAnimationFrame(() => {
thumbs[newIndex].click();
});
};
if (tempImage.complete) {
updateImages();
} else {
tempImage.onload = updateImages;
}
}
}
"
@keydown.arrow-right.window="
if (showLightbox) {
const thumbs = document.querySelectorAll('.gallery-thumb');
if (currentIndex < thumbs.length - 1) {
const newIndex = currentIndex + 1;
const img = thumbs[newIndex].querySelector('img');
const fullUrl = img.dataset.fullUrl;
const srcset = img.dataset.srcset;
const alt = img.alt;
const tempImage = new Image();
tempImage.src = fullUrl;
const updateImages = () => {
currentLightboxImage = fullUrl;
currentLightboxSrcset = srcset;
currentLightboxAlt = alt;
currentIndex = newIndex;
requestAnimationFrame(() => {
thumbs[newIndex].click();
});
};
if (tempImage.complete) {
updateImages();
} else {
tempImage.onload = updateImages;
}
}
}
"
@touchstart="
$event.target === $event.currentTarget && $event.preventDefault();
window.touchStartX = $event.touches[0].clientX;
"
@touchmove="
$event.target === $event.currentTarget && $event.preventDefault();
"
@touchend="
$event.target === $event.currentTarget && $event.preventDefault();
if (!window.touchStartX) return;
const touchEndX = $event.changedTouches[0].clientX;
const diff = touchEndX - window.touchStartX;
const threshold = 50; // minimum swipe distance
if (Math.abs(diff) >= threshold) {
const thumbs = document.querySelectorAll('.gallery-thumb');
if (diff > 0 && currentIndex > 0) {
// Swipe right - go to previous
const newIndex = currentIndex - 1;
const img = thumbs[newIndex].querySelector('img');
const fullUrl = img.dataset.fullUrl;
const srcset = img.dataset.srcset;
const alt = img.alt;
const tempImage = new Image();
tempImage.src = fullUrl;
const updateImages = () => {
currentLightboxImage = fullUrl;
currentLightboxSrcset = srcset;
currentLightboxAlt = alt;
currentIndex = newIndex;
requestAnimationFrame(() => {
thumbs[newIndex].click();
});
};
if (tempImage.complete) {
updateImages();
} else {
tempImage.onload = updateImages;
}
} else if (diff < 0 && currentIndex < thumbs.length - 1) {
// Swipe left - go to next
const newIndex = currentIndex + 1;
const img = thumbs[newIndex].querySelector('img');
const fullUrl = img.dataset.fullUrl;
const srcset = img.dataset.srcset;
const alt = img.alt;
const tempImage = new Image();
tempImage.src = fullUrl;
const updateImages = () => {
currentLightboxImage = fullUrl;
currentLightboxSrcset = srcset;
currentLightboxAlt = alt;
currentIndex = newIndex;
requestAnimationFrame(() => {
thumbs[newIndex].click();
});
};
if (tempImage.complete) {
updateImages();
} else {
tempImage.onload = updateImages;
}
}
}
window.touchStartX = null;
"
x-data="{
isFirstImage() {
return currentIndex === 0;
},
isLastImage() {
const thumbs = document.querySelectorAll('.gallery-thumb');
return currentIndex === thumbs.length - 1;
}
}">
0) {
// Determine if we're before or after cutoff
const now = new Date();
const hour = now.getHours();
const isBeforeCutoff = hour < 14;
availabilityMessageElements.forEach(element => {
if (isBeforeCutoff) {
element.textContent = 'Same-Day Delivery!';
} else {
element.textContent = 'Order Online';
}
});
}
} else {
deliveryNoteElement.textContent = 'Local Delivery Available';
// Update all availability message elements
if (availabilityMessageElements && availabilityMessageElements.length > 0) {
availabilityMessageElements.forEach(element => {
element.textContent = 'Order Online';
});
}
}
}
}
// Update main product image
const mainImage = document.querySelector('#main-product-image');
if (mainImage && v?.image_url) {
mainImage.style.opacity = 0;
setTimeout(() => {
const hasVariationImage = v.has_variation_image === true || v.has_own_image === true;
mainImage.src = v.image_url;
mainImage.srcset = hasVariationImage ? (v.image_srcset || '') : '';
mainImage.style.backgroundColor = hasVariationImage ? '' : (v.main_image_background_color || '#f3f4f6');
mainImage.style.objectFit = hasVariationImage ? 'cover' : 'contain';
mainImage.style.padding = hasVariationImage ? '0' : '1.75rem';
mainImage.style.opacity = 1;
}, 150);
}
">
Casio AP-300 Console Digital Piano
NewDigital Piano - Console
The Celviano AP-300WE is a white digital cabinet piano featuring rich Hamburg grand sound, Bluetooth connectivity, and a traditional design.
5-Year Limited Manufacturer Warranty (In-Home)
100% 2 Years Trade-Up Credit
Matching Bench Included
Available in Store
Price:
$1,59999
MSRP:
$2,600
While we make every effort to provide accurate pricing and availability, occasional errors may occur. All prices and availability are subject to change without notice. We reserve the right to cancel or refuse any purchase made based on incorrect pricing.
Description
Perfect for students and families, the AP-300WE offers beautiful tone and versatility in a white cabinet. This model features 88 full-size weighted keys, 19 onboard tones, and Casio's AiR Sound Source with acoustic simulations like damper and string resonance. Includes USB, MIDI, Bluetooth, audio recording, and an adjustable matching bench.
Specs
- Finish: White
- Keyboard:
- Keys: 88 full-size weighted, scaled hammer action
- Surface: Ebony & ivory touch keys
- Touch Response: Yes
- Polyphony: 192-note
- Sound Engine:
- Type: AiR Sound Source
- Piano Voice: Hamburg grand
- Built-in Tones: 19
- Acoustic Simulation Features:
- Hammer response
- Damper resonance
- String resonance
- Key off simulation
- Damper noise
- Key on/off action noise
- Performance Features:
- Duet mode
- Layer and octave shift
- Hall simulator
- 60 built-in songs
- Recording & Playback:
- 1-song / 2-track MIDI recorder
- Audio recording/playback
- Connectivity:
- USB: Host & Device
- USB-MIDI: Yes
- Bluetooth: WU-BT10 Adapter Included
- Headphone Jacks: 2
- Pedals: 3
- Speaker System:
- Output: 2 x 20W
- Cabinet & Accessories:
- Soft-close keyboard cover
- Moveable top lid
- Matching adjustable bench
- ADE24250 power adapter (included)



