Nos poissons d'eau douce

Découvrez nos poissons domestiques premium. Sélectionnés avec soins et acclimatés en France dans nos locaux à Brive-la-Gaillarde, Aquarez vous assure une qualité irréprochable sur les poissons. Une entreprise à taille humaine géré par un passionné. C’est ça la réussite.

(function () { const form = document.querySelector('.aquarez-price-filter form'); const status = document.querySelector('.aquarez-ajax-status'); if (!document.querySelector('.aquarez-shop-results')) return;let timer = null; let controller = null;function getResults() { return document.querySelector('.aquarez-shop-results'); }async function loadArchive(url, mode) { if (controller) controller.abort(); controller = new AbortController(); const currentResults = getResults(); if (currentResults) currentResults.classList.add('aquarez-is-loading'); if (status) status.textContent = 'Mise à jour des produits…';try { const response = await fetch(url.toString(), { method: 'GET', credentials: 'same-origin', headers: { 'X-Requested-With': 'XMLHttpRequest' }, signal: controller.signal }); if (!response.ok) throw new Error('Request failed'); const html = await response.text(); const doc = new DOMParser().parseFromString(html, 'text/html'); const newResults = doc.querySelector('.aquarez-shop-results'); if (!newResults) throw new Error('Results not found');const liveResults = getResults(); if (!liveResults) throw new Error('Results container not found'); liveResults.replaceWith(newResults);// Keep the price fields in sync if the archive response normalizes them. if (form) { ['min_price', 'max_price'].forEach(name => { const source = doc.querySelector('.aquarez-price-filter [name="' + name + '"]'); const target = form.querySelector('[name="' + name + '"]'); if (source && target) target.value = source.value; }); }// Keep pagination and AJAX filter state out of the visible URL. if (status) status.textContent = 'Produits mis à jour.'; } catch (error) { if (error.name !== 'AbortError' && status) { status.textContent = 'Impossible de mettre à jour les produits. Réessayez.'; } } finally { const liveResults = getResults(); if (liveResults) liveResults.classList.remove('aquarez-is-loading'); } }function filteredUrl(resetPage) { const url = new URL(window.location.href); if (resetPage) { url.searchParams.delete('paged'); url.searchParams.delete('product-page'); } if (form) { ['min_price', 'max_price'].forEach(name => { const input = form.querySelector('[name="' + name + '"]'); const value = input ? input.value.trim() : ''; if (value) url.searchParams.set(name, value); else url.searchParams.delete(name); }); } return url; }if (form) { const inputs = form.querySelectorAll('[name="min_price"], [name="max_price"]'); inputs.forEach(input => { input.addEventListener('input', function () { clearTimeout(timer); timer = setTimeout(() => loadArchive(filteredUrl(true), 'replace'), 450); }); input.addEventListener('change', function () { clearTimeout(timer); loadArchive(filteredUrl(true), 'replace'); }); }); form.addEventListener('submit', function (event) { event.preventDefault(); clearTimeout(timer); loadArchive(filteredUrl(true), 'replace'); }); }// Delegate clicks so pagination continues working after each AJAX replacement. document.addEventListener('click', function (event) { const link = event.target.closest('.aquarez-shop-results .woocommerce-pagination a, .aquarez-shop-results nav.woocommerce-pagination a'); if (!link || event.ctrlKey || event.metaKey || event.shiftKey || event.altKey || event.button !== 0) return; const url = new URL(link.href, window.location.href); if (url.origin !== window.location.origin) return; event.preventDefault(); clearTimeout(timer); loadArchive(url, 'push'); });// Pagination intentionally does not change the browser URL. })();