text.skipToContent text.skipToNavigation

Fisher-Price Smart Stages Interactive Puppy

  • Age: 6 months - 3 years
£17.00
Discontinued

12 Surprises of Christmas

December 1, 2025 0/12 doors opened
There's a new festive gift, discount code or fabulous prize draw every day until 15th December. Unlock each door at 9am - some offers are only available in limited numbers and are first-come, first-served so don't leave it too late!
Calendar doors will be generated by JavaScript
🎁

Day 1

Special Offer

20% OFF

Use code at checkout:

CODE20
Code copied to clipboard

* Offer valid until December 31st, 2025. Terms and conditions apply.

// Advent Calendar Data const adventOffers = [ { day: 4, dayNumber: 1, title: '', discount: "25% off", description: "Selected Gabby's Dollhouse toys", code: "GABBY25", color: "#AE1F23", emoji: '', link: 'https://www.thetoyshop.com/c/daily-deals', linkText: 'Shop Now', codeUsed: true, terms: 'Offer ends 5th December 2025 at 9am Terms and conditions apply' }, { day: 5, dayNumber: 2, title: '', discount: "Free Toothless soft toy", description: "When you spend £40 or more via home delivery", code: "x200 available", color: "#AE1F23", emoji: "", link: 'https://www.thetoyshop.com/c/all-categories', linkText: 'Shop Now', codeUsed: false, terms: 'Styles vary. While stocks last. Offer ends 6th December, 2025 Terms and conditions apply' }, { day: 6, dayNumber: 3, title: '', discount: "Win a Jurassic World Toy Bundle", description: "x3 Jurassic World prize bundles", code: "", color: "#AE1F23", emoji: '', link: 'https://www.thetoyshop.com/jurassic-bundle-prize-draw', linkText: 'Enter Now', codeUsed: false, terms: 'Closes Sunday, 7th December 2025 at 9am Terms and conditions apply' }, { day: 7, dayNumber: 4, title: '', discount: "Win a Wicked beauty bundle", description: "x3 to be won", code: "", color: "#AE1F23", emoji: '', link: 'https://www.thetoyshop.com/wicked-bundle-prize-draw', linkText: 'Enter Now', codeUsed: false, terms: 'Closes Monday, 8th December 2025 at 9am Terms and conditions apply' }, { day: 8, dayNumber: 5, title: '', discount: "20% off", description: "Selected Wicked dolls", code: "WICKED20", color: "#AE1F23", emoji: '', link: 'NOW https://www.thetoyshop.com/c/all-categories', linkText: 'Shop Now', codeUsed: true, terms: 'Offer ends Tuesday, 9th December 2025 at 9am Terms and conditions apply' }, { day: 9, dayNumber: 6, title: '', discount: "20% off", description: "Selected How to Train your Dragon action figures ", code: "DRAGON20", color: "#AE1F23", emoji: '', link: 'https://www.thetoyshop.com/c/daily-deals', linkText: 'Shop Now', codeUsed: true, terms: 'Offer ends 10th December 2025 at 9am Terms and conditions apply' }, { day: 10, dayNumber: 7, title: '', discount: "Free Jurassic World soft toy", description: "When you spend £40 or more via home delivery", code: "x200 available", color: "#AE1F23", emoji: '', link: 'https://www.thetoyshop.com/c/all-categories', linkText: 'Shop Now', codeUsed: false, terms: 'While stocks last. Offer ends 11th December, 2025 Style vary. Terms and conditions apply' }, { day: 11, dayNumber: 8, title: '', discount: "Free Wicked bag clip", description: "When you spend £40 or more via home delivery", code: "x200 available", color: "#AE1F23", emoji: '', link: 'https://www.thetoyshop.com/c/all-categories', linkText: 'Shop Now', codeUsed: false, terms: 'While stocks last. Offer ends 12th December, 2025 Styles vary. Terms and conditions apply' }, { day: 12, dayNumber: 9, title: '', discount: "20% off", description: "Selected Jurassic World action figures ", code: "DINO20", color: "#AE1F23", emoji: '', link: 'https://www.thetoyshop.com/c/daily-deals', linkText: 'Shop Now', codeUsed: true, terms: 'Offer ends 13th December 2025 at 9am Terms and conditions apply' }, { day: 13, dayNumber: 10, title: '', discount: "Win a Gabby's Dollhouse bundle", description: "x3 to be won", code: "", color: "#AE1F23", emoji: '', link: 'https://www.thetoyshop.com/gabbys-dollhouse-bundle-prize-draw', linkText: 'Enter Now', codeUsed: false, terms: 'Closes 14th December 2025 at 9am Terms and conditions apply' }, { day: 14, dayNumber: 11, title: '', discount: "Win a How to Train Your Dragon bundle", description: "x3 to be won", code: "", color: "#AE1F23", emoji: '', link: 'https://www.thetoyshop.com/httyd-bundle-prize-draw', linkText: 'Enter Now', codeUsed: false, terms: 'Closes 15th December 2025 at 9am Terms and conditions apply' }, { day: 28, dayNumber: 12, title: '', discount: "Win a magical weekend in France", description: "", code: "", color: "#AE1F23", emoji: '', link: 'https://www.thetoyshop.com/wicked-france-prize-draw', linkText: 'Enter Now', codeUsed: false, terms: 'Closes 31st December 2025 at 11:59pm Terms and conditions apply' }, ]; // Global state let openedDoors = new Set(); let selectedDoor = null; // Initialize the page document.addEventListener('DOMContentLoaded', function() { loadOpenedDoors(); updateCurrentDay(); generateCalendar(); updateProgress(); setupEventListeners(); // const reviews = document.querySelectorAll('.door-number'); // const maxAngle = 10; // const minAngle = -10; // reviews.forEach(review => { // const randomAngle = Math.floor(Math.random() * (maxAngle - minAngle + 1)) + minAngle; // review.style.transform = `rotate(${randomAngle}deg)`; // }); }); // Load opened doors from localStorage function loadOpenedDoors() { // remove to store when done localStorage.removeItem('advent-opened-doors'); const saved = localStorage.getItem('advent-opened-doors'); if (saved) { openedDoors = new Set(JSON.parse(saved)); } } // Save opened doors to localStorage function saveOpenedDoors() { localStorage.setItem('advent-opened-doors', JSON.stringify([...openedDoors])); } // Update current day display function updateCurrentDay() { const currentDay = new Date().getDate(); document.getElementById('current-day').textContent = currentDay; } // Check if date is available // Check if date is available function isDateAvailable(day) { const today = new Date().getDate(); const currentMonth = new Date().getMonth(); const currentTime = new Date(); const currentHour = currentTime.getHours(); return true; // Today at 9am or later if (currentMonth === 10 && day === today && currentHour >= 9) { return true; } // Yesterday until 9am today (gives users until 9am next day to claim) if (currentMonth === 10 && day === today - 1 && currentHour < 9) { return true; } //return true; return false; } function isDatePast(day) { const today = new Date().getDate(); const currentMonth = new Date().getMonth(); const currentTime = new Date(); const currentHour = currentTime.getHours(); // More than 1 day ago if (currentMonth === 10 && day < today - 1) { return true; } if (currentMonth === 10 && day === today - 1 && currentHour >= 9) { return true; } return false; } // Get current day function getCurrentDay() { return new Date().getDate(); } // Get current month function getCurrentMonth() { return new Date().getMonth(); } // Get current hour function getCurrentHour() { const currentTime = new Date(); const currentHour = currentTime.getHours(); return currentHour; } // Generate calendar grid function generateCalendar() { const calendarGrid = document.getElementById('calendar-grid'); calendarGrid.innerHTML = ''; adventOffers.map(offer => { const door = document.createElement('div'); door.className = 'calendar-door'; door.dataset.day = offer.day; const isOpened = openedDoors.has(offer.day); const isAvailable = isDateAvailable(offer.day); const isToday = getCurrentDay() === offer.day && getCurrentMonth() === 10 && getCurrentHour() >= 9; const isPast = isDatePast(offer.day); // Add appropriate classes if (isOpened) { door.classList.add('opened'); } else if (isPast) { door.classList.add('opened'); door.classList.add('past'); } else if (isAvailable || isToday) { door.classList.add('available'); } else { door.classList.add('locked'); } if (isToday) { door.classList.add('today'); } // Create door locked const doorContent = document.createElement('div'); doorContent.className = 'door-content'; // Door number const doorNumber = document.createElement('div'); doorNumber.className = `door-number ${isOpened ? 'opened' : ''}`; doorNumber.textContent = offer.dayNumber; doorContent.appendChild(doorNumber); // Door main content if (isPast || isOpened) { const openedContent = document.createElement('div'); openedContent.className = 'door-opened'; const emoji = document.createElement('div'); emoji.className = 'door-emoji'; emoji.innerHTML = offer.emoji; openedContent.appendChild(emoji); emoji.appendChild(doorNumber); const title = document.createElement('div'); title.className = 'door-title'; title.textContent = offer.title; openedContent.appendChild(title); const discount = document.createElement('div'); discount.className = 'door-discount'; //discount.style.background = offer.color; discount.textContent = offer.discount; openedContent.appendChild(discount); doorContent.appendChild(openedContent); } else if (isAvailable || isToday) { const availableContent = document.createElement('div'); availableContent.className = 'door-available'; const openText = document.createElement('div'); openText.className = 'door-open-text'; openText.textContent = 'OPEN'; availableContent.appendChild(openText); doorContent.appendChild(availableContent); } door.appendChild(doorContent); // Add click event if (isAvailable || isToday) { door.addEventListener('click', () => handleDoorClick(offer.day)); } // if (isToday) { // const todayIndicator = document.createElement('div'); // todayIndicator.className = 'today-indicator'; // todayIndicator.textContent = '⭐'; // doorContent.appendChild(todayIndicator); // } calendarGrid.appendChild(door); }); } function random(max){ return Math.random() * (max - 0) + 0; } // Handle door click function handleDoorClick(day) { // if (openedDoors.has(day)) { // // Door already opened, just show the offer // return; // } // Open new door openedDoors.add(day); saveOpenedDoors(); // Update the door visually const door = document.querySelector(`[data-day="${day}"]`); door.classList.remove('available'); door.classList.add('opened'); // Regenerate the door content generateCalendar(); updateProgress(); // Show offer after animation setTimeout(() => { showOffer(day); }, 600); } // Show offer modal function showOffer(day) { const offer = adventOffers.find(o => o.day === day); // const sound = audios.find(o => o.id === day); // const indicator = document.getElementById('sound-indicator'); // indicator.src = sound.sound; // indicator.play(); if (!offer) return; selectedDoor = day; // Update modal content const modal = document.getElementById('offer-modal'); const modalContent = modal.querySelector('.advent-modal-content'); // Set background gradient //modalContent.style.background = offer.color; document.getElementById('offer-emoji').innerHTML = offer.emoji; document.getElementById('offer-day-number').textContent = offer.dayNumber; document.getElementById('offer-title').innerHTML = offer.title; document.getElementById('offer-discount').textContent = offer.discount; document.getElementById('offer-description').textContent = offer.description; document.getElementById('offer-code').textContent = offer.code; document.querySelector('.modal-actions .hero-button').textContent = offer.linkText; document.querySelector('.modal-actions .hero-button').setAttribute('href', offer.link); document.querySelector('.offer-terms').innerHTML = offer.terms; if (!offer.codeUsed) { document.querySelector('.offer-code-box').classList.add('hide'); } else { document.querySelector('.offer-code-box').classList.remove('hide'); } if (offer.code === '') { document.querySelector('.offer-code-box').classList.add('vanish'); } else { document.querySelector('.offer-code-box').classList.remove('vanish'); } var c = document.createDocumentFragment(); for (var i=0; i<70; i++) { var startX = Math.random() * 100; var styles = 'left: ${startX}%;\ transform: translate3d(' + (random(500) - 250) + 'px, ' + (random(200) - 50) + 'px, 0) rotate(' + random(360) + 'deg);\ background: #DAB96A;\ animation: bang 1.5s ease-out forwards;\ opacity: 0'; var e = document.createElement("i"); e.style.cssText = styles.toString(); modalContent.appendChild(e); } var e = document.createElement("i"); document.querySelector(`[data-day="${day}"]`).appendChild(c); // Show modal modal.classList.add('show'); //copy code document.querySelector('.offer-code').addEventListener('click', function() { var copyText = document.querySelector('.offer-code'); navigator.clipboard.writeText( copyText.textContent ); document.querySelector('.offer-code-box').classList.add('copied'); setTimeout(function() { document.querySelector('.offer-code-box').classList.remove('copied'); }, 2000); }); } // Close offer modal function closeOffer() { const modal = document.getElementById('offer-modal'); modal.classList.remove('show'); selectedDoor = null; } // Update progress function updateProgress() { let count = document.querySelectorAll('.door-opened').length; if (count < 12 && count !== 0) { count = count + 1 } const percentage = (count / 12) * 100; document.getElementById('doors-opened').textContent = count; document.getElementById('progress-fill').style.width = percentage + '%'; document.getElementById('progress-sleigh').style.marginLeft = percentage + '%'; } // Play sound effect function playSound(soundType = 'door') { const indicator = document.getElementById('sound-indicator'); switch (soundType) { case 'door': indicator.src = "https://assets.mixkit.co/active_storage/sfx/2988/2988-preview.mp3"; indicator.play(); break; case 'bell': indicator.src = "https://assets.mixkit.co/active_storage/sfx/939/939-preview.mp3"; indicator.play(); break; case 'magic': indicator.src = "https://www.zapsplat.com/wp-content/uploads/2015/sound-effects-77317/zapsplat_human_santa_says_ho_ho_ho_merry_christmas_77682.mp3"; indicator.play(); break; default: indicator.src = "https://www.zapsplat.com/wp-content/uploads/2015/sound-effects-344-audio/344_audio_christmas_reindeer_approach_left_to_right_207.mp3"; indicator.play(); } } // Setup event listeners function setupEventListeners() { // Modal close button document.getElementById('modal-close').addEventListener('click', closeOffer); // Modal background click document.getElementById('offer-modal').addEventListener('click', function(e) { if (e.target === this) { closeOffer(); } }); // Escape key to close modal document.addEventListener('keydown', function(e) { if (e.key === 'Escape' && selectedDoor) { closeOffer(); } }); }

How much does UK delivery cost?

Standard Delivery

FREE - when you spend over £49.99 or £3.99 for orders under £49.99

  • Delivery in 3-5 working days (excluding weekends and bank holidays)
  • Free delivery when you spend over £49.99 applies for UK mainland only

Next Day Delivery

£5.99 for all orders

  • Order by 7pm to receive delivery for the next working day (excluding weekends and bank holidays).
  • The Entertainer is closed on Sunday so orders placed before 2pm on Saturday for Next Day delivery will be with you on Monday. Orders placed after 2pm Saturday and on Sunday will be delivered to you on Tuesday.
  • Orders placed after 7pm will be delivered in 2 working days.
  • UK mainland only.
  • Next Day Delivery excludes online only and large sized items.

FREE Click & Collect

  • If your items are available in store, you can collect your order in as little as 30 minutes. 
  • Items that are not available in store will take 2-3 working days (excluding weekends and bank holidays) to be delivered to your nominated store.
  • Monday to Saturday during opening times.
  • You will be notified by email when your order is ready to collect from your chosen store

Say hello to your baby's first best friend! The Fisher-Price Smart Stages Interactive Puppy is soft, cuddly, and he's ready to make sure learning fun never ends.

He responds to your baby's touch with exciting sing-along songs and phrases that introduce more than 100 first words, parts of the body, colours, shapes and more.  Because every baby develops at their own pace, Puppy comes with Smart Stages technology, so you can choose the level that's best for your child. There are a variety of songs, sounds and phrases within each of the three levels of play. And Puppy's light-up, multicolor heart even twinkles along to the music.

  • Over 75 songs, sounds, tunes and phrases
  • Puppy’s hands, foot, ear and heart respond to baby’s touch
  • Press and hold the light up heart to hear fun songs
  • Supports baby's developing sensory and fine motor skills
  • Level 1 – Explore – Baby can press Puppy's hands, foot, heart, nose or ear to hear first words, colors, the alphabet, parts of the body and more
  • Level 2 – Encourage – In this level, fun phrases reward little ones as they're encouraged to count along, find colors, and identify parts of the body
  • Level 3 – Pretend – Puppy's ready to play pretend with fun sing-along songs and phrases that engage toddlers in exciting and imaginative play, all while expanding their vocabulary
  • Contents: 1 x Fisher-Price Smart Stages Interactive Puppy
  • Product dimensions 33 x 15 x 27.50 cm
  • Suitable for ages 6 months +

Specifications

    • Age:
  • Batteries Required:
  • Manufacturer:
  • Manufacturer Number:
  • Our Product Number:
  • Safety Information:

Reviews