text.skipToContent text.skipToNavigation

VTech My Laptop - Pink

  • Age: 3 - 6 years
£20.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

Kids will be computing with confidence thanks to the VTech My Laptop - Pink

This pre-school laptop comes with a child-friendly mouse and 30 educational activities. Your little one will learn early computer skills and age-appropriate subjects, including counting and spelling. Customise your child’s experience by entering their name, age and favourite food in the All About Me Mode. You can also create a personal avatar, choose a screen wallpaper and opening tune. Easy to use and full of fun learning activities, the VTech My Laptop is a great introduction to the world of computers.

  • Includes: VTech My Laptop in pink
  • 40+ songs, melodies, sounds and phrases
  • Teaches phonics, counting, letters and instruments
  • Battery Requirements: 2 x AA (included)
  • Approximate Dimensions: 20.9cm x 27.1cm x 6.8cm
  • Suitable for ages 3 years +

Specifications

    • Age:
  • Height: Width: Depth: Weight:
  • Batteries Required:
  • Manufacturer:
  • Manufacturer Number:
  • Our Product Number:
  • Safety Information:

Reviews