Präsentbox Piccolo | Il Golosone
Kostenloser Versand ab €79
•
Bio-zertifiziert DE-ÖKO-037
•
Handgemacht seit 1997
Präsentkörbe

Präsentbox Piccolo

1,5kg

35,90 €

Geschenkkorb

1x Bio-Pasta  Senatore Cappelli 500g
1x Bio Sugo Pronto 280g
1x Bio Getrocknete Tomaten 180g 
1x Bio Artischocken 180g
1x Bio Pesto 180g
1x Bio Cantuccini 85g

Lieferzeit: 5-7- Werktage

17 vorrätig

Bio-zertifiziertDE-ÖKO-037
Handgemachtseit 1997
Schneller VersandFrei ab €79
Sichere ZahlungSSL-verschlüsselt
Kategorie:
Teilen

Beschreibung

Das ideale Präsent für alle Anlässe. Kann auch mit Weihnachtsbox „Frohe Weihnachten“ verpackt werden.

Gerne erstellen wir auf Anfrage auch individuelle Präsentkörbe nach Ihren Wünschen mit weiteren italienischen Spezialitäten wie Wein, Käse, uvm. zusammen.

Ab einer Bestellung von 100 Stück gerne auch mit Ihrem Firmenlogo.

Hier Anfragen

Das könnte dir auch gefallen …

Präsentbox Piccolo 35,90 €
'; searchResultsContainer.style.display = 'block'; return; } function escAttr(s) { var d = document.createElement('div'); d.textContent = s || ''; return d.innerHTML; } var html = ''; data.results.forEach(function(item) { html += ''; if (item.image) { html += '' + escAttr(item.title) + ''; } html += '
'; html += '' + escAttr(item.title) + ''; html += '' + item.price + ''; html += '
'; }); searchResultsContainer.innerHTML = html; searchResultsContainer.style.display = 'block'; }) .catch(function() { searchResultsContainer.style.display = 'none'; }); }, 300); }); // Hide results when search overlay closes var searchOverlay = document.getElementById('gol-search-overlay'); if (searchOverlay) { var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { if (!searchOverlay.classList.contains('active')) { searchResultsContainer.style.display = 'none'; searchResultsContainer.innerHTML = ''; } }); }); observer.observe(searchOverlay, { attributes: true, attributeFilter: ['class'] }); } } // ── Recently Viewed Products ──────────────────────────── var rvSection = document.getElementById('gol-recently-viewed'); var rvGrid = document.getElementById('gol-recently-viewed-grid'); // Track current product var productBody = document.querySelector('body.single-product'); if (productBody) { var productIdMeta = document.querySelector('.woocommerce div.product'); if (productIdMeta) { var postClass = productBody.className.match(/postid-(\d+)/); if (postClass) { var currentId = postClass[1]; try { var viewed = JSON.parse(localStorage.getItem('gol_recently_viewed') || '[]'); viewed = viewed.filter(function(id) { return id !== currentId; }); viewed.unshift(currentId); viewed = viewed.slice(0, 12); localStorage.setItem('gol_recently_viewed', JSON.stringify(viewed)); } catch(e) {} } } } // Display recently viewed if (rvSection && rvGrid) { try { var viewedIds = JSON.parse(localStorage.getItem('gol_recently_viewed') || '[]'); } catch(e) { var viewedIds = []; } // Exclude current product if (productBody) { var postMatch = productBody.className.match(/postid-(\d+)/); if (postMatch) { viewedIds = viewedIds.filter(function(id) { return id !== postMatch[1]; }); } } if (viewedIds.length > 0) { // La catena DEVE finire in un .catch(): questo blocco gira anche su // /kasse/ (la sezione si aggancia a woocommerce_after_main_content) e // su Mobile Safari falliva in due modi — «TypeError: Load failed» // quando la fetch non parte (rete che cade, pagina lasciata, blocco // contenuti su admin-ajax.php) e «SyntaxError: Unexpected EOF» quando // il corpo torna vuoto e r.json() prova a leggerlo. Senza catch la // promise rifiutata finiva su Sentry come errore della pagina di // pagamento (WP-IL-GOLOSONE-12 e -19, 09.08.2026): rumore su una board // di allarmi, per una striscia decorativa. Stesso schema gia' usato // qui sopra per il mini-carrello e in ai-chatbot.php. fetch(ilgolosone.ajaxurl + '?action=ilgolosone_recently_viewed&nonce=' + ilgolosone.nonce + '&ids=' + viewedIds.slice(0, 6).join(',')) .then(function(r) { return r.json().catch(function() { return null; }); }) .then(function(data) { if (data && data.html && data.html.trim()) { rvGrid.innerHTML = data.html; rvSection.style.display = 'block'; } }) .catch(function() { /* la striscia resta nascosta: non e' un passo dell'acquisto */ }); } } // ── Willkommensrabatt Popup ───────────────────────────── // Kundenwunsch 2026-07-06: subito all'arrivo, non più solo exit-intent. // 4s di ritardo: la pagina dipinge prima (niente interstitial al primo // paint) ma per l'utente è "subito". Exit-intent resta come trigger // anticipato su desktop. Chi si iscrive non lo rivede più (cookie 1 anno). var exitPopup = document.getElementById('gol-exit-popup'); if (exitPopup && !document.cookie.includes('gol_exit_shown=1') && !document.cookie.includes('gol_nl_subscribed=1')) { var exitShown = false; var exitReturnFocus = null; setTimeout(function() { if (!exitShown) showExitPopup(); }, 4000); // Desktop: mouse leaves viewport before the timer fires document.addEventListener('mouseout', function(e) { if (exitShown) return; if (e.clientY <= 0 && e.relatedTarget === null) { showExitPopup(); } }); function showExitPopup() { exitShown = true; exitPopup.classList.add('active'); exitPopup.setAttribute('aria-hidden', 'false'); document.body.style.overflow = 'hidden'; document.cookie = 'gol_exit_shown=1;path=/;max-age=' + (7 * 86400); // A11y: focus nel dialog, si ripristina alla chiusura. // rAF: subito dopo l'aggiunta di .active l'elemento non è ancora // focusabile (transizione CSS in corso). exitReturnFocus = document.activeElement; var content = exitPopup.querySelector('.gol-exit-popup-content'); if (content) { content.setAttribute('tabindex', '-1'); requestAnimationFrame(function() { requestAnimationFrame(function() { content.focus(); }); }); } } function closeExitPopup() { exitPopup.classList.remove('active'); exitPopup.setAttribute('aria-hidden', 'true'); document.body.style.overflow = ''; if (exitReturnFocus && exitReturnFocus.focus) { exitReturnFocus.focus(); } } var exitClose = exitPopup.querySelector('.gol-exit-popup-close'); var exitOverlay = exitPopup.querySelector('.gol-exit-popup-overlay'); if (exitClose) exitClose.addEventListener('click', closeExitPopup); if (exitOverlay) exitOverlay.addEventListener('click', closeExitPopup); document.addEventListener('keydown', function(e) { if (e.key === 'Escape') closeExitPopup(); }); // Iscritto dal popup → mai più mostrarlo (il retry in caso di errore // avviene comunque nel popup già aperto in questa sessione). var exitForm = exitPopup.querySelector('form'); if (exitForm) { exitForm.addEventListener('submit', function() { document.cookie = 'gol_nl_subscribed=1;path=/;max-age=' + (365 * 86400); }); } } // ── Mobile Filter Bottom-Sheet ────────────────────────── var filterToggle = document.getElementById('gol-filter-toggle'); var filterSheet = document.getElementById('gol-filter-sheet'); if (filterToggle && filterSheet) { var filterClose = filterSheet.querySelector('.gol-filter-sheet-close'); var filterOverlay = filterSheet.querySelector('.gol-filter-sheet-overlay'); filterToggle.addEventListener('click', function() { filterSheet.classList.add('active'); filterSheet.setAttribute('aria-hidden', 'false'); document.body.style.overflow = 'hidden'; }); function closeFilterSheet() { filterSheet.classList.remove('active'); filterSheet.setAttribute('aria-hidden', 'true'); document.body.style.overflow = ''; } if (filterClose) filterClose.addEventListener('click', closeFilterSheet); if (filterOverlay) filterOverlay.addEventListener('click', closeFilterSheet); } })(); document.addEventListener('DOMContentLoaded', function() { 'use strict'; var fab = document.getElementById('gol-fab'); var fabToggle = document.getElementById('gol-fab-toggle'); var fabActions = document.getElementById('gol-fab-actions'); var chatBtn = document.getElementById('gol-fab-chat-btn'); var chatWindow = document.getElementById('gol-chatbot-window'); var chatMessages = document.getElementById('gol-chatbot-messages'); var chatForm = document.getElementById('gol-chatbot-form'); var chatInput = document.getElementById('gol-chatbot-message'); var chatClose = document.getElementById('gol-chatbot-close'); if (!fabToggle || !chatWindow) return; var history = []; var fabOpen = false; var chatOpen = false; var isLoading = false; // Toggle FAB menu fabToggle.addEventListener('click', function() { if (chatOpen) { closeChatWindow(); return; } fabOpen = !fabOpen; fabActions.classList.toggle('active', fabOpen); fabToggle.querySelector('.gol-fab-icon-default').style.display = fabOpen ? 'none' : 'block'; fabToggle.querySelector('.gol-fab-icon-close').style.display = fabOpen ? 'block' : 'none'; }); // Focus trap helper var CHAT_FOCUSABLE = 'a[href],button:not([disabled]),input:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])'; var chatTrapHandler = null; // Open chat from FAB action chatBtn.addEventListener('click', function() { fabOpen = false; chatOpen = true; fabActions.classList.remove('active'); chatWindow.setAttribute('aria-hidden', 'false'); chatWindow.classList.add('active'); fabToggle.setAttribute('aria-expanded', 'true'); fabToggle.querySelector('.gol-fab-icon-default').style.display = 'none'; fabToggle.querySelector('.gol-fab-icon-close').style.display = 'block'; if (chatInput) chatInput.focus(); chatTrapHandler = function(e) { if (e.key !== 'Tab') return; var focusable = chatWindow.querySelectorAll(CHAT_FOCUSABLE); if (!focusable.length) return; var first = focusable[0], last = focusable[focusable.length - 1]; if (e.shiftKey && document.activeElement === first) { e.preventDefault(); last.focus(); } else if (!e.shiftKey && document.activeElement === last) { e.preventDefault(); first.focus(); } }; chatWindow.addEventListener('keydown', chatTrapHandler); }); // Close chat function closeChatWindow() { chatOpen = false; chatWindow.setAttribute('aria-hidden', 'true'); chatWindow.classList.remove('active'); fabToggle.setAttribute('aria-expanded', 'false'); fabToggle.querySelector('.gol-fab-icon-default').style.display = 'block'; fabToggle.querySelector('.gol-fab-icon-close').style.display = 'none'; if (chatTrapHandler) { chatWindow.removeEventListener('keydown', chatTrapHandler); chatTrapHandler = null; } if (chatBtn) chatBtn.focus(); // ESC handler registered globally below } if (chatClose) { chatClose.addEventListener('click', closeChatWindow); } // ESC closes chat when open document.addEventListener('keydown', function(e) { if (e.key === 'Escape' && chatOpen) { closeChatWindow(); } }); // Close FAB when clicking outside document.addEventListener('click', function(e) { if (fabOpen && !fab.contains(e.target)) { fabOpen = false; fabActions.classList.remove('active'); fabToggle.querySelector('.gol-fab-icon-default').style.display = 'block'; fabToggle.querySelector('.gol-fab-icon-close').style.display = 'none'; } }); // Chat form submission chatForm.addEventListener('submit', function(e) { e.preventDefault(); var msg = chatInput.value.trim(); if (!msg || isLoading) return; appendMessage(msg, 'user'); history.push({ role: 'user', content: msg }); chatInput.value = ''; isLoading = true; var typing = document.createElement('div'); typing.className = 'gol-chat-msg gol-chat-bot gol-chat-typing'; typing.innerHTML = ''; chatMessages.appendChild(typing); chatMessages.scrollTop = chatMessages.scrollHeight; var formData = new FormData(); formData.append('action', 'ilgolosone_chatbot'); formData.append('nonce', ilgolosone.chatbot_nonce); formData.append('message', msg); formData.append('history', JSON.stringify(history.slice(-10))); fetch(ilgolosone.ajaxurl, { method: 'POST', body: formData }) .then(function(r) { return r.json(); }) .then(function(data) { typing.remove(); var reply = (data.data && data.data.reply) ? data.data.reply : 'Entschuldigung, ein Fehler ist aufgetreten.'; appendMessage(reply, 'bot'); history.push({ role: 'assistant', content: reply }); isLoading = false; }) .catch(function() { typing.remove(); appendMessage('Verbindungsfehler. Bitte versuchen Sie es erneut.', 'bot'); isLoading = false; }); }); function appendMessage(text, role) { var div = document.createElement('div'); div.className = 'gol-chat-msg gol-chat-' + role; div.innerHTML = '

' + escapeHtml(text) + '

'; chatMessages.appendChild(div); chatMessages.scrollTop = chatMessages.scrollHeight; } function escapeHtml(text) { var d = document.createElement('div'); d.textContent = text; return d.innerHTML; } }); (function() { 'use strict'; var recipeForm = document.getElementById('gol-recipe-form'); if (!recipeForm) return; var resultDiv = document.getElementById('gol-recipe-result'); var loadingDiv = document.getElementById('gol-recipe-loading'); var contentDiv = document.getElementById('gol-recipe-content'); var productsDiv = document.getElementById('gol-recipe-products'); var newBtn = document.getElementById('gol-recipe-new'); recipeForm.addEventListener('submit', function(e) { e.preventDefault(); var pasta = document.getElementById('gol-recipe-pasta').value; if (!pasta) return; resultDiv.style.display = 'block'; loadingDiv.style.display = 'flex'; contentDiv.innerHTML = ''; productsDiv.innerHTML = ''; newBtn.style.display = 'none'; var formData = new FormData(); formData.append('action', 'ilgolosone_recipe'); formData.append('nonce', ilgolosone.chatbot_nonce); formData.append('pasta', pasta); formData.append('diet', document.getElementById('gol-recipe-diet').value); formData.append('difficulty', document.getElementById('gol-recipe-difficulty').value); formData.append('season', document.getElementById('gol-recipe-season').value); fetch(ilgolosone.ajaxurl, { method: 'POST', body: formData }) .then(function(r) { return r.json(); }) .then(function(data) { loadingDiv.style.display = 'none'; if (!data.success || !data.data) { contentDiv.innerHTML = '

Leider konnte kein Rezept generiert werden.

'; return; } var r = data.data; var html = '
'; html += '

' + esc(r.title) + '

'; html += '
'; html += '👥 ' + r.servings + ' Portionen'; html += '⏱️ ' + esc(r.time) + ''; html += '
'; html += '

Zutaten

    '; (r.ingredients || []).forEach(function(i) { html += '
  • ' + esc(i) + '
  • '; }); html += '
'; html += '

Zubereitung

    '; (r.steps || []).forEach(function(s) { html += '
  1. ' + esc(s) + '
  2. '; }); html += '
'; if (r.tip) { html += '
💡 Tipp: ' + esc(r.tip) + '
'; } html += '
'; contentDiv.innerHTML = html; // Product suggestions if (r.suggestions && r.suggestions.length > 0) { var phtml = '

Passende Produkte dazu

'; r.suggestions.forEach(function(p) { phtml += ''; if (p.image) phtml += '' + esc(p.name) + ''; phtml += '' + esc(p.name) + ''; phtml += '' + p.price + ''; phtml += ''; }); phtml += '
'; productsDiv.innerHTML = phtml; } newBtn.style.display = 'inline-flex'; resultDiv.scrollIntoView({ behavior: 'smooth', block: 'start' }); }) .catch(function() { loadingDiv.style.display = 'none'; contentDiv.innerHTML = '

Verbindungsfehler. Bitte versuchen Sie es erneut.

'; }); }); newBtn.addEventListener('click', function() { recipeForm.dispatchEvent(new Event('submit')); }); function esc(s) { var d = document.createElement('div'); d.textContent = s || ''; return d.innerHTML; } })(); (function() { 'use strict'; var quiz = document.getElementById('gol-quiz'); if (!quiz) return; var answers = {}; var totalSteps = 3; var currentStep = 1; var progressBar = document.getElementById('gol-quiz-progress'); quiz.addEventListener('click', function(e) { var btn = e.target.closest('.gol-quiz-option'); if (!btn) return; var step = btn.closest('.gol-quiz-step'); var stepNum = step.getAttribute('data-step'); var value = btn.getAttribute('data-value'); var next = btn.getAttribute('data-next'); answers[stepNum] = value; // Mark selected step.querySelectorAll('.gol-quiz-option').forEach(function(o) { o.classList.remove('selected'); }); btn.classList.add('selected'); setTimeout(function() { // Hide current step step.classList.remove('active'); if (next === 'result') { // Show results var resultStep = quiz.querySelector('[data-step="result"]'); resultStep.classList.add('active'); progressBar.style.width = '100%'; // Fetch results fetch(ilgolosone.ajaxurl + '?action=ilgolosone_quiz&nonce=' + ilgolosone.nonce + '&answers=' + encodeURIComponent(JSON.stringify(answers))) .then(function(r) { return r.json().catch(function() { return null; }); }) .then(function(data) { document.getElementById('gol-quiz-results').innerHTML = (data && data.html) || '

Die Empfehlung konnte gerade nicht geladen werden. Bitte noch einmal versuchen.

'; }) // Senza catch la fetch fallita diventa una promise rifiutata che // finisce su Sentry a nome della pagina, e l'utente resta davanti // a una rotella che gira. Vedi WP-IL-GOLOSONE-19. .catch(function() { document.getElementById('gol-quiz-results').innerHTML = '

Die Empfehlung konnte gerade nicht geladen werden. Bitte noch einmal versuchen.

'; }); } else { // Show next step var nextStep = quiz.querySelector('[data-step="' + next + '"]'); if (nextStep) { nextStep.classList.add('active'); currentStep++; progressBar.style.width = Math.min((currentStep / totalSteps) * 100, 95) + '%'; } } }, 200); }); // Restart var restartBtn = document.getElementById('gol-quiz-restart'); if (restartBtn) { restartBtn.addEventListener('click', function() { answers = {}; currentStep = 1; progressBar.style.width = '0%'; quiz.querySelectorAll('.gol-quiz-step').forEach(function(s) { s.classList.remove('active'); }); quiz.querySelectorAll('.gol-quiz-option').forEach(function(o) { o.classList.remove('selected'); }); quiz.querySelector('[data-step="1"]').classList.add('active'); }); } })(); (function() { var deferredPrompt = null; var installBanner = document.getElementById('gol-pwa-install'); var installBtn = document.getElementById('gol-pwa-install-btn'); var closeBtn = document.getElementById('gol-pwa-install-close'); if (!installBanner) return; window.addEventListener('beforeinstallprompt', function(e) { e.preventDefault(); deferredPrompt = e; // Show after 30 seconds on site setTimeout(function() { if (deferredPrompt && !localStorage.getItem('gol_pwa_dismissed')) { installBanner.style.display = 'flex'; } }, 30000); }); if (installBtn) { installBtn.addEventListener('click', function() { if (!deferredPrompt) return; deferredPrompt.prompt(); deferredPrompt.userChoice.then(function() { deferredPrompt = null; installBanner.style.display = 'none'; }); }); } if (closeBtn) { closeBtn.addEventListener('click', function() { installBanner.style.display = 'none'; localStorage.setItem('gol_pwa_dismissed', '1'); }); } })(); //# sourceURL=ilgolosone-main-js-after