Skip to content

Shop Digitnet Store by Department

Premium Smart Locks for Modern Homes
SMART SECURITY

Premium Smart Locks for Modern Homes

Fingerprint, keypad, card, app and facial recognition access systems built for homes, offices and hotels.

✓ Genuine Products

Shop with confidence. Every product is quality-checked.

Digitnet Store focuses on reliable, original, and properly sourced products for homes, businesses, installers, and corporate buyers.

Verified product sourcing Clear product information Suitable for personal, business, and professional use
Explore Products
100% AuthenticQuality products you can trust
🔒 Safe Checkout

Secure payment options built for peace of mind.

Customers can complete orders with safe payment channels designed to make checkout simple, protected, and convenient.

Multiple payment methods Secure checkout experience Order confirmation after payment
Proceed to Checkout
Secure PaymentsSafe and convenient options
🚚 Fast Delivery

Reliable delivery support across Nigeria.

Digitnet Store helps customers receive their orders through dependable delivery options suitable for homes, offices, and project sites.

Delivery to major locations Order tracking support Careful handling for technical products
View Delivery Info
Nationwide DeliveryFast and reliable shipping
🎧 Expert Help

Technical guidance before and after purchase.

Get product advice, compatibility guidance, and support for smart devices, security products, networking, power solutions, and more.

Product recommendation support Technical buying guidance After-sales assistance
Contact Support
Technical SupportExpert help when you need it
♡ Warranty Cover

Warranty protection for eligible products.

Enjoy official warranty coverage where applicable, with support for eligible product concerns based on brand and product policy.

Warranty support on eligible products Clear product coverage guidance Support for warranty claims where applicable
View Warranty Policy
Warranty ProtectionOfficial product coverage

Shop by Solution

VIEW ALL
📹
Security Systems
🏠
Smart Home
☀️
Solar & Power
🌐
Networking
🔐
Access Control
🖨
Office Automation

Recently Added

VIEW ALL
Sale
Testing a New Produc (Copy)
Testing a New Produc (Copy)
★★★★★5.0 · 1 reviews
MOQ: 1CE FCC Compliant
 1,500.0050% off
 3,000.00Save  1,500.00
In Stock Warranty: 12 Months Add to cart
Partner Advantage

Exclusive Offer for New Reseller Signup

Access project pricing @ Digitnet Store

Become a Partner →
Project PricingSpecial rates for bulk orders, repeat supply and approved projects.
Priority SupportProduct guidance and technical assistance before and after purchase.
Solution Assistance OneSupport for CCTV, access control, solar, networking and automation jobs.
Flexible Supply OneMOQ, reseller support and structured supply options where available.
Professional installer
Built for Professionals

Best Sellers

VIEW ALL

Deals

VIEW ALL

Get the Latest Deals & Product Updates

Subscribe for offers, new arrivals and project supply updates.
`; }function dnGlobalChildPageStyles(){ return ` .dn-global-child-page{margin-top:22px;margin-bottom:34px} .dn-child-hero{border-radius:22px;overflow:hidden;background:radial-gradient(circle at 80% 40%,rgba(255,60,32,.22),transparent 26%),linear-gradient(120deg,#071b36,#0b4aa2);color:#fff;padding:34px;display:grid;grid-template-columns:1fr 260px;gap:22px;align-items:center;box-shadow:var(--shadow)} .dn-child-hero span{display:inline-flex;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:7px 11px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em} .dn-child-hero h1{margin:12px 0 10px;font-size:38px;line-height:1.05;color:#fff}.dn-child-hero p{max-width:680px;color:#dbe7f6;line-height:1.6;margin:0}.dn-child-visual{height:170px;border-radius:18px;background:rgba(255,255,255,.09);display:grid;place-items:center;font-size:82px}.dn-child-visual img{width:100%;height:100%;object-fit:contain;padding:16px} .dn-child-toolbar{margin:18px 0;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow2);padding:14px}.dn-child-filter-row{display:grid;grid-template-columns:1fr 190px 170px 160px 190px auto;gap:12px}.dn-child-toolbar input,.dn-child-toolbar select{height:44px;border:1px solid var(--line);border-radius:12px;padding:0 13px;outline:0;background:#fff}.dn-child-toolbar input:focus,.dn-child-toolbar select:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(255,60,32,.10)}.dn-child-reset{height:44px;border:0;border-radius:999px;background:#fff0ed;color:var(--red);font-weight:900;padding:0 16px;cursor:pointer}.dn-child-count{font-size:13px;color:#475467;margin:0 0 14px} .dn-child-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.dn-child-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow2);overflow:hidden;transition:.2s ease}.dn-child-card:hover{transform:translateY(-3px);border-color:#ffc7bd;box-shadow:var(--shadow)}.dn-child-img{height:150px;background:#f6f8fb;display:grid;place-items:center}.dn-child-img span{font-size:72px}.dn-child-img img{width:100%;height:100%;object-fit:contain;padding:14px}.dn-child-info{padding:15px}.dn-child-badge{display:inline-flex;background:#fff0ed;color:var(--red);border-radius:999px;padding:5px 9px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.dn-child-card h3{margin:0 0 8px;color:#071b36;font-size:15px;line-height:1.35;min-height:42px}.dn-child-card p,.dn-child-meta{margin:0 0 10px;color:var(--muted);font-size:12px;line-height:1.5}.dn-child-price{color:var(--red);font-size:20px;font-weight:950;margin-bottom:12px}.dn-child-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.dn-child-actions button,.dn-child-actions a{height:40px;border-radius:10px;border:0;display:flex;align-items:center;justify-content:center;font-weight:900;cursor:pointer}.dn-child-actions button{background:var(--red);color:#fff}.dn-child-actions a{background:#eef2f7;color:#071b36}.dn-child-empty{display:none;background:#fff7f5;border:1px dashed #ffc7bd;color:#071b36;border-radius:16px;padding:18px;text-align:center;font-weight:800}.dn-child-category-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}.dn-child-category-strip a{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px;color:#071b36;font-weight:850;box-shadow:var(--shadow2)}.dn-child-bottom{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}.dn-child-box{border-radius:16px;padding:18px;min-height:160px;background:#fff;border:1px solid var(--line);display:grid;grid-template-columns:1fr 130px;gap:14px;align-items:center;box-shadow:var(--shadow2)}.dn-child-box img{width:100%;height:120px;object-fit:contain}.dn-child-pill{display:inline-flex;background:var(--red);color:#fff;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:900}/* Global department-page filter and safe product-card layout */ .dn-child-shop-layout{display:grid;grid-template-columns:280px 1fr;gap:20px;align-items:start;margin-top:18px}.dn-child-filter-panel{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow2);padding:20px;position:sticky;top:18px}.dn-child-filter-head{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:18px}.dn-child-filter-head h2{margin:0;color:#071b36;font-size:26px;line-height:1;font-weight:900}.dn-child-filter-head h2:after{content:"";display:block;width:48px;height:3px;background:var(--red);border-radius:99px;margin-top:14px}.dn-child-clear{border:0;background:#f2f4f7;color:#667085;border-radius:999px;padding:8px 13px;font-weight:900;cursor:pointer}.dn-child-clear:hover{background:#fff0ed;color:var(--red)}.dn-child-filter-group{border-bottom:1px solid var(--line);padding:0 0 18px;margin-bottom:18px}.dn-child-filter-group label{display:block;color:#071b36;font-size:15px;font-weight:900;margin-bottom:12px}.dn-child-search-row{display:grid;grid-template-columns:1fr 84px;gap:8px}.dn-child-filter-panel input[type="search"],.dn-child-filter-panel select{width:100%;height:44px;border:1px solid #d7deea;border-radius:10px;background:#fff;padding:0 12px;outline:0;color:#071b36;min-width:0}.dn-child-filter-panel input:focus,.dn-child-filter-panel select:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(255,60,32,.10)}.dn-child-filter-apply,.dn-child-apply-wide{border:0;background:var(--red);color:#fff;border-radius:999px;font-weight:950;cursor:pointer}.dn-child-filter-apply{height:44px}.dn-child-apply-wide{width:100%;height:44px}.dn-child-filter-apply:hover,.dn-child-apply-wide:hover{background:var(--red2)}.dn-child-price-top{display:flex;justify-content:space-between;align-items:center;color:#071b36;font-size:13px;margin-bottom:12px}.dn-child-range{width:100%;accent-color:var(--red);margin:2px 0 12px}.dn-child-filter-group small{display:block;color:#667085;font-size:12px;margin-bottom:5px}.dn-child-filter-group b{display:block;color:var(--red);font-size:13px}.dn-child-results-panel{min-width:0}.dn-child-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.dn-child-card{display:flex;flex-direction:column;min-height:430px;position:relative;isolation:isolate;overflow:hidden}.dn-child-img{height:220px;min-height:220px;max-height:220px;overflow:hidden;background:#f7f9fc;position:relative;z-index:1}.dn-child-img img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;padding:16px;display:block}.dn-child-info{position:relative;z-index:2;background:#fff;flex:1;display:flex;flex-direction:column;padding:16px}.dn-child-card h3{font-size:15px;line-height:1.35;min-height:0;margin-bottom:10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.dn-child-meta{min-height:42px;overflow:hidden}.dn-child-price{margin-top:auto}.dn-child-actions{margin-top:4px}.dn-child-badge{align-self:flex-start;white-space:nowrap}.dn-child-card *{text-decoration:none!important;text-shadow:none!important}.dn-child-card a,.dn-child-card button{position:relative;z-index:3} @media(max-width:1050px){.dn-child-shop-layout{grid-template-columns:1fr}.dn-child-filter-panel{position:relative;top:auto}.dn-child-grid{grid-template-columns:repeat(2,minmax(0,1fr))}} @media(max-width:620px){.dn-child-shop-layout{grid-template-columns:1fr}.dn-child-search-row{grid-template-columns:1fr}.dn-child-grid{grid-template-columns:1fr}.dn-child-img{height:210px;min-height:210px;max-height:210px}.dn-child-card{min-height:410px}}@media(max-width:1050px){.dn-child-hero{grid-template-columns:1fr}.dn-child-filter-row{grid-template-columns:repeat(2,1fr)}.dn-child-grid{grid-template-columns:repeat(2,1fr)}.dn-child-category-strip{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.dn-child-hero{padding:24px}.dn-child-hero h1{font-size:30px}.dn-child-filter-row,.dn-child-grid,.dn-child-category-strip,.dn-child-bottom{grid-template-columns:1fr}.dn-child-box{grid-template-columns:1fr}.dn-child-visual{height:130px}} `; }function dnBuildNewArrivalsPage(){ const items = dnGetRecentlyAddedNewArrivals(); const cards = items.map(function(item){ return `
${dnEscapeHtml(item.icon)}
Recently Added

${dnEscapeHtml(item.title)}

${dnEscapeHtml(item.desc || 'Freshly listed product from Digitnet Store.')}

${dnEscapeHtml(item.price)}
View Product
`; }).join(''); const content = `
New Arrivals

Recently Added

Recently Added uses the current dynamic product source configured for the homepage.

${items.length} products showing

${cards}
No recently added products match this filter.
`; const script = ` (function(){ const source = ${JSON.stringify(items).replace('\"]/g, function(char){ return ({'&':'&','<':'<','>':'>','"':'"'}[char]); }); } function priceNumber(value){ return Number(String(value || '').replace(/[^0-9.]/g,'')) || 0; } function card(item){ return '
' + esc(item.icon) + '
Recently Added

' + esc(item.title) + '

' + esc(item.desc || 'Freshly listed product from Digitnet Store.') + '

' + esc(item.price) + '
View Product
'; } function render(){ let list = source.slice(); const q = search.value.trim().toLowerCase(); if(q) list = list.filter(item => [item.title,item.price,item.desc].join(' ').toLowerCase().includes(q)); if(view.value === 'featured') list = list.filter(item => item.featured); if(sort.value === 'name') list.sort((a,b)=>String(a.title).localeCompare(String(b.title))); if(sort.value === 'price-low') list.sort((a,b)=>priceNumber(a.price)-priceNumber(b.price)); if(sort.value === 'price-high') list.sort((a,b)=>priceNumber(b.price)-priceNumber(a.price)); count.textContent = list.length + ' product' + (list.length === 1 ? '' : 's') + ' showing'; empty.style.display = list.length ? 'none' : 'block'; grid.innerHTML = list.map(card).join(''); } [search,sort,view].forEach(el => el.addEventListener('input', render)); })();`; return dnBuildGlobalPageShell('New Arrivals', content, script); }function dnOpenNewArrivalsPage(){ window.location.href = window.dnNewArrivalsUrl || "https:\/\/skynovatravel.com\/new-arrivals\/"; } window.dnOpenNewArrivalsPage = dnOpenNewArrivalsPage;function dnRenderAccessoriesTab(product){ const related = (product && product.related) ? product.related.slice(0,4) : []; if(!related.length){ return `
No accessories selected yet.
This tab is dynamic-ready and should map to the WooCommerce Accessories field selected in Product Data → Accessories.
`; } return `

Compatible Accessories

Recommended add-ons and compatible products selected from the WooCommerce Accessories field.

${related.map(item => `
${item.title || 'Accessory'}

${item.title || 'Accessory'}

${item.price || ''}
`).join("")}
`; }(function(){ const fallbackTabs = [ { name: "Best Deals", products: [ {title:"Universal 16A WiFi Smart Wall Socket Outlet", price:"₦44,950", icon:"🔌"}, {title:"Yealink CP925 IP Conference Station", price:"₦564,050", icon:"☎️"}, {title:"Fanvil V65 Prime Business Phone – Best Business", price:"₦236,350", icon:"📞"}, {title:"Grandstream WP826 Wi‑Fi IP Phone", price:"₦131,950", icon:"📱"}, {title:"0.916–1.5m Extendable Smart Curtain Track", price:"₦101,500", icon:"↔️", featured:true, desc:"WiFi, RF, telescopic, and voice assistant compatible."}, {title:"Flyxinsim K80 Air 2S Drone 4K Camera", price:"₦174,000", icon:"🚁"}, {title:"No Touch Exit Button Inductive Door Release", price:"₦40,673", icon:"🚪"}, {title:"K65 Outdoor Smart Watch 1.43 AMOLED Screen", price:"₦50,000", icon:"⌚"}, {title:"Multifunctional Laser Presentation Pointer Pen", price:"₦3,408", icon:"🖊️"} ] }, { name: "Accessories", products: [ {title:"Smart Lock Spare Key Card Pack", price:"₦8,500", icon:"💳"}, {title:"CCTV Power Adapter 12V 2A", price:"₦4,950", icon:"🔋"}, {title:"Premium Cat6 Network Patch Cable", price:"₦3,200", icon:"🧵"}, {title:"Wall Mount Bracket for Camera", price:"₦6,700", icon:"🔩"}, {title:"Access Control Exit Button Kit", price:"₦28,500", icon:"🚪", featured:true, desc:"Complete accessory kit for secure access-control installations."}, {title:"Solar DC Breaker Protection Unit", price:"₦19,900", icon:"⚡"}, {title:"Smart Home Zigbee Gateway", price:"₦32,500", icon:"📡"}, {title:"HDMI Extender Over Cat6", price:"₦21,000", icon:"🔌"}, {title:"Rack Cable Management Bar", price:"₦12,000", icon:"🗄️"} ] }, { name: "Popular", products: [ {title:"Hikvision 4MP ColorVu Bullet Camera", price:"₦95,500", icon:"📷"}, {title:"Yealink SIP-T33G IP Phone", price:"₦59,500", icon:"☎️"}, {title:"Dahua 2MP 25x PTZ Network Camera", price:"₦365,000", icon:"🎥"}, {title:"TP-Link 16-Port Gigabit Desktop Switch", price:"₦85,000", icon:"🌐"}, {title:"Jinko 550W Mono Solar Panel", price:"₦108,000", icon:"☀️", featured:true, desc:"High-efficiency solar panel for project and business supply."}, {title:"ZKTeco Biometric Access Device", price:"₦165,000", icon:"🔐"}, {title:"ANENG T168 Infrared Thermometer", price:"₦14,790", icon:"🌡️"}, {title:"Tuya Smart WiFi Switch", price:"₦18,900", icon:"🔘"}, {title:"Ubiquiti UniFi 6 Access Point", price:"₦98,000", icon:"📡"} ] }, { name: "Trending Products", products: [ {title:"3D Face Recognition Smart Lock", price:"₦188,500", icon:"🔐"}, {title:"Wireless Video Doorbell Camera", price:"₦42,000", icon:"🚪"}, {title:"AI Smart Tracking PTZ Camera", price:"₦215,000", icon:"🎥"}, {title:"Zigbee Smoke Detector EN14604", price:"₦21,500", icon:"🚨"}, {title:"Smart Home Automation Starter Bundle", price:"₦120,000", icon:"🏠", featured:true, desc:"Starter bundle for smart homes, apartments, and offices."}, {title:"Solar Charge Controller MPPT", price:"₦180,000", icon:"☀️"}, {title:"WiFi Smart Curtain Motor", price:"₦72,500", icon:"🪟"}, {title:"Fingerprint Door Access Kit", price:"₦95,000", icon:"🧬"}, {title:"Bluetooth Calling Smartwatch", price:"₦50,000", icon:"⌚"} ] }, { name: "General", products: [ {title:"Office Laser Presenter Pen", price:"₦3,408", icon:"🖊️"}, {title:"AC1200 Mesh Router", price:"₦52,000", icon:"📡"}, {title:"4TB Surveillance Hard Drive", price:"₦122,250", icon:"💽"}, {title:"Water Heater Smart Switch 20A", price:"₦18,900", icon:"🔌"}, {title:"Business Technology Essentials Pack", price:"₦250,000", icon:"🏢", featured:true, desc:"A practical starter pack for offices and business setups."}, {title:"Digital Multimeter Professional Tester", price:"₦14,790", icon:"🧪"}, {title:"Smart LED Bulb White", price:"₦8,500", icon:"💡"}, {title:"Door Closer Adjustable", price:"₦7,395", icon:"🚪"}, {title:"Outdoor Smart Watch", price:"₦50,000", icon:"⌚"} ] }, { name: "New Arrivals", products: dnMapRecentForDealTabs() }, { name: "Smart Home", products: [ {title:"Tuya Smart Light Switch", price:"₦18,500", icon:"🔘"}, {title:"Smart Plug WiFi Outlet", price:"₦11,500", icon:"🔌"}, {title:"Smart Motion Sensor", price:"₦15,000", icon:"📡"}, {title:"Smart IR Remote Controller", price:"₦17,500", icon:"📱"}, {title:"Complete Smart Home Control Bundle", price:"₦185,000", icon:"🏠", featured:true, desc:"Control lighting, switches, sensors, curtains, and home devices."}, {title:"Smart Curtain Track", price:"₦101,500", icon:"🪟"}, {title:"Zigbee Smoke Detector", price:"₦21,500", icon:"🚨"}, {title:"Smart Door Lock", price:"₦188,500", icon:"🔐"}, {title:"Smart Thermostat", price:"₦27,500", icon:"🌡️"} ] } ];const dynamicDealTabs = (window.dnHomeProductSections && Array.isArray(window.dnHomeProductSections.dealTabs)) ? window.dnHomeProductSections.dealTabs : []; const dealFeatureConfig = (window.dnHomeProductSections && window.dnHomeProductSections.dealFeature) ? window.dnHomeProductSections.dealFeature : {strategy:'automatic',product:null,showDescription:false}; const tabs = dynamicDealTabs.length ? dynamicDealTabs : (window.dnHomeAllowMockFallback ? fallbackTabs : []);const tabsEl = document.getElementById("dnDealTabs"); const gridEl = document.getElementById("dnDealGrid"); const viewAllEl = document.getElementById("dnDealViewAll"); if(!tabsEl || !gridEl) return;function simpleCard(rawProduct){ const product = dnNormalizeProduct(rawProduct); const url = dnProductUrl(product); return `
${dnProductCardMedia(product, url, 'dn-deals-support-image')}
${dnEscapeHtml(product.title)} ${dnProductReviewRow(product)} ${dnProductMetaRow(product)} ${dnGlobalProductPrice(product)} ${dnGlobalCommerceMeta(product, 'Product cart action')}
`; }function dealProductKey(product){ const id = dnProductId(product); if(id) return 'id:' + id; const rawUrl = product && (product.permalink || product.url || product.productUrl || product.product_url || product.link); if(rawUrl && !dnIsBadProductUrl(rawUrl)) return 'url:' + String(rawUrl).trim(); return 'title:' + String(product && product.title || '').trim().toLowerCase(); }function uniqueProducts(items){ const seen = new Set(); return (items || []).map(dnNormalizeProduct).filter(function(product){ const key = dealProductKey(product); if(!key || key === 'title:' || seen.has(key)) return false; seen.add(key); return true; }); }function dealDiscountPercent(product){ const regular = Number(product && (product.regularPriceNumber || product.regular_price_number) || 0); const sale = Number(product && (product.salePriceNumber || product.sale_price_number) || 0); if(!(regular > 0 && sale > 0 && sale < regular)) return 0; return Math.max(1, Math.min(99, Math.round((1 - sale / regular) * 100))); }function dealBadgeText(product){ const discount = dealDiscountPercent(product); if(discount) return `HOT · SAVE ${discount}%`; return String(product && (product.label || product.badge || product.save) || 'FEATURED'); }function featuredReviewMarkup(product){ const rating = Number(product && (product.rating || product.averageRating || product.average_rating) || 0); const count = Number(product && (product.reviewCount || product.review_count || product.reviews) || 0); if(!(rating > 0 && count > 0)) return ''; return `
${dnEscapeHtml(dnProductStars(product))}${dnEscapeHtml(rating.toFixed(1))} · ${dnEscapeHtml(count.toLocaleString())} reviews
`; }function featuredChipsMarkup(product){ const moq = product && (product.moq || product.minimumOrder || product.minimum_order_quantity) || 1; const standard = product && (product.standard || product.compliance) || dnDefaultStandardBadge; const chips = []; if(String(moq || '').trim()) chips.push(`MOQ: ${dnEscapeHtml(moq)}`); if(String(standard || '').trim()) chips.push(dnEscapeHtml(standard)); return chips.length ? `
${chips.map(function(chip){ return `${chip}`; }).join('')}
` : ''; }function featuredPluginActions(product){ const actions = dnProductPluginActions(product); return actions ? `
${actions}
` : ''; }function featuredGalleryMarkup(product){ const images = dnProductGalleryImages(product).slice(0,4); if(images.length < 2) return ''; return ``; }function featuredCartMarkup(product){ const inStock = dnProductIsInStock(product); if(!inStock){ return ``; } return `${dnGlobalBasketSvg()}${dnEscapeHtml(product && product.addText || 'Add to cart')}`; }function featuredMarkup(rawProduct){ const product = dnNormalizeProduct(rawProduct); const url = dnProductUrl(product); const images = dnProductGalleryImages(product); const image = images[0] || product.image || product.img || ''; const discount = dealDiscountPercent(product); const inStock = dnProductIsInStock(product); const stockText = String(product.stock || (inStock ? 'In stock' : 'Out of stock')); const warranty = String(product.warranty || dnDefaultWarrantyBadge || ''); const description = String(product.desc || 'Selected deal with strong value for Digitnet Store customers.'); const descriptionMarkup = (dealFeatureConfig && dealFeatureConfig.showDescription && description.trim()) ? `

${dnEscapeHtml(description)}

` : ''; const discountProgress = discount ? `
Offer saving${discount}% off
` : ''; const floatingDiscount = discount ? `
${discount}%Save
` : '';return `
Deal of the daySelected offer · while stock lasts${dnEscapeHtml(dealBadgeText(product))}
${featuredPluginActions(product)}
${floatingDiscount} ${image ? `${dnEscapeHtml(product.title)}` : dnProductImageMarkup(product, product.title)}
${featuredGalleryMarkup(product)}

${dnEscapeHtml(product.title)}

${featuredReviewMarkup(product)} ${featuredChipsMarkup(product)}
${dnGlobalProductPrice(product)}
${discount ? 'Limited offer' : 'Featured'}
${descriptionMarkup} ${discountProgress}
${inStock ? '✓ ' : ''}${dnEscapeHtml(stockText)}
${warranty ? `
${dnEscapeHtml(warranty)}
` : ''}
View deal${featuredCartMarkup(product)}
`; }function bindFeaturedGallery(){ const main = document.getElementById('dnDealFeatureMainImage'); const gallery = document.getElementById('dnDealFeatureGallery'); if(!main || !gallery) return; gallery.addEventListener('click', function(event){ const thumb = event.target.closest('button[data-image]'); if(!thumb) return; const next = String(thumb.dataset.image || ''); if(!next) return; main.src = next; gallery.querySelectorAll('button[data-image]').forEach(function(button){ button.setAttribute('aria-current', button === thumb ? 'true' : 'false'); }); }); }function setFeature(product){ const featureEl = document.getElementById('dnDealFeature'); if(!featureEl) return; featureEl.outerHTML = featuredMarkup(product); bindFeaturedGallery(); }function dealDiscountPercent(product){ if(!product) return 0; const regular = Number(product.regularPriceNumber || 0); const sale = Number(product.salePriceNumber || 0); return (regular > 0 && sale > 0 && sale < regular) ? Math.round((1 - (sale / regular)) * 100) : 0; }function chooseDealFeature(products){ products = Array.isArray(products) ? products : []; if(!products.length && !(dealFeatureConfig && dealFeatureConfig.product)) return null; const strategy = String((dealFeatureConfig && dealFeatureConfig.strategy) || 'automatic'); if(strategy === 'specific_product' && dealFeatureConfig && dealFeatureConfig.product){ return dealFeatureConfig.product; } if(strategy === 'highest_discount'){ let best = null; let bestDiscount = -1; products.forEach(function(product){ const discount = dealDiscountPercent(product); if(discount > bestDiscount){ best = product; bestDiscount = discount; } }); if(best && bestDiscount > 0) return best; } if(strategy === 'featured'){ const featured = products.find(function(product){ return !!product.featured; }); if(featured) return featured; } return products[0] || null; }function render(index){ const group = tabs[index] || tabs[0]; let products = uniqueProducts((group && Array.isArray(group.products)) ? group.products : []); if(!products.length && window.dnHomeAllowMockFallback){ products = uniqueProducts(fallbackTabs[0].products); } tabsEl.innerHTML = tabs.map(function(tab, i){ return ``; }).join(''); if(viewAllEl && group && group.url && !dnIsBadProductUrl(group.url)){ viewAllEl.href = group.url; } gridEl.setAttribute('aria-labelledby', 'dnDealTab-' + index); if(!products.length){ gridEl.innerHTML = '
No products available yet.
'; return; }const feature = chooseDealFeature(products); const featureKey = dealProductKey(feature); const regular = products.filter(function(product){ return dealProductKey(product) !== featureKey; }).slice(0,8);gridEl.dataset.supportingCount = String(regular.length); gridEl.innerHTML = `${featuredMarkup(feature)}
${regular.map(function(product,index){ return `
${simpleCard(product)}
`; }).join('')}
`; bindFeaturedGallery(); }tabsEl.addEventListener("click", function(e){ const btn = e.target.closest("button[data-tab]"); if(!btn) return; const index = Number(btn.dataset.tab); render(index); });gridEl.addEventListener('click', function(event){ if(event.target.closest('a,button,input,select,textarea,label')) return; const slot = event.target.closest('.dn-deals-card-slot[data-deal-slot]'); if(!slot) return; const activeButton = tabsEl.querySelector('button.active'); const activeIndex = Number(activeButton && activeButton.dataset ? activeButton.dataset.tab : 0); const group = tabs[activeIndex] || tabs[0]; const products = uniqueProducts(group && Array.isArray(group.products) ? group.products : []); const feature = chooseDealFeature(products); const featureKey = feature ? dealProductKey(feature) : ''; const regular = products.filter(function(product){ return dealProductKey(product) !== featureKey; }).slice(0,8); const selected = regular[Number(slot.dataset.dealSlot || 0)]; if(selected) setFeature(selected); });render(0); })();
Loading recently viewed products…