Help
RSS
API
Feed
Maltego
Contact
Domain > digitools.co
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2019-05-06
91.121.31.25
(
ClassC
)
2026-02-21
34.165.243.126
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyDate: Sat, 21 Feb 2026 21:39:44 GMTServer: Apache/2.4.66 (Debian)Location: https://digitools.co/Content-Length: 347Content-Type: text/html; charsetiso-8859-1 !DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01//EN http://www.w3.org/TR/html4/strict.dtd>html>head>title>301 Moved Permanently/title>/head>body>h1>Moved Permanently/h1>p>The document has moved a hrefhttps://digitools.co/>here/a>./p>hr>address>Apache/2.4.66 (Debian) Server at digitools.co Port 80/address>/body>/html>
Port 443
HTTP/1.1 200 OKDate: Sat, 21 Feb 2026 21:39:44 GMTServer: Apache/2.4.66 (Debian)Last-Modified: Fri, 28 Nov 2025 10:37:32 GMTETag: 23583-644a53784b300Accept-Ranges: bytesContent-Length: 144771Vary: Accept-EncodingContent-Type: text/html !DOCTYPE html>html langen>head> meta charsetUTF-8> meta nameviewport contentwidthdevice-width, initial-scale1.0> title>Black Friday: The Ultimate n8n Automation Bundle β 7500+ Workflows (49% Off)/title> meta namedescription contentBlack Friday Deal: 49% off the Ultimate n8n Automation Bundle. 7500+ pre-built workflows updated monthly. Copy, paste, and launch instantly. PLR/MRR includedβresell or use for clients.> !-- Favicon --> link relicon typeimage/png sizes16x16 hrefassets/digitools-16x16.png> link relicon typeimage/png sizes24x24 hrefassets/digitools-24x24.png> link relapple-touch-icon hrefassets/digitools.png> !-- Google tag (gtag.js) --> script async srchttps://www.googletagmanager.com/gtag/js?idG-1KH7K0RKBQ>/script> script> window.dataLayer window.dataLayer || ; function gtag(){dataLayer.push(arguments);} gtag(js, new Date()); gtag(config, G-1KH7K0RKBQ); /script> !-- Stripe.js --> script srchttps://js.stripe.com/v3/>/script> !-- Google Fonts --> link hrefhttps://fonts.googleapis.com/css2?familyInter:wght@300;400;500;600;700&displayswap relstylesheet> link hrefhttps://fonts.googleapis.com/icon?familyMaterial+Icons relstylesheet> !-- Swiper CSS --> link relstylesheet hrefhttps://unpkg.com/swiper/swiper-bundle.min.css> style> * { margin: 0; padding: 0; box-sizing: border-box; } html, body { overflow-x: hidden; max-width: 100%; } :root { --primary-color: #44fe63; --secondary-color: #44fe63; --accent-color: #44fe63; --dark-bg: #0f0f0f; --darker-bg: #050505; --card-bg: #1a1a1a; --border-color: #2a2a2a; --text-color: #ffffff; --text-light: #b0b0b0; --text-muted: #808080; --border-radius: 12px; --transition: all 0.3s ease; --gradient-primary: linear-gradient(135deg, #44fe63, #44fe63); --gradient-dark: linear-gradient(135deg, #1a1a1a, #0f0f0f); --shadow-dark: 0 10px 30px rgba(0,0,0,0.5); --shadow-glow: 0 0 20px rgba(198, 255, 0, 0.2); } body { font-family: Inter, sans-serif; line-height: 1.6; color: var(--text-color); background: var(--dark-bg); background-image: radial-gradient(circle at 20% 50%, rgba(198, 255, 0, 0.1) 0%, transparent 50%), radial-gradient(circle at 80% 20%, rgba(163, 217, 0, 0.1) 0%, transparent 50%), radial-gradient(circle at 40% 80%, rgba(198, 255, 0, 0.05) 0%, transparent 50%); min-height: 100vh; } .container { max-width: 1200px; margin: 0 auto; padding: 0 20px; width: 100%; box-sizing: border-box; } /* Header */ header { background: var(--darker-bg); backdrop-filter: blur(10px); border-bottom: 1px solid var(--border-color); color: var(--text-color); padding: 1rem 0; position: sticky; top: 0; z-index: 1000; transition: var(--transition); box-shadow: var(--shadow-dark); } .header-content { display: flex; justify-content: space-between; align-items: center; } .header-actions { display: flex; align-items: center; gap: 1rem; } .user-btn { background: none; border: none; color: white; cursor: pointer; padding: 8px; border-radius: 8px; transition: var(--transition); } .user-btn:hover { background: rgba(198, 255, 0, 0.1); color: var(--primary-color); } .logo { font-size: 1.5rem; font-weight: 700; color: var(--primary-color); display: flex; align-items: center; gap: 0.5rem; text-decoration: none; } .logo img { height: 40px; width: auto; } .nav-links { display: flex; list-style: none; gap: 2rem; } .nav-links a { color: var(--text-color); text-decoration: none; transition: var(--transition); } .nav-links a:hover { color: var(--primary-color); text-shadow: 0 0 10px rgba(198, 255, 0, 0.3); } /* Mobile menu button */ .mobile-menu-btn { display: none; background: none; border: none; color: var(--text-color); font-size: 1.5rem; cursor: pointer; } /* User dropdown */ .user-menu { position: relative; display: inline-block; } .user-dropdown { display: none; position: absolute; right: 0; top: 100%; background: white; min-width: 200px; box-shadow: 0 8px 25px rgba(0,0,0,0.15); border-radius: 8px; z-index: 1000; margin-top: 5px; } .user-dropdown.active { display: block; } .user-dropdown a { color: var(--text-color); padding: 12px 16px; text-decoration: none; display: block; transition: background-color 0.3s; } .user-dropdown a:hover { background-color: #f8f9fa; } /* Cart icon */ .cart-icon { position: relative; cursor: pointer; transition: var(--transition); } .cart-icon:hover { color: var(--primary-color); transform: scale(1.1); } .cart-count { position: absolute; top: -8px; right: -8px; background: var(--primary-color); color: var(--dark-bg); border-radius: 50%; width: 20px; height: 20px; font-size: 12px; font-weight: 600; display: flex; align-items: center; justify-content: center; animation: bounce 0.5s ease; } /* Cart Sidebar */ .cart-sidebar { position: fixed; top: 0; right: -400px; width: 400px; height: 100vh; background: var(--card-bg); border-left: 1px solid var(--border-color); box-shadow: -10px 0 30px rgba(0,0,0,0.5); z-index: 2000; transition: right 0.3s ease; display: flex; flex-direction: column; } .cart-sidebar.active { right: 0; } .cart-header { padding: 1.5rem; border-bottom: 1px solid var(--border-color); display: flex; justify-content: space-between; align-items: center; } .cart-title { font-size: 1.5rem; font-weight: 600; color: var(--text-color); } .cart-close { background: none; border: none; color: var(--text-light); font-size: 1.5rem; cursor: pointer; transition: var(--transition); } .cart-close:hover { color: var(--primary-color); } .cart-content { flex: 1; overflow-y: auto; padding: 1rem; } .cart-empty { text-align: center; padding: 3rem 1rem; color: var(--text-light); } .cart-empty-icon { font-size: 4rem; margin-bottom: 1rem; opacity: 0.5; } .cart-item { display: flex; align-items: center; padding: 1rem; border-bottom: 1px solid var(--border-color); transition: var(--transition); } .cart-item:hover { background: rgba(255,255,255,0.02); } .cart-item-image { width: 60px; height: 60px; border-radius: 8px; object-fit: cover; margin-right: 1rem; } .cart-item-details { flex: 1; } .cart-item-name { font-weight: 600; color: var(--text-color); margin-bottom: 0.25rem; } .cart-item-price { color: var(--primary-color); font-weight: 500; } .cart-item-quantity { display: flex; align-items: center; gap: 0.5rem; margin: 0.5rem 0; } .quantity-btn { background: var(--border-color); border: none; color: var(--text-color); width: 30px; height: 30px; border-radius: 6px; cursor: pointer; transition: var(--transition); } .quantity-btn:hover { background: var(--primary-color); color: var(--dark-bg); } .quantity-input { width: 50px; text-align: center; background: var(--dark-bg); border: 1px solid var(--border-color); color: var(--text-color); border-radius: 4px; padding: 0.25rem; } .cart-item-remove { background: none; border: none; color: var(--text-light); cursor: pointer; padding: 0.5rem; margin-left: 1rem; transition: var(--transition); } .cart-item-remove:hover { color: #ff4757; } .cart-footer { padding: 1.5rem; border-top: 1px solid var(--border-color); background: var(--darker-bg); } .cart-total { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; font-size: 1.2rem; font-weight: 600; } .cart-total-price { color: var(--primary-color); font-size: 1.5rem; } .cart-checkout-btn { width: 100%; background: var(--primary-color); color: var(--dark-bg); border: none; padding: 15px; border-radius: var(--border-radius); font-weight: 600; cursor: pointer; transition: var(--transition); margin-bottom: 0.5rem; } .cart-checkout-btn:hover { transform: translateY(-2px); box-shadow: 0 5px 15px rgba(198, 255, 0, 0.4); } .cart-continue-btn { width: 100%; background: none; color: var(--text-light); border: 1px solid var(--border-color); padding: 10px; border-radius: var(--border-radius); cursor: pointer; transition: var(--transition); } .cart-continue-btn:hover { border-color: var(--primary-color); color: var(--primary-color); } /* Cart Overlay */ .cart-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); z-index: 1999; opacity: 0; visibility: hidden; transition: all 0.3s ease; } .cart-overlay.active { opacity: 1; visibility: visible; } /* Mobile Cart */ @media (max-width: 768px) { .cart-sidebar { width: 100%; right: -100%; } } /* Products grid for marketplace */ .products-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 2rem; margin-top: 2rem; } .product-card { background: var(--card-bg); border: 1px solid var(--border-color); border-radius: var(--border-radius); overflow: hidden; box-shadow: var(--shadow-dark); transition: var(--transition); cursor: pointer; } .product-card:hover { transform: translateY(-5px); border-color: var(--primary-color); box-shadow: var(--shadow-glow); } /* Black Friday badge for product cards */ .bf-badge { display: inline-block; margin-left: 8px; padding: 2px 8px; border-radius: 12px; font-size: 0.7rem; font-weight: 700; background: #111; color: var(--primary-color); border: 1px solid var(--primary-color); } .product-image { width: 100%; height: 200px; object-fit: cover; border-bottom: 1px solid var(--border-color); } .product-content { padding: 1.5rem; } .product-category { color: var(--primary-color); font-size: 0.8rem; font-weight: 600; text-transform: uppercase; margin-bottom: 0.5rem; text-shadow: 0 0 10px rgba(198, 255, 0, 0.3); } .product-card-title { font-size: 1.2rem; font-weight: 600; margin-bottom: 0.5rem; color: var(--text-color); } .product-description { color: var(--text-light); font-size: 0.9rem; line-height: 1.5; margin-bottom: 1rem; } .product-price { font-size: 1.5rem; font-weight: 700; color: var(--primary-color); } .product-original-price { text-decoration: line-through; color: var(--text-light); font-size: 1rem; margin-left: 10px; } /* Flash Sale Banner */ .flash-sale { background: var(--primary-color); color: var(--dark-bg); text-align: center; padding: 15px 0; font-weight: 700; animation: pulse 2s infinite; letter-spacing: 0.3px; } @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.8; } } .countdown { display: inline-flex; gap: 15px; margin-left: 15px; } .countdown-item { background: rgba(0,0,0,0.2); padding: 5px 10px; border-radius: 5px; font-size: 0.9rem; } /* Product Section */ .product-section { padding: 4rem 0; background: var(--dark-bg); } .product-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: start; } .product-gallery { position: sticky; top: 120px; } .main-image-container { position: relative; background: var(--card-bg); border: 1px solid var(--border-color); border-radius: var(--border-radius); padding: 1rem; margin-bottom: 1rem; box-shadow: var(--shadow-dark); transition: var(--transition); } .main-image-container:hover { box-shadow: var(--shadow-glow); border-color: var(--primary-color); } .main-image { width: 100%; height: auto; border-radius: var(--border-radius); transition: var(--transition); object-fit: contain; max-height: 500px; } .main-image:hover { transform: scale(1.02); } .thumbnail-gallery { display: flex; gap: 10px; overflow-x: auto; padding: 5px; scrollbar-width: thin; } .thumbnail-gallery::-webkit-scrollbar { height: 4px; } .thumbnail-gallery::-webkit-scrollbar-track { background: var(--border-color); border-radius: 2px; } .thumbnail-gallery::-webkit-scrollbar-thumb { background: var(--primary-color); border-radius: 2px; } .thumbnail { width: 80px; height: 80px; border-radius: 8px; cursor: pointer; opacity: 0.7; transition: var(--transition); object-fit: cover; border: 2px solid var(--border-color); background: var(--card-bg); padding: 4px; } .thumbnail.active, .thumbnail:hover { opacity: 1; border: 2px solid var(--primary-color); transform: scale(1.1); box-shadow: var(--shadow-glow); } /* Product Info */ .product-info { padding-left: 2rem; } .badges { display: flex; gap: 10px; margin-bottom: 1rem; flex-wrap: wrap; } .badge { background: var(--gradient-primary); color: var(--dark-bg); padding: 5px 12px; border-radius: 20px; font-size: 0.8rem; font-weight: 600; animation: fadeInUp 0.6s ease; box-shadow: var(--shadow-glow); } .product-title { font-size: 2.5rem; font-weight: 700; margin-bottom: 1rem; background: var(--gradient-primary); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; animation: fadeInUp 0.8s ease; } .rating { display: flex; align-items: center; gap: 10px; margin-bottom: 1.5rem; animation: fadeInUp 1s ease; } .stars { color: #ffc107; font-size: 1.2rem; } .rating-text { color: var(--text-light); } .price-section { margin-bottom: 2rem; animation: fadeInUp 1.2s ease; } .current-price { font-size: 3rem; font-weight: 700; color: var(--primary-color); } .original-price { font-size: 1.5rem; text-decoration: line-through; color: var(--text-light); margin-left: 15px; } .save-badge { background: var(--gradient-primary); color: var(--dark-bg); padding: 5px 15px; border-radius: 20px; font-weight: 600; margin-left: 15px; font-size: 0.9rem; animation: bounce 2s infinite; box-shadow: var(--shadow-glow); } @keyframes bounce { 0%, 20%, 50%, 80%, 100% { transform: translateY(0); } 40% { transform: translateY(-5px); } 60% { transform: translateY(-3px); } } .features-list { list-style: none; margin-bottom: 2rem; padding: 1.5rem; background: var(--card-bg); border: 1px solid var(--border-color); border-radius: var(--border-radius); box-shadow: var(--shadow-dark); } .features-list li { display: flex; align-items: center; margin-bottom: 10px; font-size: 0.95rem; color: var(--text-light); animation: fadeInLeft 0.6s ease; animation-fill-mode: both; padding: 8px 0; border-bottom: 1px solid var(--border-color); } .features-list li:last-child { border-bottom: none; } .features-list li:nth-child(1) { animation-delay: 0.1s; } .features-list li:nth-child(2) { animation-delay: 0.2s; } .features-list li:nth-child(3) { animation-delay: 0.3s; } .features-list li:nth-child(4) { animation-delay: 0.4s; } .features-list li:nth-child(5) { animation-delay: 0.5s; } .features-list li:nth-child(6) { animation-delay: 0.6s; } .features-list li:nth-child(7) { animation-delay: 0.7s; } .features-list li:nth-child(8) { animation-delay: 0.8s; } .features-list li::before { content: β ; margin-right: 10px; font-size: 1.1rem; } /* CTA Section */ .cta-section { background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); padding: 2rem; border-radius: var(--border-radius); margin-bottom: 2rem; box-shadow: 0 5px 15px rgba(0,0,0,0.1); } .cta-button { width: 100%; background: linear-gradient(45deg, #44fe63, #39e85a, #44fe63); background-size: 300% 300%; color: var(--dark-bg); border: none; padding: 20px 35px; font-size: 1.3rem; font-weight: 700; border-radius: 15px; cursor: pointer; transition: all 0.4s ease; text-transform: none; letter-spacing: 0.5px; box-shadow: 0 8px 25px rgba(68, 254, 99, 0.4); position: relative; overflow: hidden; animation: glow-pulse 2s ease-in-out infinite alternate; } .cta-button:hover { transform: translateY(-3px) scale(1.02); box-shadow: 0 12px 35px rgba(68, 254, 99, 0.6); background-position: 100% 0; animation: glow-pulse 1s ease-in-out infinite alternate; } .cta-button:active { transform: translateY(-1px) scale(1.01); } .cta-button::before { content: ; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent); transition: left 0.5s; } .cta-button:hover::before { left: 100%; } @keyframes glow-pulse { 0% { box-shadow: 0 8px 25px rgba(68, 254, 99, 0.4); } 100% { box-shadow: 0 8px 35px rgba(68, 254, 99, 0.7); } } .payment-methods { display: flex; justify-content: center; gap: 15px; margin-top: 1rem; opacity: 0.7; } .payment-methods img { height: 30px; transition: var(--transition); } .payment-methods img:hover { opacity: 1; transform: scale(1.1); } /* Sections */ .section { padding: 4rem 0; background: var(--dark-bg); } .section-title { text-align: center; font-size: 2.5rem; font-weight: 700; margin-bottom: 3rem; color: var(--text-color); } .highlight { background: var(--gradient-primary); color: var(--dark-bg); padding: 2px 8px; border-radius: 4px; box-shadow: var(--shadow-glow); } /* Features Grid */ .features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 2rem; margin-top: 3rem; } .feature-card { background: var(--card-bg); border: 1px solid var(--border-color); padding: 2rem; border-radius: var(--border-radius); box-shadow: var(--shadow-dark); transition: var(--transition); } .feature-card:hover { transform: translateY(-5px); border-color: var(--primary-color); box-shadow: var(--shadow-glow); } .feature-card h3 { color: var(--text-color); margin-bottom: 1rem; } .feature-card p { color: var(--text-light); } .feature-icon { font-size: 3rem; color: var(--primary-color); margin-bottom: 1rem; } .feature-card h3 { font-size: 1.3rem; margin-bottom: 1rem; color: var(--text-color); } .feature-card p { color: var(--text-light); line-height: 1.6; } /* Testimonials */ .testimonials { background: var(--dark-bg); color: white; } .swiper-container { width: 100%; padding: 20px 0; } .testimonial-card { background: rgba(255,255,255,0.1); padding: 2rem; border-radius: var(--border-radius); text-align: center; backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,0.1); } .testimonial-stars { color: #ffc107; font-size: 1.5rem; margin-bottom: 1rem; } .testimonial-text { font-style: italic; margin-bottom: 1rem; line-height: 1.8; font-size: 1.1rem; } .testimonial-author { font-weight: 600; color: var(--primary-color); } /* FAQ */ .faq-container { max-width: 800px; margin: 0 auto; } .faq-item { margin-bottom: 1rem; border: 1px solid #eee; border-radius: var(--border-radius); overflow: hidden; opacity: 0; transform: translateY(20px); } .faq-question { width: 100%; background: none; border: none; padding: 1.5rem; text-align: left; font-weight: 600; cursor: pointer; display: flex; justify-content: space-between; align-items: center; transition: var(--transition); } .faq-question:hover { background: #f8f9fa; } .faq-answer { padding: 0 1.5rem 1.5rem; display: none; color: var(--text-light); line-height: 1.6; } .faq-answer.active { display: block; animation: fadeInDown 0.3s ease; } /* Footer */ footer { background: var(--dark-bg); color: white; text-align: center; padding: 2rem 0; } /* Animations */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } @keyframes fadeInLeft { from { opacity: 0; transform: translateX(-30px); } to { opacity: 1; transform: translateX(0); } } @keyframes fadeInDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } /* Responsive */ @media (max-width: 768px) { /* Ensure proper mobile viewport */ html, body { width: 100%; overflow-x: hidden; } /* Mobile body spacing - reduced top padding to prevent overlap */ body { padding-top: 70px; padding-bottom: 20px; } /* Mobile container adjustments */ .container { padding: 0 15px; max-width: 100%; } /* Hide cart icon on mobile (no cart flow) */ .cart-icon { display: none; } /* Larger, easier-to-tap primary CTA button */ .cta-button { padding: 16px 24px; font-size: 1.05rem; border-radius: 12px; } /* Sticky mobile Buy bar - adjusted for better mobile layout */ .mobile-cta-bar { position: fixed; left: 0; right: 0; top: 65px; display: flex !important; /* Force display on mobile */ align-items: center; justify-content: space-between; gap: 10px; padding: 8px 15px; background: var(--gradient-dark); border-bottom: 2px solid var(--primary-color); box-shadow: 0 4px 15px rgba(0,0,0,0.4); z-index: 1500; backdrop-filter: blur(10px); animation: slideInFromTop 0.6s ease-out; max-width: 100vw; box-sizing: border-box; } @keyframes slideInFromTop { 0% { transform: translateY(-100%); opacity: 0; } 100% { transform: translateY(0); opacity: 1; } } .mobile-cta-price { display: flex; align-items: baseline; gap: 6px; font-weight: 800; color: var(--primary-color); font-size: 1.1rem; white-space: nowrap; } .mobile-cta-original { color: var(--text-muted); text-decoration: line-through; font-weight: 600; font-size: 0.85rem; } .mobile-cta-button { flex: 1; max-width: 160px; min-height: 42px; background: linear-gradient(45deg, #44fe63, #39e85a, #44fe63); background-size: 300% 300%; color: var(--dark-bg); border: none; border-radius: 10px; font-weight: 800; font-size: 0.95rem; letter-spacing: 0.2px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; box-shadow: 0 3px 12px rgba(68, 254, 99, 0.4); animation: mobile-cta-attract 2s ease-in-out infinite; transition: all 0.3s ease; } @keyframes mobile-cta-attract { 0%, 100% { transform: scale(1); box-shadow: 0 4px 15px rgba(68, 254, 99, 0.4); } 50% { transform: scale(1.02); box-shadow: 0 6px 25px rgba(68, 254, 99, 0.8); background-position: 100% 0; } } .mobile-cta-button:active { transform: translateY(1px) scale(0.98); box-shadow: 0 2px 10px rgba(68, 254, 99, 0.6); } .product-grid { grid-template-columns: 1fr; gap: 1.5rem; } .product-info { padding-left: 0; padding-top: 1rem; } .product-title { font-size: 1.8rem; line-height: 1.2; } .current-price { font-size: 2.2rem; } .nav-links { display: none; } .mobile-menu-btn { display: block; } .countdown { flex-direction: row; gap: 8px; justify-content: center; } .countdown-item { display: inline-block; font-size: 0.8rem; padding: 4px 8px; } .section { padding: 2rem 0; } .section-title { font-size: 1.8rem; margin-bottom: 2rem; } .features-grid { grid-template-columns: 1fr; gap: 1.5rem; } .badges { justify-content: center; margin-bottom: 1.5rem; } .perfect-for-grid { grid-template-columns: 1fr; gap: 1rem; } .workflows-grid { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; } .steps-container { flex-direction: column; align-items: center; gap: 2rem; } .perfect-for-title, .showcase-title { font-size: 1.8rem; margin-bottom: 2rem; } /* Mobile Carousel Styles */ .workflow-card { min-width: 200px; margin: 0 10px; padding: 12px; } .workflow-image { height: 150px; } .workflow-card h3 { font-size: 0.95rem; } .carousel-track { width: calc(200px * 15 + 20px * 15); animation: scroll-mobile 20s linear infinite; } @keyframes scroll-mobile { 0% { transform: translateX(0); } 100% { transform: translateX(calc(-200px * 10 - 20px * 10)); } } /* Mobile Banner Styles */ .banner-content { flex-direction: column; gap: 15px; text-align: center; } .banner-left { flex-direction: column; gap: 10px; } .banner-price { margin: 0; justify-content: center; } .banner-current-price { font-size: 1.5rem; } .banner-original-price { font-size: 1rem; } .banner-cta { padding: 10px 25px; font-size: 0.9rem; } /* Hide fixed bottom banner on mobile */ .fixed-bottom-banner { display: none; } /* Additional mobile overflow protection */ * { max-width: 100%; box-sizing: border-box; } /* Ensure images dont overflow */ img { max-width: 100%; height: auto; } /* Text wrapping for mobile */ h1, h2, h3, h4, h5, h6 { word-wrap: break-word; hyphens: auto; } /* Mobile-specific carousel adjustments */ .carousel-container { overflow: hidden; width: 100%; } } /* Loading Animation */ .loading { opacity: 0.6; pointer-events: none; } .spinner { display: inline-block; width: 20px; height: 20px; border: 2px solid rgba(255,255,255,.3); border-radius: 50%; border-top-color: #fff; animation: spin 1s ease-in-out infinite; } @keyframes spin { to { transform: rotate(360deg); } } /* Additional enhancements */ .trust-badges { display: flex; justify-content: center; gap: 20px; margin-top: 1rem; flex-wrap: wrap; } .trust-badge { display: flex; align-items: center; gap: 5px; font-size: 0.9rem; color: var(--text-light); } .guarantee-section { background: var(--card-bg); border: 1px solid var(--border-color); padding: 2rem; border-radius: var(--border-radius); margin: 2rem 0; text-align: center; border-left: 4px solid var(--primary-color); box-shadow: var(--shadow-dark); transition: var(--transition); } .guarantee-section:hover { border-color: var(--primary-color); box-shadow: var(--shadow-glow); } .guarantee-section h3 { color: var(--text-color); margin-bottom: 0.5rem; } .guarantee-section p { color: var(--text-light); } .guarantee-icon { font-size: 3rem; color: var(--primary-color); margin-bottom: 1rem; filter: drop-shadow(0 0 10px rgba(198, 255, 0, 0.3)); } /* Lazy loading placeholder */ .lazy { opacity: 0; transition: opacity 0.3s; } .lazy.loaded { opacity: 1; } /* Perfect For Section */ .perfect-for-section { background: var(--darker-bg); color: var(--text-color); padding: 3rem 0; border-top: 1px solid var(--border-color); } .perfect-for-content { text-align: center; } .perfect-for-title { font-size: 2.5rem; font-weight: 700; margin-bottom: 2rem; color: var(--primary-color); } .perfect-for-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1.5rem; max-width: 800px; margin: 0 auto; } .perfect-for-item { display: flex; align-items: center; justify-content: flex-start; gap: 15px; padding: 1rem; background: rgba(255, 255, 255, 0.1); border-radius: var(--border-radius); font-size: 1.1rem; } .perfect-for-icon { font-size: 1.5rem; color: var(--primary-color); } /* Workflows Showcase */ .workflows-showcase { padding: 4rem 0; background: var(--dark-bg); text-align: center; overflow: hidden; } .showcase-title { text-align: center; font-size: 2.5rem; font-weight: 700; margin-bottom: 3rem; color: var(--text-color); } .highlight-green { color: var(--primary-color); } .carousel-container { width: 100%; overflow: hidden; position: relative; margin-top: 2rem; } .carousel-track { display: flex; animation: scroll 30s linear infinite; width: calc(300px * 15 + 30px * 15); /* 15 cards total */ } .workflow-card { min-width: 300px; margin: 0 15px; padding: 15px; background: var(--card-bg); border: 1px solid var(--border-color); border-radius: var(--border-radius); box-shadow: var(--shadow-dark); transition: var(--transition); flex-shrink: 0; } .workflow-card:hover { transform: translateY(-5px); border-color: var(--primary-color); box-shadow: var(--shadow-glow); } .workflow-image { width: 100%; height: 200px; object-fit: cover; border-radius: 8px; margin-bottom: 15px; } .workflow-card h3 { font-size: 1.1rem; font-weight: 600; color: var(--text-color); margin: 0; line-height: 1.4; } @keyframes scroll { 0% { transform: translateX(0); } 100% { transform: translateX(calc(-300px * 10 - 30px * 10)); /* Move by 10 cards */ } } /* Carousel continues scrolling automatically - no pause on hover */ /* Fixed Bottom Banner */ .fixed-bottom-banner { position: fixed; bottom: 0; left: 0; right: 0; background: var(--gradient-dark); border-top: 2px solid var(--primary-color); padding: 15px 20px; z-index: 9999; box-shadow: 0 -5px 20px rgba(0,0,0,0.5); backdrop-filter: blur(10px); transition: var(--transition); width: 100%; max-width: 100vw; box-sizing: border-box; } .banner-content { max-width: 1200px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 20px; } .banner-left { display: flex; align-items: center; gap: 15px; } .banner-icon { width: 50px; height: 50px; background: var(--gradient-primary); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.5rem; animation: pulse 2s infinite; } @keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } } .banner-text { flex: 1; } .banner-title { font-size: 1.1rem; font-weight: 700; color: var(--text-color); margin-bottom: 5px; } .banner-subtitle { font-size: 0.9rem; color: var(--text-light); } .banner-price { display: flex; align-items: center; gap: 10px; margin: 0 20px; } .banner-current-price { font-size: 1.8rem; font-weight: 700; color: var(--primary-color); } .banner-original-price { font-size: 1.2rem; text-decoration: line-through; color: var(--text-muted); } .banner-cta { background: var(--gradient-primary); color: var(--dark-bg); border: none; padding: 12px 30px; border-radius: 25px; font-weight: 700; font-size: 1rem; cursor: pointer; transition: var(--transition); text-decoration: none; display: inline-flex; align-items: center; gap: 8px; box-shadow: var(--shadow-glow); } .banner-cta:hover { transform: translateY(-2px); box-shadow: 0 5px 20px rgba(198, 255, 0, 0.4); } .banner-close { background: none; border: none; color: var(--text-light); font-size: 1.2rem; cursor: pointer; padding: 5px; transition: var(--transition); } .banner-close:hover { color: var(--text-color); transform: scale(1.1); } .banner-hidden { transform: translateY(100%); } /* Mobile Sticky CTA (hidden by default; enabled at mobile breakpoint) */ .mobile-cta-bar { display: none; } /* How It Works */ .how-it-works { padding: 4rem 0; background: var(--darker-bg); color: var(--text-color); text-align: center; border-top: 1px solid var(--border-color); border-bottom: 1px solid var(--border-color); } .how-it-works-subtitle { font-size: 1.2rem; margin-bottom: 3rem; color: var(--text-light); max-width: 600px; margin-left: auto; margin-right: auto; } .steps-container { display: flex; justify-content: center; gap: 3rem; flex-wrap: wrap; margin-top: 2rem; } .step { text-align: center; max-width: 200px; } .step-number { width: 60px; height: 60px; background: var(--gradient-primary); color: var(--dark-bg); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.5rem; font-weight: 700; margin: 0 auto 1rem; box-shadow: var(--shadow-glow); } .step-content h3 { font-size: 1.3rem; margin-bottom: 0.5rem; color: var(--primary-color); text-shadow: 0 0 10px rgba(198, 255, 0, 0.3); } .step-content p { color: var(--text-light); } /style>/head>body> !-- Header --> header> div classcontainer> div classheader-content> a href/ classlogo> img srcassets/digitools-1024x300-nobg.png altDigiTools.co> /a> nav> ul classnav-links> li>a href#products>Products/a>/li> li>a href#features>Features/a>/li> li>a href#testimonials>Reviews/a>/li> li>a href/blog>Blog/a>/li> li>a href#faq>FAQ/a>/li> /ul> div classheader-actions> !-- Cart Icon --> div classcart-icon onclicktoggleCart()> span classmaterial-icons>shopping_cart/span> span classcart-count idcartCount>0/span> /div> !-- User Menu --> div classuser-menu> button classuser-btn onclicktoggleUserMenu()> span classmaterial-icons>person/span> /button> div classuser-dropdown iduserDropdown> a href# onclickshowLogin()>Sign In/a> a href# onclickshowRegister()>Register/a> a href#dashboard>Dashboard/a> a href#profile>Profile/a> a href# onclicklogout()>Logout/a> /div> /div> button classmobile-menu-btn onclicktoggleMobileMenu()> span classmaterial-icons>menu/span> /button> /div> /nav> /div> /div> /header> !-- Flash Sale Banner --> div classflash-sale> π€ Black Friday Deal Ends In div classcountdown> span classcountdown-item idhours>24 HRS/span> span classcountdown-item idminutes>59 MIN/span> span classcountdown-item idseconds>59 SEC/span> /div> /div> !-- Main Product Section --> section classproduct-section> div classcontainer> div classproduct-grid> !-- Product Gallery --> div classproduct-gallery> div classmain-image-container> img srcassets/digitools_2000_N8N_1.png altThe Ultimate n8n Automation Bundle classmain-image idmainImage> /div> div classthumbnail-gallery> img srcassets/digitools_2000_N8N_1.png altThe Ultimate n8n Automation Bundle classthumbnail active onclickchangeImage(https://digitaldfyproducts.com/cdn/shop/files/PLRMMR_2.png?v1752450521&width600)> img srchttps://digitaldfyproducts.com/cdn/shop/files/PLRMMR.png?v1752450521&width100 altThe Ultimate n8n Automation Bundle classthumbnail onclickchangeImage(https://digitaldfyproducts.com/cdn/shop/files/PLRMMR.png?v1752450521&width600)> img srcassets/digitools_2000_N8N_2.png altThe Ultimate n8n Automation Bundle classthumbnail onclickchangeImage(https://digitaldfyproducts.com/cdn/shop/files/14_a9aa4278-3833-4427-ac51-ec20fa20de85.png?v1752450521&width600)> img srchttps://digitaldfyproducts.com/cdn/shop/files/15_5896d708-c614-45bf-8f96-b04578594db7.png?v1752450521&width100 altThe Ultimate n8n Automation Bundle classthumbnail onclickchangeImage(https://digitaldfyproducts.com/cdn/shop/files/15_5896d708-c614-45bf-8f96-b04578594db7.png?v1752450521&width600)> img srchttps://digitaldfyproducts.com/cdn/shop/files/16_b50313b2-e08b-45c0-8944-c4e01a6078c4.png?v1752450521&width100 altThe Ultimate n8n Automation Bundle classthumbnail onclickchangeImage(https://digitaldfyproducts.com/cdn/shop/files/16_b50313b2-e08b-45c0-8944-c4e01a6078c4.png?v1752450521&width600)> /div> /div> !-- Product Info --> div classproduct-info> div classbadges> span classbadge>π€ Black Friday Deal/span> span classbadge>β‘ Instant Access/span> span classbadge>π Monthly Updates/span> span classbadge>π Copy & Paste/span> span classbadge>β PLR/MRR Included/span> /div> h1 classproduct-title>Black Friday: The Ultimate n8n Automation Bundle/h1> div classrating> div classstars>β β β β β /div> span classrating-text> (650+ Reviews)/span> /div> div classprice-section> span classcurrent-price>$25/span> span classoriginal-price>$49/span> span classsave-badge>SAVE 49%/span> /div> style> @media (max-width: 768px) { .features-list .feature-desc { display: none; } } /style> !-- ul classfeatures-list> li>strong>7500+ plugβandβplay workflows/strong>span classfeature-desc> across growth, ops, and contentβlaunch in minutes./span>/li> li>strong>No-code setup/strong>span classfeature-desc> (copy & paste) with clear notes so you get results fast./span>/li> li>strong>Commercial PLR/MRR license/strong>span classfeature-desc> β resell or use for unlimited clients, keep 100%./span>/li> li>strong>Ongoing monthly updates/strong>span classfeature-desc> β fresh, highβimpact automations added regularly./span>/li> /ul> --> div classguarantee-section> div classguarantee-icon>π‘οΈ/div> h3>30-Day Money-Back Guarantee/h3> p>Try it risk-free. If youre not completely satisfied, get a full refund within 30 days./p> /div> !-- Temporary Debug Section --> !-- div stylemargin: 20px 0; padding: 15px; background: #f8f9fa; border: 1px solid #dee2e6; border-radius: 8px;> h4 stylemargin: 0 0 10px 0; color: #495057;>π§ Debug Testing:/h4> button onclickconsole.log(Test clicked); addToCart(n8n-bundle); console.log(Cart:, cart); stylemargin: 5px; padding: 8px 12px; background: #28a745; color: white; border: none; border-radius: 4px;>Add to Cart Test/button> button onclicktoggleCart(); stylemargin: 5px; padding: 8px 12px; background: #007bff; color: white; border: none; border-radius: 4px;>Toggle Cart/button> button onclickconsole.log(Cart contents:, cart); console.log(Products:, products); stylemargin: 5px; padding: 8px 12px; background: #6c757d; color: white; border: none; border-radius: 4px;>Check Data/button> /div> --> div classcta-section> !-- Urgency banner above button --> div stylebackground: linear-gradient(45deg, #ff4757, #ff3742); color: white; text-align: center; padding: 8px 15px; border-radius: 8px; margin-bottom: 15px; font-weight: 700; animation: pulse 2s infinite;> π€ BLACK FRIDAY: 49% OFF ends in span idurgencyTimer>23:59:42/span> /div> button classcta-button idpurchaseBtn onclickpurchaseMainProduct()> span styledisplay: flex; align-items: center; justify-content: center; gap: 8px;> Get Black Friday Deal β Download All 7500+ Workflows /span> /button> !-- Secondary CTA --> div styletext-align: center; margin-top: 15px;> button onclickdocument.querySelector(#features).scrollIntoView({behavior: smooth}) stylebackground: none; border: 2px solid var(--primary-color); color: var(--primary-color); padding: 10px 25px; border-radius: 8px; font-weight: 600; cursor: pointer; transition: all 0.3s ease; onmouseoverthis.style.backgroundvar(--primary-color); this.style.colorvar(--dark-bg) onmouseoutthis.style.backgroundnone; this.style.colorvar(--primary-color)> π See Whats Included First /button> /div> div classpayment-methods> img srcdata:image/svg+xml,%3Csvg xmlnshttp://www.w3.org/2000/svg viewBox0 0 38 24%3E%3Cpath fill%23635bff dM35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z/%3E%3Cpath fill%23fff dM15.5 9.5c0-1.1-.9-2-2-2s-2 .9-2 2v5c0 1.1.9 2 2 2s2-.9 2-2v-5zm8 0c0-1.1-.9-2-2-2s-2 .9-2 2v5c0 1.1.9 2 2 2s2-.9 2-2v-5z/%3E%3C/svg%3E altStripe> img srcdata:image/svg+xml,%3Csvg xmlnshttp://www.w3.org/2000/svg viewBox0 0 38 24%3E%3Cpath fill%23003087 dM35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z/%3E%3Cpath fill%23fff dM8 8h6v1H9v2h4v1H9v2h5v1H8V8zm8 0h2l2 4 2-4h2l-3 7h-2l-3-7zm9 0h1v7h-1V8z/%3E%3C/svg%3E altPayPal> /div> div classtrust-badges> div classtrust-badge> span classmaterial-icons>security/span> span>Secure Checkout/span> /div> div classtrust-badge> span classmaterial-icons>download/span> span>Instant Download/span> /div> div classtrust-badge> span classmaterial-icons>support/span> span>24/7 Support/span> /div> /div> /div> /div> /div> /div> /section> script> (function(){ async function loadHomeProducts(){ const grid document.getElementById(home-products-grid); const loading document.getElementById(home-products-loading); const error document.getElementById(home-products-error); if (!grid) return; if (loading) loading.style.display block; if (error) error.style.display none; grid.innerHTML ; const endpoints /api/products, https://digitools.co/api/products; let data null; for (const url of endpoints){ try{ const res await fetch(url, { headers: { Accept: application/json }}); if (res.ok){ data await res.json(); break; } } catch(e) { /* try next endpoint */ } } if (!data || !Array.isArray(data.products)){ if (loading) loading.style.display none; if (error) error.style.display block; return; } const products data.products.slice(0, 6); products.forEach((p, idx) > grid.appendChild(createHomeProductCard(p, idx 0))); if (loading) loading.style.display none; } function createHomeProductCard(product, isFeatured){ const div document.createElement(div); div.className isFeatured ? product-card featured-product : product-card; const isAffiliate (product.product_type || digital) affiliate; if (isAffiliate && product.affiliate_url){ div.onclick () > window.open(product.affiliate_url, _blank); } else { div.onclick () > (typeof viewProduct function ? viewProduct(product.id) : null); } const hasDiscount product.original_price && Number(product.original_price) > Number(product.price); const savings hasDiscount ? Math.round(((product.original_price - product.price) / product.original_price) * 100) : 0; const originalHtml hasDiscount ? `span classproduct-original-price>$${Number(product.original_price).toFixed(2)}/span>` : ; const saveBadge savings > 0 ? `span classsave-badge>SAVE ${savings}%/span>` : ; const priceBlock isAffiliate ? `span classproduct-price>External/span>` : `span class\product-price\>$${Number(product.price).toFixed(2)}/span> ${originalHtml} ${saveBadge}`; div.innerHTML ` img src${product.image_url || assets/digitools-icon.png} alt${product.name} classproduct-image onerrorthis.srcassets/digitools-icon.png> div classproduct-content> div classproduct-category>${(product.category || Digital)} span classbf-badge>BF DEAL/span>/div> h3 classproduct-card-title>${product.name}/h3> p classproduct-description>${product.description || Premium digital product}/p> div classproduct-pricing>${priceBlock}/div> button classcta-button>${isAffiliate ? π View Product : π€ Get Black Friday Deal}/button> /div> `; const btn div.querySelector(.cta-button); if (btn){ if (isAffiliate && product.affiliate_url){ btn.addEventListener(click, (e) > { e.stopPropagation(); window.open(product.affiliate_url, _blank); }); } else { btn.addEventListener(click, (e) > { e.stopPropagation(); if (typeof addToCart function) addToCart(product.id, product.name, Number(product.price) || 0); }); } } return div; } document.addEventListener(DOMContentLoaded, loadHomeProducts); })(); /script> !-- Perfect For Section --> section classperfect-for-section> div classcontainer> div classperfect-for-content> h2 classperfect-for-title>Perfect for:/h2> div classperfect-for-grid> div classperfect-for-item> span classperfect-for-icon>β /span> span>Solopreneurs & content creators/span> /div> div classperfect-for-item> span classperfect-for-icon>β /span> span>Freelancers & digital marketers/span> /div> div classperfect-for-item> span classperfect-for-icon>β /span> span>Agencies offering automation services/span> /div> div classperfect-for-item> span classperfect-for-icon>β /span> span>Anyone who wants to save time and automate smart/span> /div> /div> /div> /div> /section> !-- Workflows Showcase Section --> section classworkflows-showcase> div classcontainer> h2 classshowcase-title>7500+ Unique Workflows span classhighlight-green>Updated Every Month!/span>/h2> div classcarousel-container> div classcarousel-track> !-- First set of cards --> div classworkflow-card> img srchttps://cdn.shopify.com/s/files/1/0807/5709/6775/files/Bullet_point.webp?v1737488947 altBenefit Bullet points classworkflow-image> h3>Benefit Bullet points/h3> /div> div classworkflow-card> img srchttps://cdn.shopify.com/s/files/1/0807/5709/6775/files/42.jpg?v1752446630 altAI Asmr Videos classworkflow-image> h3>AI Asmr Videos/h3> /div> div classworkflow-card> img srchttps://cdn.shopify.com/s/files/1/0807/5709/6775/files/casa_ube_7.jpg?v1752448880 altChristmas Discount Code classworkflow-image> h3>POV Gorilla Clip/h3> /div> div classworkflow-card> img srchttps://cdn.shopify.com/s/files/1/0807/5709/6775/files/40.jpg?v1752446630 altViews in the last 24hrs classworkflow-image> h3>Invoice & Admin Automations/h3> /div> div classworkflow-card> img srchttps://cdn.shopify.com/s/files/1/0807/5709/6775/files/39.jpg?v1752446629 altFree Delivery CTA classworkflow-image> h3>Viral Trends Tracker/h3> /div> div classworkflow-card> img srchttps://cdn.shopify.com/s/files/1/0807/5709/6775/files/36.jpg?v1752446629 altContent Calendar Automation classworkflow-image> h3>Content Calendar Automation/h3> /div> div classworkflow-card> img srchttps://cdn.shopify.com/s/files/1/0807/5709/6775/files/37.jpg?v1752446629 altCoupon Code classworkflow-image> h3>DM Outreach & Follow-up System/h3> /div> div classworkflow-card> img srchttps://cdn.shopify.com/s/files/1/0807/5709/6775/files/35.jpg?v1752446629 altBenefit Bullet points classworkflow-image> h3>AI Knowledge Bot (Q&A Systems)/h3> /div> div classworkflow-card> img srchttps://cdn.shopify.com/s/files/1/0807/5709/6775/files/41.jpg?v1752446629 altPodcast (VEO3 Style) classworkflow-image> h3>Podcast (VEO3 Style)/h3> /div> div classworkflow-card> img srchttps://cdn.shopify.com/s/files/1/0807/5709/6775/files/38.jpg?v1752446629 altChristmas Discount Code classworkflow-image> h3>Repurposing Content Bot/h3> /div> !-- Duplicate set for infinite scroll --> div classworkflow-card> img srchttps://cdn.shopify.com/s/files/1/0807/5709/6775/files/Bullet_point.webp?v1737488947 altBenefit Bullet points classworkflow-image> h3>Benefit Bullet points/h3> /div> div classworkflow-card> img srchttps://cdn.shopify.com/s/files/1/0807/5709/6775/files/42.jpg?v1752446630 altAI Asmr Videos classworkflow-image> h3>AI Asmr Videos/h3> /div> div classworkflow-card> img srchttps://cdn.shopify.com/s/files/1/0807/5709/6775/files/casa_ube_7.jpg?v1752448880 altChristmas Discount Code classworkflow-image> h3>POV Gorilla Clip/h3> /div> div classworkflow-card> img srchttps://cdn.shopify.com/s/files/1/0807/5709/6775/files/40.jpg?v1752446630 altViews in the last 24hrs classworkflow-image> h3>Invoice & Admin Automations/h3> /div> div classworkflow-card> img srchttps://cdn.shopify.com/s/files/1/0807/5709/6775/files/39.jpg?v1752446629 altFree Delivery CTA classworkflow-image> h3>Viral Trends Tracker/h3> /div> /div> /div> /div> /section> !-- How It Works Section --> section classhow-it-works> div classcontainer> h2 classsection-title>How It Works?/h2> p classhow-it-works-subtitle>Simply copy any automation template from the bundle, paste it into your n8n workspace, and launch it instantly/p> !-- Demo Video --> div classdemo-video-container styletext-align: center; margin: 3rem 0;> video controls autoplay muted loop stylewidth: 100%; max-width: 800px; border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.3); posterhttps://digitaldfyproducts.com/cdn/shop/files/PLRMMR_2.png?v1752450521&width800 > source srchttps://digitaldfyproducts.com/cdn/shop/videos/c/vp/a78f4257db094860930cc57726cf2e34/a78f4257db094860930cc57726cf2e34.HD-1080p-7.2Mbps-51126083.mp4?v0 typevideo/mp4> p>Your browser doesnt support HTML5 video. a hrefhttps://digitaldfyproducts.com/cdn/shop/videos/c/vp/a78f4257db094860930cc57726cf2e34/a78f4257db094860930cc57726cf2e34.HD-1080p-7.2Mbps-51126083.mp4?v0>Download the video/a> instead./p> /video> /div> div classsteps-container> div classstep> div classstep-number>1/div> div classstep-content> h3>Copy/h3> p>Select any workflow from our library/p> /div> /div> div classstep> div classstep-number>2/div> div classstep-content> h3>Paste/h3> p>Import it into your n8n workspace/p> /div> /div> div classstep> div classstep-number>3/div> div classstep-content> h3>Launch/h3> p>Customize and activate instantly/p> /div> /div> /div> /div> /section> !-- Features Section --> section classsection idfeatures> div classcontainer> h2 classsection-title>Why This span classhighlight>Black Friday n8n Bundle/span> Is Worth It/h2> div classfeatures-grid> div classfeature-card> div classfeature-icon>π/div> h3>Copy & Paste Simple/h3> p>Import any workflow instantly into your n8n workspace. No coding or technical knowledge required./p> /div> div classfeature-card> div classfeature-icon>π€/div> h3>7500+ Pre-Built Workflows/h3> p>Comprehensive library covering lead generation, social media, email automation, and data integration./p> /div> div classfeature-card> div classfeature-icon>π°/div> h3>Commercial Rights/h3> p>Use for clients, resell as your own, or build your automation agency. Full PLR/MRR included./p> /div> div classfeature-card> div classfeature-icon>π/div> h3>Monthly Updates/h3> p>Fresh workflows added every month to keep your automation toolkit current and powerful./p> /div> div classfeature-card> div classfeature-icon>π―/div> h3>Business-Ready/h3> p>Perfect for entrepreneurs, freelancers, agencies, and anyone wanting to automate their workflows./p> /div> div classfeature-card> div classfeature-icon>β‘/div> h3>Instant Implementation/h3> p>Copy, paste, and launch in minutes. Transform months of development work into instant automation./p> /div> /div> /div> /section> !-- Testimonials Section --> section classsection testimonials idtestimonials> div classcontainer> h2 classsection-title>Loved by 650+ Makers/h2> div classswiper-container swiper-initialized swiper-horizontal swiper-backface-hidden> div classswiper-wrapper idswiper-wrapper-240e30a24fe0ca21 aria-liveoff styletransition-duration: 0ms; transform: translate3d(0px, 0px, 0px); transition-delay: 0ms;> div classswiper-slide swiper-slide-active stylewidth: 408.333px; margin-right: 10px; rolegroup aria-label1 / 8> div classtestimonial-card> div classtestimonial-stars>β β β β β /div> p classtestimonial-text>Ive automated like half my weekly tasks with this. Big time saver./p> div classtestimonial-author> font stylecolor: #FFFFFF!important; font-weight: bold;>Jack T./font> img srchttps://cdn3.emoji.gg/emojis/9796-verified.png width20px height20px altVerified> font stylefont-size: 12px; color: #FFFFFF;>Verified/font> /div> /div> /div> div classswiper-slide swiper-slide-next stylewidth: 408.333px; margin-right: 10px; rolegroup aria-label2 / 8> div classtestimonial-card> div classtestimonial-stars>β β β β β /div> p classtestimonial-text>Didnt expect to use this much of it β but its been super helpful. The workflows are way more useful than I thought./p> div classtestimonial-author> font stylecolor: #FFFFFF!important; font-weight: bold;>Sophian B./font> img srchttps://cdn3.emoji.gg/emojis/9796-verified.png width20px height20px altVerified> font stylefont-size: 13px; color: #FFFFFF;>Verified/font> /div> /div> /div> div classswiper-slide stylewidth: 408.333px; margin-right: 10px; rolegroup aria-label3 / 8> div classtestimonial-card> div classtestimonial-stars>β β β β β /div> p classtestimonial-text>Honestly, I didnt even know where to start with n8n, but this made it super simple./p> div classtestimonial-author> font stylecolor: #FFFFFF!important; font-weight: bold;>Ashley B./font> img srchttps://cdn3.emoji.gg/emojis/9796-verified.png width20px height20px altVerified> font stylefont-size: 13px; color: #FFFFFF;>Verified/font> /div> /div> /div> div classswiper-slide stylewidth: 408.333px; margin-right: 10px; rolegroup aria-label4 / 8> div classtestimonial-card> div classtestimonial-stars> span stylecolor: #f7d131;>β /span>span stylecolor: #f7d131;>β /span>span stylecolor: #f7d131;>β /span>span stylecolor: #f7d131;>β /span>span stylecolor: #f7d131;>β /span> /div> p classtestimonial-text stylemargin-top:10px>Good value for the price. Id recommend it for freelancers./p> div classtestimonial-author> font stylecolor: #FFFFFF!important; font-weight: bold;>David P./font> img srchttps://cdn3.emoji.gg/emojis/9796-verified.png width20px height20px altVerified> font stylefont-size: 13px; color: #FFFFFF;>Verified/font> /div> /div> /div> div classswiper-slide stylewidth: 408.333px; margin-right: 10px; rolegroup aria-label5 / 8> div classtestimonial-card> div classtestimonial-stars>β β β β β /div> p classtestimonial-text>Love that I dont have to build everything from scratch. I just copy, edit, and move on. Feels like cheating (but in a good way)./p> div classtestimonial-author> font stylecolor: #FFFFFF!important; font-weight: bold;>Carmen F./font> img srchttps://cdn3.emoji.gg/emojis/9796-verified.png width20px height20px altVerified> font stylefont-size: 13px; color: #FFFFFF;>Verified/font> /div> /div> /div> div classswiper-slide stylewidth: 408.333px; margin-right: 10px; rolegroup aria-label6 / 8> div classtestimonial-card> div classtestimonial-stars>β β β β β /div> p classtestimonial-text>The organization by category is great β I found exactly what I needed in 2 minutes./p> div classtestimonial-author> font stylecolor: #FFFFFF!important; font-weight: bold;>LΓ©o J./font> img srchttps://cdn3.emoji.gg/emojis/9796-verified.png width20px height20px altVerified> font stylefont-size: 13px; color: #FFFFFF;>Verified/font> /div> /div> /div> div classswiper-slide stylewidth: 408.333px; margin-right: 10px; rolegroup aria-label7 / 8> div classtestimonial-card> div classtestimonial-stars> span stylecolor: #f7d131;>β /span>span stylecolor: #f7d131;>β /span>span stylecolor: #f7d131;>β /span>span stylecolor: #f7d131;>β /span>span stylebackground-image: linear-gradient(to right, #f7d131 50%, #f7d131 50%); -webkit-background-clip: text !important; -moz-background-clip: text !important; -webkit-text-fill-color: transparent !important;>β /span> /div> p classtestimonial-text>Not gonna lie, I bought this mostly out of curiosity... but now I use it daily in my Notion and email routines./p> div classtestimonial-author> font stylecolor: #FFFFFF!important; font-weight: bold;>Emily K./font> img srchttps://cdn3.emoji.gg/emojis/9796-verified.png width20px height20px altVerified> font stylefont-size: 13px; color: #FFFFFF;>Verified/font> /div> /div> /div> div classswiper-slide rolegroup aria-label8 / 8 stylewidth: 408.333px; margin-right: 10px;> div classtestimonial-card> div classtestimonial-stars> span stylecolor: #f7d131;>β /span>span stylecolor: #f7d131;>β /span>span stylecolor: #f7d131;>β /span>span stylecolor: #f7d131;>β /span>span stylecolor: #DDDDDD;>β /span> /div> p classtestimonial-text>Works well overall. A couple workflows needed a small fix, but support helped quickly./p> div classtestimonial-author> font stylecolor: #FFFFFF!important; font-weight: bold;>Marius D./font> img srchttps://cdn3.emoji.gg/emojis/9796-verified.png width20px height20px altVerified> font stylefont-size: 13px; color: #FFFFFF;>Verified/font> /div> /div> /div> /div> !-- Add Navigation Arrows --> div classswiper-button-prev swiper-button-disabled tabindex-1 rolebutton aria-labelPrevious slide aria-controlsswiper-wrapper-240e30a24fe0ca21 aria-disabledtrue>/div> div classswiper-button-next tabindex0 rolebutton aria-labelNext slide aria-controlsswiper-wrapper-240e30a24fe0ca21 aria-disabledfalse>/div> !-- Add Pagination --> div classswiper-pagination swiper-pagination-clickable swiper-pagination-bullets swiper-pagination-horizontal> span classswiper-pagination-bullet swiper-pagination-bullet-active tabindex0 rolebutton aria-labelGo to slide 1 aria-currenttrue>/span> span classswiper-pagination-bullet tabindex0 rolebutton aria-labelGo to slide 2>/span> span classswiper-pagination-bullet tabindex0 rolebutton aria-labelGo to slide 3>/span> span classswiper-pagination-bullet tabindex0 rolebutton aria-labelGo to slide 4>/span> span classswiper-pagination-bullet tabindex0 rolebutton aria-labelGo to slide 5>/span> span classswiper-pagination-bullet tabindex0 rolebutton aria-labelGo to slide 6>/span> /div> span classswiper-notification aria-liveassertive aria-atomictrue>/span> /div> /div> /section> !-- FAQ Section --> section classsection idfaq> div classcontainer> h2 classsection-title>Frequently Asked span classhighlight>Questions/span>/h2> div classfaq-container> div classfaq-item> button classfaq-question onclicktoggleFAQ(this)> What are n8n automation templates? span classmaterial-icons>expand_more/span> /button> div classfaq-answer> They are pre-built workflows designed for the n8n automation platform. You can import them instantly to automate tasks like lead generation, social media posting, email workflows, data sync, and much more β without starting from scratch. /div> /div> div classfaq-item> button classfaq-question onclicktoggleFAQ(this)> Do I need coding experience to use this bundle? span classmaterial-icons>expand_more/span> /button> div classfaq-answer> Absolutely not. These workflows are plug-and-play: simply copy, paste, and customize inside n8n. No coding required. /div> /div> div classfaq-item> button classfaq-question onclicktoggleFAQ(this)> Do I need to pay for n8n to use these workflows? span classmaterial-icons>expand_more/span> /button> div classfaq-answer> No. n8n offers a completely free self-hosted version. You can use these templates with either the free version or the cloud version, depending on your setup. /div> /div> div classfaq-item> button classfaq-question onclicktoggleFAQ(this)> What is a PLR/MRR license? span classmaterial-icons>expand_more/span> /button> div classfaq-answer> Its a resale license that allows you to sell the product as your own and keep 100% of the profits β no attribution or royalties needed. /div> /div> div classfaq-item> button classfaq-question onclicktoggleFAQ(this)> Can I use these automations for client work? span classmaterial-icons>expand_more/span> /button> div classfaq-answer> Yes β you can use them in your own business or to deliver value to your clients. Perfect for agencies, freelancers, and consultants. /div> /div> div classfaq-item> button classfaq-question onclicktoggleFAQ(this)> Need help implementing an automation? span classmaterial-icons>expand_more/span> /button> div classfaq-answer> No worries β just send us a message. If youre facing an issue or need help customizing a workflow, our team is here to assist and make sure everything runs smoothly. /div> /div> /div> /div> /section> !-- Our Digital Products Section --> section classsection idproducts> div classcontainer> h2 classsection-title>Our span classhighlight>Digital Products/span>/h2> p styletext-align: center; margin-bottom: 3rem; color: var(--text-light);> Discover our premium collection of digital tools, templates, and automation workflows /p> div classproducts-grid idhome-products-grid>/div> div idhome-products-loading classloading styletext-align:center; width:100%; margin-top:1rem;> div classspinner>β‘/div> p stylecolor: var(--text-light);>Loading products.../p> /div> div idhome-products-error classerror styledisplay:none; text-align:center; width:100%; margin-top:1rem;> div stylefont-size: 2rem; margin-bottom: 0.5rem;>β οΈ/div> p stylecolor: var(--text-light);>Unable to load products. Please refresh./p> /div> div styletext-align: center; margin-top: 3rem;> a href/products.html classcta-button> ποΈ View All Products /a> /div> /div> /section> !-- Footer --> footer idcontact> div classcontainer styledisplay:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between> p stylemargin:8px 0>© 2025 DigiTools.co. All rights reserved./p> p stylemargin:8px 0>Secure payments powered by Stripe | Email: a hrefmailto:support@digitools.co stylecolor:#58a6ff;text-decoration:none>support@digitools.co/a>/p> nav styledisplay:flex;gap:16px;margin:8px 0> a href/about.html stylecolor:#58a6ff;text-decoration:none>About/a> a href/privacy.html stylecolor:#58a6ff;text-decoration:none>Privacy/a> a href/terms.html stylecolor:#58a6ff;text-decoration:none>Terms/a> /nav> /div> /footer> !-- Swiper JS --> script srchttps://unpkg.com/swiper/swiper-bundle.min.js>/script> script> // Initialize Stripe with public key from secure API let stripe; // Fetch Stripe public key from backend async function initializeStripe() { try { console.log(π Initializing Stripe...); // Try multiple endpoints for reliability const endpoints https://digitools.co/api/stripe/public-key, /api/stripe/public-key, api/stripe/public-key ; let publicKey null; let lastError null; for (const endpoint of endpoints) { try { console.log(π Trying endpoint:, endpoint); const response await fetch(endpoint, { method: GET, headers: { Accept: application/json, Content-Type: application/json, }, credentials: same-origin }); if (response.ok) { const data await response.json(); console.log(π¦ Received Stripe data from, endpoint, :, data); if (data.publicKey) { publicKey data.publicKey; break; } } } catch (err) { console.log(β οΈ Endpoint failed:, endpoint, err.message); lastError err; continue; } } // Fallback to hardcoded public key if all endpoints fail if (!publicKey) { console.log(β οΈ All endpoints failed, using fallback public key); publicKey pk_live_51NLrZpBVfBqN5qxKZOuh2k98zUQcWn15O6KgXmV3okF8JBEU5flCHh7CgkVZNTHtH6WQHSNsqGMynAYwSY4oQH1q00Peg7rgwd; } if (!publicKey) { throw new Error(No public key available from any source); } stripe Stripe(publicKey); console.log(β Stripe initialized successfully with key:, publicKey.substring(0, 20) + ...); return true; } catch (error) { console.error(β Failed to initialize Stripe:, error); // One final attempt with direct Stripe key try { const fallbackKey pk_live_51NLrZpBVfBqN5qxKZOuh2k98zUQcWn15O6KgXmV3okF8JBEU5flCHh7CgkVZNTHtH6WQHSNsqGMynAYwSY4oQH1q00Peg7rgwd; stripe Stripe(fallbackKey); console.log(β Stripe initialized with fallback key); return true; } catch (fallbackError) { console.error(β Fallback initialization also failed:, fallbackError); showNotification(Payment system initialization failed. Please refresh the page., error); return false; } } } // Initialize Stripe when page loads document.addEventListener(DOMContentLoaded, async () > { console.log(π Page loaded, initializing...); // Initialize cart first updateCartCount(); // Try to initialize Stripe with retries let retries 3; let initialized false; while (retries > 0 && !initialized) { console.log(`π Stripe initialization attempt ${4 - retries}/3`); initialized await initializeStripe(); if (!initialized) { retries--; if (retries > 0) { console.log(`β³ Retrying in 2 seconds... (${retries} attempts left)`); await new Promise(resolve > setTimeout(resolve, 2000)); } } } if (initialized) { console.log(β Page initialized with secure Stripe configuration); } else { console.log(β οΈ Page initialized but Stripe may have issues); // Dont show error here, will be shown when user tries to checkout } }); // Cart functionality let cart JSON.parse(localStorage.getItem(digitools_cart)) || ; // Product catalog with all available products const productCatalog { n8n-bundle: { id: n8n-bundle, name: The Ultimate n8n Automation Bundle, price: 25, originalPrice: 49, currency: β¬, image: assets/digitools_2000_N8N_1.png, description: 7500+ pre-built n8n automation workflows, stripeProductId: prod_Smpteka4mthjcU, stripePriceId: price_1RrGDpBVfBqN5qxKWxPBht55 }, canva-templates: { id: canva-templates, name: 1000+ Canva Static Ads Templates, price: 35, originalPrice: 59, currency: β¬, image: https://digitaldfyproducts.com/cdn/shop/files/33_f9450212-23f3-403e-82c4-8736d9b88174.png?v1746406844&width360, description: Complete collection of professional ad templates, stripeProductId: prod_example2, stripePriceId: price_example2 }, shopify-theme: { id: shopify-theme, name: The Best Shopify Theme, price: 89, originalPrice: 350, currency: β¬, image: https://digitaldfyproducts.com/cdn/shop/files/38_005c219b-d605-485b-aa24-b3c36b095c8d.png?v1746405900&width360, description: Premium Shopify theme with all features, stripeProductId: prod_example3, stripePriceId: price_example3 }, shopify-codebook: { id: shopify-codebook, name: Shopify Ultimate Liquid Codebook, price: 35, originalPrice: 119, currency: β¬, image: https://digitaldfyproducts.com/cdn/shop/files/68_5fd6576e-85f7-44e1-a973-a63f51077004.png?v1752358653&width360, description: Complete guide and code snippets for Shopify Liquid, stripeProductId: prod_example4, stripePriceId: price_example4 }, conversion-checklist: { id: conversion-checklist, name: E-Commerce Conversion Checklist, price: 29, originalPrice: 49, currency: β¬, image: https://digitaldfyproducts.com/cdn/shop/files/69_a94e384a-9ccc-4d67-87a5-513d3f3597f8.png?v1752358692&width360, description: Complete checklist to optimize your e-commerce store, stripeProductId: prod_example5, stripePriceId: price_example5 }, trustpilot-codes: { id: trustpilot-codes, name: Trustpilot Integration Codes, price: 29, originalPrice: 54, currency: β¬, image: https://digitaldfyproducts.com/cdn/shop/files/67_7b8340af-53c4-4a8d-89c8-d1975bc11802.png?v1752358671&width360, description: Ready-to-use code snippets for Trustpilot reviews, stripeProductId: prod_example6, stripePriceId: price_example6 } }; function updateCartCount() { const totalItems cart.reduce((sum, item) > sum + item.quantity, 0); document.getElementById(cartCount).textContent totalItems; } function addToCart(productId, productName, price) { // Get product from catalog or use provided params const product productCatalogproductId || { id: productId || n8n-bundle, name: productName || The Ultimate n8n Automation Bundle, price: price || 25, currency: β¬, image: assets/digitools_2000_N8N_1.png, description: Premium digital product }; const existingItem cart.find(item > item.id product.id); if (existingItem) { existingItem.quantity + 1; } else { cart.push({ ...product, quantity: 1 }); } localStorage.setItem(digitools_cart, JSON.stringify(cart)); updateCartCount(); renderCart(); // Show success message showNotification(`${product.name} added to cart!`, success); // Optional: briefly show cart if (cart.length 1) { setTimeout(() > { toggleCart(); }, 500); } } function removeFromCart(productId) { cart cart.filter(item > item.id ! productId); localStorage.setItem(digitools_cart, JSON.stringify(cart)); updateCartCount(); renderCart(); showNotification(Item removed from cart, info); } function updateQuantity(productId, newQuantity) { const item cart.find(item > item.id productId); if (item) { if (newQuantity 0) { removeFromCart(productId); } else { item.quantity parseInt(newQuantity); localStorage.setItem(digitools_cart, JSON.stringify(cart)); updateCartCount(); renderCart(); } } } function calculateTotal() { return cart.reduce((total, item) > total + (item.price * item.quantity), 0); } function renderCart() { const cartItems document.getElementById(cartItems); const cartEmpty document.getElementById(cartEmpty); const cartFooter document.getElementById(cartFooter); const cartTotal document.getElementById(cartTotal); if (cart.length 0) { cartEmpty.style.display block; cartItems.style.display none; cartFooter.style.display none; } else { cartEmpty.style.display none; cartItems.style.display block; cartFooter.style.display block; cartItems.innerHTML cart.map(item > ` div classcart-item> img src${item.image} alt${item.name} classcart-item-image onerrorthis.srcassets/digitools-1024x300-nobg.png> div classcart-item-details> div classcart-item-name>${item.name}/div> div classcart-item-price>${item.currency}${item.price}/div> div classcart-item-quantity> button classquantity-btn onclickupdateQuantity(${item.id}, ${item.quantity - 1})>-/button> input typenumber classquantity-input value${item.quantity} onchangeupdateQuantity(${item.id}, this.value) min1> button classquantity-btn onclickupdateQuantity(${item.id}, ${item.quantity + 1})>+/button> /div> /div> button classcart-item-remove onclickremoveFromCart(${item.id}) titleRemove item> span classmaterial-icons>delete/span> /button> /div> `).join(); cartTotal.textContent `β¬${calculateTotal().toFixed(2)}`; } } function toggleCart() { const sidebar document.getElementById(cartSidebar); const overlay document.getElementById(cartOverlay); sidebar.classList.toggle(active); overlay.classList.toggle(active); if (sidebar.classList.contains(active)) { renderCart(); document.body.style.overflow hidden; } else { document.body.style.overflow ; } } function closeCart() { const sidebar document.getElementById(cartSidebar); const overlay document.getElementById(cartOverlay); sidebar.classList.remove(active); overlay.classList.remove(active); document.body.style.overflow ; } function clearCart() { cart ; localStorage.setItem(digitools_cart, JSON.stringify(cart)); updateCartCount(); renderCart(); showNotification(Cart cleared, info); } // Enhanced checkout function for multiple items async function checkoutCart() { if (cart.length 0) { showNotification(Your cart is empty!, error); return; } // Get customer email const emailInput document.getElementById(customerEmail); const customerEmail emailInput.value.trim(); // Validate email if (!customerEmail) { showNotification(Please enter your email address, error); emailInput.focus(); return; } const emailRegex /^^\s@+@^\s@+\.^\s@+$/; if (!emailRegex.test(customerEmail)) { showNotification(Please enter a valid email address, error); emailInput.focus(); return; } if (!stripe) { console.log(π Stripe not initialized, attempting to initialize...); showNotification(Initializing payment system..., info); const initialized await initializeStripe(); if (!initialized || !stripe) { showNotification(Payment system initialization failed. Please refresh the page and try again., error); return; } console.log(β Stripe initialization successful); } const checkoutBtn document.querySelector(.cart-checkout-btn); const originalText checkoutBtn.innerHTML; checkoutBtn.innerHTML span classspinner>/span> Processing...; checkoutBtn.disabled true; try { // Prepare payloads compatible with both backends const cartItems cart.map(item > ({ productId: item.id, id: item.id, quantity: item.quantity })); const payloadV1 { // order-management-server.js expects this shape cartItems, customerEmail, successUrl: window.location.origin + /success.html, cancelUrl: window.location.origin + /cancel.html }; const payloadV0 { // legacy server.js expects this shape items: cart.map(item > ({ id: item.id, quantity: item.quantity })), email: customerEmail, successUrl: window.location.origin + /success.html, cancelUrl: window.location.origin + /cancel.html }; const endpoints https://digitools.co/create-checkout-session, /create-checkout-session ; let sessionId null; let lastErr null; for (const url of endpoints) { // Try modern payload first for (const body of payloadV1, payloadV0) { try { console.log(β‘οΈ Posting to, url, with schema, body.items ? items : cartItems); const res await fetch(url, { method: POST, headers: { Content-Type: application/json }, body: JSON.stringify(body) }); if (!res.ok) { const text await res.text(); console.warn(Endpoint responded, res.status, for, url, | body schema:, body.items ? items : cartItems, \n, text); lastErr new Error(`HTTP ${res.status}: ${text.slice(0, 200)}`); continue; } const data await res.json().catch(() > ({})); sessionId data.sessionId; if (sessionId) break; // Some servers return {url}; support that too if (data.url) { console.log(π Server returned URL, redirecting directly); window.location.href data.url; return; } } catch (e) { console.warn(Request failed for, url, with, (body.items ? items : cartItems), e.message); lastErr e; } } if (sessionId) break; } if (!sessionId) { console.error(No session ID after trying all endpoints); throw lastErr || new Error(Checkout endpoint not available (404).); } // Redirect to Stripe Checkout const result await stripe.redirectToCheckout({ sessionId }); if (result.error) { console.error(Stripe error:, result.error); showNotification(Payment failed: + result.error.message, error); } } catch (error) { console.error(Error:, error); if (error.message.includes(Server error: 500)) { showNotification(Backend server error. Please try again., error); } else if (error.message.includes(Failed to fetch)) { showNotification(Cannot connect to payment server. Please try again later., error); } else { showNotification(Error: + error.message, error); } } finally { checkoutBtn.innerHTML originalText; checkoutBtn.disabled false; } } // Direct Stripe Checkout for mobile (bypasses cart) async function directCheckout(productId n8n-bundle, quantity 1) { try { // Ensure Stripe is initialized if (!stripe) { showNotification(Initializing payment..., info); const ok await initializeStripe(); if (!ok || !stripe) { showNotification(Failed to initialize payment. Please refresh and try again., error); return; } } // UI feedback (mobile bar/button if present) const mobileBtn document.querySelector(.mobile-cta-button); const bannerBtn document.querySelector(.banner-cta); const originalMobile mobileBtn ? mobileBtn.innerHTML : null; const originalBanner bannerBtn ? bannerBtn.innerHTML : null; if (mobileBtn) { mobileBtn.innerHTML span classspinner>/span> Redirecting...; mobileBtn.disabled true; } if (bannerBtn) { bannerBtn.innerHTML span classspinner>/span> Redirecting...; bannerBtn.disabled true; } // Build payloads compatible with both backends const payloadV1 { cartItems: { productId, id: productId, quantity }, successUrl: window.location.origin + /success.html, cancelUrl: window.location.origin + /cancel.html }; const payloadV0 { items: { id: productId, quantity }, successUrl: window.location.origin + /success.html, cancelUrl: window.location.origin + /cancel.html }; const endpoints https://digitools.co/create-checkout-session, /create-checkout-session ; let sessionId null; let lastErr null; for (const url of endpoints) { for (const body of payloadV1, payloadV0) { try { const res await fetch(url, { method: POST, headers: { Content-Type: application/json }, body: JSON.stringify(body) }); if (!res.ok) { const text await res.text(); lastErr new Error(`HTTP ${res.status}: ${text.slice(0, 200)}`); continue; } const data await res.json().catch(() > ({})); if (data.url) { window.location.href data.url; return; } sessionId data.sessionId; if (sessionId) break; } catch (e) { lastErr e; } } if (sessionId) break; } if (!sessionId) { throw lastErr || new Error(Checkout service unavailable.); } // Redirect to Stripe Checkout const result await stripe.redirectToCheckout({ sessionId }); if (result.error) { showNotification(Payment failed: + result.error.message, error); } } catch (err) { console.error(err); showNotification(Cannot start checkout. Please try again., error); } finally { const mobileBtn document.querySelector(.mobile-cta-button); const bannerBtn document.querySelector(.banner-cta); if (mobileBtn && typeof originalMobile ! undefined) { mobileBtn.innerHTML originalMobile; mobileBtn.disabled false; } if (bannerBtn && typeof originalBanner ! undefined) { bannerBtn.innerHTML originalBanner; bannerBtn.disabled false; } } } function toggleUserMenu() { const dropdown document.getElementById(userDropdown); dropdown.classList.toggle(active); } function showLogin() { // Implement login modal alert(Login functionality - integrate with Supabase Auth); } function showRegister() { // Implement register modal alert(Register functionality - integrate with Supabase Auth); } function logout() { // Implement logout alert(Logout functionality); } function viewProduct(productId) { // Get product details const product productCatalogproductId; if (product) { const shouldAdd confirm(`${product.name} - ${product.currency}${product.price}\n\n${product.description}\n\nAdd to cart?`); if (shouldAdd) { addToCart(productId); } } else { // Fallback for unknown products console.log(Product not found in catalog:, productId); const shouldAdd confirm(`Add this product to cart?`); if (shouldAdd) { addToCart(productId); } } } function viewAllProducts() { // Navigate to products page document.getElementById(products).scrollIntoView({ behavior: smooth }); } function showNotification(message, type info) { const notification document.createElement(div); const bgColor type success ? #28a745 : type error ? #dc3545 : #007bff; notification.style.cssText ` position: fixed; top: 20px; right: 20px; background: ${bgColor}; color: white; padding: 15px 20px; border-radius: 8px; font-size: 14px; font-weight: 500; z-index: 10000; animation: slideInRight 0.5s ease; box-shadow: 0 4px 15px rgba(0,0,0,0.2); max-width: 300px; `; notification.textContent message; document.body.appendChild(notification); setTimeout(() > { notification.style.animation slideOutRight 0.5s ease; setTimeout(() > { if (document.body.contains(notification)) { document.body.removeChild(notification); } }, 500); }, 3000); } // Countdown Timer function updateCountdown() { const now new Date(); const midnight new Date(); midnight.setHours(24, 0, 0, 0); const timeLeft midnight.getTime() - now.getTime(); const hours Math.floor((timeLeft % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); const minutes Math.floor((timeLeft % (1000 * 60 * 60)) / (1000 * 60)); const seconds Math.floor((timeLeft % (1000 * 60)) / 1000); document.getElementById(hours).textContent String(hours).padStart(2, 0) + HRS; document.getElementById(minutes).textContent String(minutes).padStart(2, 0) + MIN; document.getElementById(seconds).textContent String(seconds).padStart(2, 0) + SEC; } setInterval(updateCountdown, 1000); updateCountdown(); // Urgency Timer for CTA section function updateUrgencyTimer() { const now new Date(); const midnight new Date(); midnight.setHours(24, 0, 0, 0); const timeLeft midnight.getTime() - now.getTime(); const hours Math.floor((timeLeft % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); const minutes Math.floor((timeLeft % (1000 * 60 * 60)) / (1000 * 60)); const seconds Math.floor((timeLeft % (1000 * 60)) / 1000); const urgencyTimerEl document.getElementById(urgencyTimer); if (urgencyTimerEl) { urgencyTimerEl.textContent `${String(hours).padStart(2, 0)}:${String(minutes).padStart(2, 0)}:${String(seconds).padStart(2, 0)}`; } } setInterval(updateUrgencyTimer, 1000); updateUrgencyTimer(); // Image Gallery function changeImage(src) { document.getElementById(mainImage).src src; // Update active thumbnail document.querySelectorAll(.thumbnail).forEach(thumb > { thumb.classList.remove(active); }); event.target.classList.add(active); } // Swiper Testimonials const swiper new Swiper(.swiper-container, { slidesPerView: 1, spaceBetween: 30, autoplay: { delay: 5000, disableOnInteraction: false, }, pagination: { el: .swiper-pagination, clickable: true, }, breakpoints: { 768: { slidesPerView: 2, }, 1024: { slidesPerView: 3, } } }); // FAQ Toggle function toggleFAQ(button) { const answer button.nextElementSibling; const icon button.querySelector(.material-icons); if (answer.classList.contains(active)) { answer.classList.remove(active); icon.textContent expand_more; } else { // Close all other FAQs document.querySelectorAll(.faq-answer).forEach(a > a.classList.remove(active)); document.querySelectorAll(.faq-question .material-icons).forEach(i > i.textContent expand_more); // Open current FAQ answer.classList.add(active); icon.textContent expand_less; } } // Note: Purchase button now uses onclickpurchaseMainProduct() directly // This provides better cart functionality - adds to cart first, then user can checkout // Checkout with multiple items async function checkoutWithCart() { if (cart.length 0) { showNotification(Your cart is empty!, error); return; } try { const response await fetch(/create-checkout-session, { method: POST, headers: { Content-Type: application/json, }, body: JSON.stringify({ items: cart.map(item > ({ id: item.id, quantity: item.quantity })) }), }); const { sessionId } await response.json(); // Redirect to Stripe Checkout const result await stripe.redirectToCheckout({ sessionId: sessionId }); if (result.error) { console.error(Stripe error:, result.error); showNotification(Payment failed. Please try again., error); } } catch (error) { console.error(Error:, error); showNotification(Something went wrong. Please try again., error); } } // Smooth scrolling for navigation document.querySelectorAll(ahref^#).forEach(anchor > { anchor.addEventListener(click, function (e) { e.preventDefault(); const target document.querySelector(this.getAttribute(href)); if (target) { target.scrollIntoView({ behavior: smooth, block: start }); } }); }); // Add some entrance animations const observerOptions { threshold: 0.1, rootMargin: 0px 0px -50px 0px }; const observer new IntersectionObserver((entries) > { entries.forEach(entry > { if (entry.isIntersecting) { entry.target.style.opacity 1; entry.target.style.transform translateY(0); } }); }, observerOptions); // Observe elements for animation document.querySelectorAll(.feature-card, .faq-item).forEach(el > { el.style.opacity 0; el.style.transform translateY(20px); observer.observe(el); }); // Mobile menu toggle function toggleMobileMenu() { const navLinks document.querySelector(.nav-links); navLinks.classList.toggle(active); } // Add scroll effect to header window.addEventListener(scroll, () > { const header document.querySelector(header); if (window.scrollY > 100) { header.style.background rgba(26, 26, 26, 0.95); header.style.backdropFilter blur(10px); } else { header.style.background var(--dark-bg); header.style.backdropFilter none; } }); // Main purchase button function - adds to cart and opens cart // Main purchase button function - mobile goes direct to Stripe, desktop uses cart function purchaseMainProduct() { console.log(purchaseMainProduct called); // Check if mobile const isMobile window.matchMedia((max-width: 768px)).matches; if (isMobile) { // Mobile: go directly to Stripe checkout console.log(Mobile detected - going direct to checkout); directCheckout(); return; } // Desktop: use cart flow console.log(Desktop detected - adding to cart); const button document.getElementById(purchaseBtn); if (button) { // Animation button.style.transform scale(0.95); setTimeout(() > { button.style.transform scale(1); }, 150); } // Add to cart and open cart sidebar addToCart(n8n-bundle); // Open cart after a brief delay to show animation setTimeout(() > { toggleCart(); }, 300); } // Price formatting function formatPrice(price) { return new Intl.NumberFormat(en-US, { style: currency, currency: USD }).format(price); } // Initialize page document.addEventListener(DOMContentLoaded, () > { // Show mobile CTA immediately on mobile devices if (window.matchMedia((max-width: 768px)).matches) { const mobileCTA document.querySelector(.mobile-cta-bar); if (mobileCTA) { mobileCTA.style.display flex; // Ensure its visible and properly positioned setTimeout(() > { mobileCTA.style.opacity 1; mobileCTA.style.transform translateY(0); }, 100); } } // Add any initialization code here console.log(n8n Automation Bundle page loaded successfully); // Preload images for better performance const imagesToPreload https://images.unsplash.com/photo-1611224923853-80b023f02d71?w600&h600&fitcrop, https://images.unsplash.com/photo-1460925895917-afdab827c52f?w600&h600&fitcrop, https://images.unsplash.com/photo-1553877522-43269d4ea984?w600&h600&fitcrop, https://images.unsplash.com/photo-1586717799252-bd134ad00e26?w600&h600&fitcrop ; imagesToPreload.forEach(src > { const img new Image(); img.src src; }); }); // Error handling for Stripe window.addEventListener(error, (e) > { if (e.message.includes(Stripe)) { console.error(Stripe error detected:, e); // Show user-friendly error message const button document.getElementById(purchaseBtn); if (button) { button.innerHTML β οΈ Payment Error - Please Refresh; button.style.background #dc3545; } } }); // Add keyboard accessibility document.addEventListener(keydown, (e) > { // ESC key closes cart or any open FAQ if (e.key Escape) { // Close cart if open const cartSidebar document.getElementById(cartSidebar); if (cartSidebar && cartSidebar.classList.contains(active)) { closeCart(); return; } // Close any open FAQ document.querySelectorAll(.faq-answer.active).forEach(answer > { answer.classList.remove(active); const question answer.previousElementSibling; const icon question.querySelector(.material-icons); if (icon) icon.textContent expand_more; }); } }); // Performance optimization: Lazy load images if (IntersectionObserver in window) { const imageObserver new IntersectionObserver((entries, observer) > { entries.forEach(entry > { if (entry.isIntersecting) { const img entry.target; if (img.dataset.src) { img.src img.dataset.src; img.classList.remove(lazy); img.classList.add(loaded); imageObserver.unobserve(img); } } }); }); document.querySelectorAll(imgdata-src).forEach(img > { imageObserver.observe(img); }); } // Add social proof notifications function showSocialProof() { const notifications Jack from Texas just purchased the n8n bundle!, Sophian from California just purchased the n8n bundle!, Ashley from New York just purchased the n8n bundle!, Carmen from Florida just purchased the n8n bundle!, LΓ©o from Illinois just purchased the n8n bundle!, Michael from London just purchased the n8n bundle!, Sarah from Toronto just purchased the n8n bundle!, David from Sydney just purchased the n8n bundle!, Emma from Berlin just purchased the n8n bundle!, Lucas from Paris just purchased the n8n bundle!, Isabella from Madrid just purchased the n8n bundle!, Ryan from Chicago just purchased the n8n bundle!, Olivia from Amsterdam just purchased the n8n bundle!, Jake from Miami just purchased the n8n bundle!, Zoe from Stockholm just purchased the n8n bundle!, Marcus from Denver just purchased the n8n bundle!, Luna from Portland just purchased the n8n bundle!, Alex from Seattle just purchased the n8n bundle!, Maya from Austin just purchased the n8n bundle!, Noah from Phoenix just purchased the n8n bundle!, Chloe from Vancouver just purchased the n8n bundle!, Ethan from Atlanta just purchased the n8n bundle!, Grace from Dublin just purchased the n8n bundle!, Tyler from Las Vegas just purchased the n8n bundle!, Aria from Montreal just purchased the n8n bundle!, Connor from Boston just purchased the n8n bundle!, Lily from Copenhagen just purchased the n8n bundle!, Blake from Nashville just purchased the n8n bundle!, Sophia from Oslo just purchased the n8n bundle!, Mason from San Diego just purchased the n8n bundle! ; const notification document.createElement(div); notification.style.cssText ` position: fixed; bottom: 20px; left: 20px; background: #28a745; color: white; padding: 15px 20px; border-radius: 8px; font-size: 14px; font-weight: 500; z-index: 10000; animation: slideInLeft 0.5s ease; box-shadow: 0 4px 15px rgba(0,0,0,0.2); max-width: calc(100vw - 40px); word-wrap: break-word; transform: translateX(-100%); `; const randomNotification notificationsMath.floor(Math.random() * notifications.length); notification.textContent randomNotification; document.body.appendChild(notification); // Start animation setTimeout(() > { notification.style.transform translateX(0); }, 10); setTimeout(() > { notification.style.animation slideOutLeft 0.5s ease; notification.style.transform translateX(-100%); setTimeout(() > { if (document.body.contains(notification)) { document.body.removeChild(notification); } }, 500); }, 4000); } // Show social proof every 10-15 seconds setInterval(showSocialProof, Math.random() * 6000 + 30000); // Add slide animations const style document.createElement(style); style.textContent ` @keyframes slideInLeft { from { transform: translateX(-100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } } @keyframes slideOutLeft { from { transform: translateX(0); opacity: 1; } to { transform: translateX(-100%); opacity: 0; } } @keyframes slideInRight { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } } @keyframes slideOutRight { from { transform: translateX(0); opacity: 1; } to { transform: translateX(100%); opacity: 0; } } `; document.head.appendChild(style); // Initialize cart count on page load document.addEventListener(DOMContentLoaded, () > { updateCartCount(); console.log(Cart system initialized); // Show cart badge animation if there are items if (cart.length > 0) { const cartIcon document.getElementById(cartCount); cartIcon.style.animation bounce 0.5s ease; } }); // Fixed bottom banner functionality function hideBanner() { const banner document.getElementById(fixedBottomBanner); banner.classList.add(banner-hidden); localStorage.setItem(bannerHidden, true); } // Buy Now function for fixed banner - mobile goes direct to Stripe, desktop uses cart function buyNow() { console.log(buyNow function called); // Check if mobile const isMobile window.matchMedia((max-width: 768px)).matches; if (isMobile) { // Mobile: go directly to Stripe checkout console.log(Mobile detected - going direct to checkout); directCheckout(); return; } // Desktop: use cart flow console.log(Desktop detected - adding to cart); const button document.querySelector(.banner-cta); if (button) { const originalText button.innerHTML; button.innerHTML span classspinner>/span> Adding...; button.disabled true; // Add to cart addToCart(n8n-bundle); // Show cart after brief delay setTimeout(() > { toggleCart(); button.innerHTML originalText; button.disabled false; }, 500); } else { // Fallback if button not found addToCart(n8n-bundle); toggleCart(); } } // Show banner if not previously hidden document.addEventListener(DOMContentLoaded, () > { const banner document.getElementById(fixedBottomBanner); const bannerHidden localStorage.getItem(bannerHidden); if (!bannerHidden) { setTimeout(() > { banner.style.display block; }, 2000); // Show after 2 seconds } }); /script> !-- Fixed Bottom Banner --> div idfixedBottomBanner classfixed-bottom-banner> div classbanner-content> div classbanner-left> div classbanner-icon>π/div> div classbanner-text> div classbanner-title>Black Friday: The Ultimate n8n Automation Bundle/div> div classbanner-subtitle>49% OFF β’ 7500+ workflows β’ Copy & paste β’ PLR/MRR included/div> /div> /div> div classbanner-price> span classbanner-current-price>$25/span> span classbanner-original-price>$49/span> /div> button classbanner-cta onclickbuyNow()> π€ Claim Black Friday Deal /button> button classbanner-close onclickhideBanner() titleClose> β /button> /div> /div> !-- Cart Overlay --> div classcart-overlay idcartOverlay onclickcloseCart()>/div> !-- Cart Sidebar --> div classcart-sidebar idcartSidebar> div classcart-header> h3 classcart-title>Shopping Cart/h3> button classcart-close onclickcloseCart()> span classmaterial-icons>close/span> /button> /div> div classcart-content idcartContent> div classcart-empty idcartEmpty> div classcart-empty-icon>π/div> h4>Your cart is empty/h4> p>Add some amazing products to get started!/p> /div> div classcart-items idcartItems> !-- Cart items will be dynamically inserted here --> /div> /div> div classcart-footer idcartFooter styledisplay: none;> div classcart-total> span>Total:/span> span classcart-total-price idcartTotal>β¬0.00/span> /div> !-- Email input for checkout --> div classcart-email-section stylemargin: 15px 0;> label forcustomerEmail styledisplay: block; font-weight: 500; margin-bottom: 8px; color: #374151;> π§ Email Address (for order confirmation) /label> input typeemail idcustomerEmail placeholderEnter your email address required stylewidth: 100%; padding: 12px; border: 2px solid #e5e7eb; border-radius: 8px; font-size: 14px; transition: border-color 0.3s ease; onfocusthis.style.borderColor#6366f1 onblurthis.style.borderColor#e5e7eb> small stylecolor: #6b7280; font-size: 12px; margin-top: 4px; display: block;> Well send your download links and order confirmation to this email /small> /div> button classcart-checkout-btn onclickcheckoutCart()> π Proceed to Checkout /button> button classcart-continue-btn onclickcloseCart()> Continue Shopping /button> /div> /div> !-- Mobile Sticky CTA (mobile only) --> div classmobile-cta-bar roleregion aria-labelQuick purchase bar> div classmobile-cta-price> $25 span classmobile-cta-original>$49/span> /div> button classmobile-cta-button onclickdirectCheckout() aria-labelGet Black Friday deal for the n8n Automation Bundle > π€ Get Black Friday Deal /button> /div>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]