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';
}
}
">

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;
}
}">
Hours
Min
Sec
Place your order before 2:00 PM for delivery today

0) {
// Added console.log for debugging
console.log('Variation same_day_delivery:', hasSameDayDelivery);
deliveryInfoSections.forEach(section => {
// Set display based on same_day_delivery status
section.style.display = hasSameDayDelivery ? 'block' : 'none';
});
}
// Update delivery message based on shipping class and same_day_delivery flag
if (deliveryNoteElement && (shippingClass === 'digital-pianos-and-keyboards' || shippingClass === 'large-accessories')) {
if (hasSameDayDelivery) {
deliveryNoteElement.textContent = 'Same-Day Local Delivery if Ordered by 2:00 PM';
// Update all availability message elements
if (availabilityMessageElements && availabilityMessageElements.length > 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?.main_image_id) {
mainImage.style.opacity = 0;
setTimeout(() => {
if (v.image_url) {
mainImage.src = v.image_url;
mainImage.srcset = v.image_srcset || '';
}
mainImage.style.opacity = 1;
}, 150);
}
">
Roland DP-603 Console Digital Piano
NewDigital Piano - Console
Experience the Roland DP603-CB, a sleek digital piano that combines minimalist design with advanced SuperNATURAL Piano Modeling technology. Its PHA-50 keyboard offers authentic grand piano touch, making it a perfect addition to modern living spaces.
3-Year Manufacturer Warranty (Carry-In)
100% 2 Years Trade-Up Credit
Free Local Delivery thru 3/31/25
Same-Day Local Delivery if Ordered by 2:00 PM
Available in Store
Price:
$3,29999
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
The Roland DP603-CB is a slim and stylish digital piano designed to complement modern living spaces. It combines minimalist aesthetics with advanced technology to provide an authentic piano experience.
Key Features
- SuperNATURAL Piano Modeling: Delivers rich, detailed grand piano sounds by replicating the complex interactions of an acoustic piano.
- PHA-50 Keyboard: Features a wood and plastic hybrid structure with escapement and ebony/ivory feel, providing authentic touch and durability.
- Bluetooth Connectivity: Allows wireless connection to smartphones and tablets for using apps and streaming audio through the piano's speaker system.
- Headphones 3D Ambience: Offers natural, realistic sound when practicing privately with headphones.
- Slim Cabinet Design: At just 13.5 inches (35 cm) deep, it fits seamlessly into contemporary interiors.
Specs
- Dimensions:
- Width: 55.1"
- Depth: 14.8"
- Height: 31"
- Weight: 101 lbs
- Keyboard: 88 keys, PHA-50 with escapement and ebony/ivory feel
- Sound Engine: SuperNATURAL Piano Modeling
- Polyphony: Limitless for piano tones; 384 for other tones
- Tones: 307
- Internal Songs: 363
- Speakers: 12 cm x 2
- Amplifier: 30 W x 2
- Connectivity: Bluetooth, USB