Guide expert Marché canadien E-commerce · SEO · Web

Agence de création de site e-commerce au Canada

Honadi conçoit votre boutique en ligne sur mesure pour vous démarquer dès le premier clic, optimiser vos taux de conversion et atteindre vos objectifs de revenu rapidement.

<!-- ===================================================== VISUEL Les trois images proviennent du portfolio Honadi. Elles peuvent être remplacées dans les balises . ====================================================== -->
Conçu pour le Canada Déployé selon les standards e-commerce internationaux.
Aperçu d’une réalisation digitale du portfolio Honadi
Aperçu mobile d’une réalisation Honadi
Exemple de projet du portfolio Honadi
Boutiques sur mesure Portfolio
75 % jugent la crédibilité d’un site à travers son design.
Équipe interne Développeurs, designers, rédacteurs SEO et intégrateurs.
Double expertise Connaissance locale et standards techniques internationaux.
Suivi continu Maintenance, performance et évolution après la livraison.
(function () { function initHonadiCountryHeroV2() { var toc = document.querySelector("[data-hn-country-toc]"); if (!toc || toc.__hnCountryTocReady) return;/* Propriété JS non sérialisée : évite le problème data-ready="true" lors d'un export/import Elementor. */ toc.__hnCountryTocReady = true; toc.removeAttribute("data-ready");var slot = toc.closest(".hn-country-v2-toc-slot"); var hero = document.getElementById("hero-benin"); var endSection = document.getElementById("faq-creation-site-benin") || document.getElementById("contact-pays");function getAnchorId(link) { var rawHref = link.getAttribute("href") || "";if (rawHref.charAt(0) === "#") { return rawHref.slice(1); }/* Sécurité pour les modèles déjà importés avec une URL absolue : on récupère uniquement le hash et on le normalise en ancre locale. */ try { var parsed = new URL(rawHref, window.location.href); return parsed.hash ? parsed.hash.slice(1) : ""; } catch (error) { return ""; } }var links = Array.from(toc.querySelectorAll("a[href]"));/* Le modèle devient réutilisable sur n'importe quelle URL de page. */ links.forEach(function (link) { var id = getAnchorId(link); if (id) link.setAttribute("href", "#" + id); });var targets = links .map(function (link) { var id = getAnchorId(link); return id ? document.getElementById(id) : null; }) .filter(Boolean);function restoreTocToSlot() { toc.classList.remove("is-floating", "is-hidden"); toc.style.removeProperty("--hn-toc-floating-left");if (slot && toc.parentNode !== slot) { slot.appendChild(toc); } }function moveTocToBody() { /* On mémorise la position réelle de la colonne Elementor avant de sortir le sommaire du Hero. Ainsi le menu reste parfaitement aligné même si la largeur du template change. */ if (slot) { var slotRect = slot.getBoundingClientRect(); var floatingLeft = Math.max(20, Math.round(slotRect.left)); toc.style.setProperty("--hn-toc-floating-left", floatingLeft + "px"); }if (toc.parentNode !== document.body) { document.body.appendChild(toc); }toc.classList.add("is-floating"); }function updateFloatingState() { if (window.innerWidth <= 1280 || !hero) { restoreTocToSlot(); return; }var heroRect = hero.getBoundingClientRect(); var shouldFloat = heroRect.top < 92;if (shouldFloat) { moveTocToBody(); } else { restoreTocToSlot(); }if (endSection && shouldFloat) { var endRect = endSection.getBoundingClientRect(); toc.classList.toggle("is-hidden", endRect.top < 500); } else { toc.classList.remove("is-hidden"); } }function setActiveLink(id) { links.forEach(function (link) { link.classList.toggle("is-active", getAnchorId(link) === id); }); }if ("IntersectionObserver" in window) { var observer = new IntersectionObserver( function (entries) { var visible = entries .filter(function (entry) { return entry.isIntersecting; }) .sort(function (a, b) { return b.intersectionRatio - a.intersectionRatio; });if (visible[0]) setActiveLink(visible[0].target.id); }, { rootMargin: "-25% 0px -62% 0px", threshold: [0.01, 0.2, 0.5] } );targets.forEach(function (target) { observer.observe(target); }); }links.forEach(function (link) { link.addEventListener("click", function () { var id = getAnchorId(link); if (id) setActiveLink(id); }); });updateFloatingState(); window.addEventListener("scroll", updateFloatingState, { passive: true }); window.addEventListener("resize", updateFloatingState); }if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", initHonadiCountryHeroV2, { once: true }); } else { initHonadiCountryHeroV2(); } })();

NOS CLIENTS

Ils nous font confiance pour
leurs différents projets.

Découvrez une sélection d'entreprises, de startups et d'institutions qui ont sollicité l'expertise de notre agence web et de communication pour accélérer leur croissance et moderniser leurs processus.

Izicar

Izicar Congo

Ambassade du Japon

Ambassade du Japon au Bénin

Chat&Yamo

Chat&Yamo

Zirema

Zirema

Centre 3001

Centre 3001

Twaino

Twaino

AEM

Association Européenne de Marketing

Perkflow

Perkflow

Omoades PIPS GOAT

OMOADE PIP GOAT

Teriba EDU

Tériba EDU

NTC

NTC

ALSEC

ALSEC Agojie Lodge

Elegancia

Elegancia Dance Studio

Inawo

Inawo

Group HG

Group HG

JSR

JSR

Angels Voyage

Angels Voyage

OliGroup

OliGroup

Izicar

Izicar Congo

Ambassade du Japon

Ambassade du Japon au Bénin

Chat&Yamo

Chat&Yamo

Zirema

Zirema

Centre 3001

Centre 3001

Twaino

Twaino

AEM

Association Européenne de Marketing

Perkflow

Perkflow

Omoades PIPS GOAT

OMOADE PIP GOAT

Teriba EDU

Tériba EDU

NTC

NTC

ALSEC

ALSEC Agojie Lodge

Elegancia

Elegancia Dance Studio

Inawo

Inawo

Group HG

Group HG

JSR

JSR

Angels Voyage

Angels Voyage

OliGroup

OliGroup

La référence Honadi

Agence de création de site e-commerce au Canada performante.

De Montréal à Vancouver, Honadi propulse les PME canadiennes avec des boutiques en ligne sur mesure et optimisées pour générer un fort rendement.

Honadi réunit le design, la technique et le marketing au sein d'une même équipe d'experts e-commerce. Nous développons des boutiques sur mesure sous Shopify, WooCommerce, Prestashop et Magento.

Notre démarche garantit une expérience fluide, une rapidité optimale et une stratégie SEO adaptée au marché canadien pour maximiser votre chiffre d'affaires.

Design, développement, SEO et paiements alignés sous une même direction. Une approche globale et intégrée
Une équipe multidisciplinaire Développeurs CMS, designers UX/UI, experts SEO et stratèges.
Une production coordonnée Une stratégie unifiée pour la conception, les performances et l'acquisition.
L'avantage Honadi

Devenez un leader avec votre agence de création de site e-commerce au Canada.

Collaborer avec Honadi, c'est choisir une agence de création de site e-commerce au Canada capable de transformer votre plateforme transactionnelle en levier de croissance durable.

Avantage 01

Conception sur mesure et fidèle à votre marque

Nous refusons les thèmes préfabriqués génériques. Nos designers créent une identité visuelle unique qui reflète vos valeurs, votre ton et votre image de marque.

Du logo aux fiches produits, chaque interface est conçue pour capter l'attention, renforcer la mémorisation de votre marque et fidéliser vos clients.

Design sur mesure Branding Image de marque
Aperçu d’un projet institutionnel du portfolio Honadi
Une identité forte et mémorable Maquettes personnalisées et chartes visuelles adaptées à votre cible. Design unique
Aperçu d’une autre réalisation du portfolio Honadi
Aperçu d’une interface digitale conçue dans le cadre d’un projet Honadi
Avantage 02

Vitesse d'affichage et SEO Google optimisés

Nos développeurs écrivent un code propre en HTML, CSS et JavaScript pour garantir un chargement sous la barre des deux secondes.

Nous suivons rigoureusement les métriques Core Web Vitals sur Google Search Console pour garantir un positionnement naturel durable.

Découvrir notre expertise UI/UX
03

Paiements et taxes canadiennes intégrés

Nous intégrons Stripe, PayPal ainsi que les passerelles de paiement propres au marché canadien pour des transactions en toute sécurité.

La gestion des taxes provinciales et fédérales, des stocks et des programmes de fidélité est configurée sur mesure pour faciliter vos opérations.

Intégrations sécurisées
04

Rigueur et respect strict des délais

Nous nous engageons fermement sur les dates de livraison pour que vous puissiez planifier vos campagnes commerciales en toute confiance.

Aucun retard n'est toléré, permettant une synchronisation parfaite entre votre lancement technique et vos actions marketing.

Planification rigoureuse
05

Support continu et maintenance proactive

Notre accompagnement ne s'arrête pas à la mise en ligne. Nous assurons le support technique, les mises à jour et la sécurité globale de votre site.

Nous planifions régulièrement les évolutions de votre boutique transactionnelle afin de soutenir la hausse progressive de votre trafic et de vos ventes.

Évolution continue
Nos solutions e-commerce

Services de l'agence de création de site e-commerce au Canada.

Du choix du CMS transactionnel aux campagnes marketing, Honadi prend en charge chaque étape de votre projet e-commerce pour garantir votre rentabilité.

01 — 02 Développer vos plateformes
Des bases techniques solides Développement sur mesure, hébergement sécurisé et architectures CMS évolutives. CMS + Tech
Solutions CMS
01

Boutiques sur mesure Shopify et Liquid

Nous concevons des boutiques Shopify personnalisées en exploitant la programmation Liquid et PHP pour aller au-delà des thèmes standards.

Nous configurons les règles de livraison, la gestion automatique des stocks et les applications métier nécessaires à votre activité.

Découvrir la création web
02

Développement WooCommerce et WordPress

Pour les entreprises recherchant une flexibilité totale, nous créons des sites WooCommerce puissants et entièrement personnalisés.

Chaque plateforme intègre des fonctionnalités spécifiques à votre secteur tout en bénéficiant d'une structure optimisée pour le SEO.

Explorer le développement web
03 — 04 Vendre et convertir
Parcours d'achat fluides Landing pages, fiches produits percutantes et tunnels de conversion sans friction. Ventes + Leads
Performance transactionnelle
03

Plateformes Magento et PrestaShop

Nous déployons des architectures open-source capables d'administrer des milliers de références produits sans perte de vitesse.

Idéal pour les projets d'envergure nécessitant une logistique complexe et des intégrations poussées avec vos outils ERP.

Parler de votre e-commerce
04

Landing pages et acquisition

Nous concevons des landing pages ciblées associées à des campagnes Meta et Google Ads pour capter des prospects qualifiés.

Chaque page minimise les distractions et concentre l'attention de l'acheteur sur l'appel à l'action pour maximiser votre ROI.

Découvrir les landing pages
05 — 06 Optimiser et maintenir
Pérennité de l'existant Refonte ergonomique, audits SEO complets et maintenance technique proactive. Refonte + Maintenance
Maintenance et optimisation
05

Refonte de boutiques e-commerce

Nous modernisons votre boutique en ligne actuelle pour accroître ses performances sans compromettre votre historique SEO.

Un plan de redirection d'URL rigoureux protège votre positionnement tout en offrant un nouveau design à vos clients.

Découvrir la refonte de site
06

Maintenance, sécurité et support

Nos forfaits incluent la sauvegarde quotidienne, le monitoring en temps réel, les mises à jour et le support technique.

Nous sécurisons vos transactions transactionnelles et garantissons un fonctionnement ininterrompu de votre boutique.

Explorer nos services
Un accompagnement global pour votre croissance De la conception initiale aux évolutions futures, nous sommes votre partenaire e-commerce. Discuter de votre projet
Notre méthode

Méthodologie d'une agence de création de site e-commerce au Canada.

Notre processus de développement garantit des livraisons dans les délais et des résultats mesurables pour votre entreprise.

Étape 01 Acte I · Cadrer

Analyse et cahier des charges

Nous analysons vos produits, vos concurrents et les habitudes de votre clientèle canadienne pour poser des bases stratégiques solides.

  • Analyse des produits.
  • Étude de la concurrence.
  • Définition des cibles.
  • Cadrage du budget.
Étape 02 Acte I · Designer

Architecture et design UI/UX

Nous concevons le parcours d'achat, l'arborescence des catégories et les maquettes visuelles en accord avec votre charte graphique.

  • Arborescence de boutique.
  • Parcours d'achat fluide.
  • Maquettes des fiches produits.
  • Validation visuelle.
Étape 03 Acte II · Développer

Développement et programmation

Nos équipes codent la boutique, intègrent le processeur de paiement et connectent l'inventaire en temps réel.

  • Code propre et léger.
  • Intégration Stripe & PayPal.
  • Gestion automatique des stocks.
  • Outils de suivi analytique.
Étape 04 Acte II · Optimiser

Stratégie SEO et contenus

Nous optimisons le référencement naturel des catégories et des produits pour attirer des acheteurs qualifiés.

  • Recherche de mots-clés.
  • Optimisation des fiches.
  • Balisage technique.
  • Contenus persuasifs.
Étape 05 Acte III · Recetter

Tests et validation

Nous testons minutieusement le processus de commande, la vitesse et l'affichage mobile avant le lancement officiel.

  • Tests sur smartphones/tablettes.
  • Validation des formulaires.
  • Contrôle de vitesse.
  • Sécurité des transactions.
Étape 06 Acte III · Déployer

Mise en ligne et déploiement

Nous publions votre boutique et formons vos équipes à l'administration des commandes et des produits.

  • Déploiement sécurisé.
  • Validation des paiements.
  • Prise en main du back-office.
  • Accompagnement dédié.
Étape 07 Acte III · Évoluer

Suivi et maintenance

Nous assurons la maintenance technique et suivons vos résultats pour soutenir le développement des ventes.

  • Mises à jour sécurité.
  • Suivi analytique.
  • Optimisation conversion.
  • Ajout de fonctionnalités.
Un processus éprouvé vers la réussite De la réflexion initiale à la croissance de votre boutique, chaque étape est maîtrisée. Lancer votre boutique
(function () { function initHonadiProcessV2() { document.querySelectorAll("[data-hn-process-v2]").forEach(function (root) { if (root.dataset.processV2Ready === "true") return; root.dataset.processV2Ready = "true";var steps = Array.from( root.querySelectorAll("[data-process-v2-step]") ); var images = Array.from( root.querySelectorAll("[data-process-v2-image]") );var indexLabel = root.querySelector("[data-process-v2-stage-index]"); var titleLabel = root.querySelector("[data-process-v2-stage-title]"); var descriptionLabel = root.querySelector( "[data-process-v2-stage-description]" ); var progressLabel = root.querySelector( "[data-process-v2-stage-progress]" );if (!steps.length || !images.length) return;var stages = [ { index: "ACTE I", title: root.dataset.processV2Stage1Title || "", description: root.dataset.processV2Stage1Description || "", progress: "01 — 02" }, { index: "ACTE II", title: root.dataset.processV2Stage2Title || "", description: root.dataset.processV2Stage2Description || "", progress: "03 — 04" }, { index: "ACTE III", title: root.dataset.processV2Stage3Title || "", description: root.dataset.processV2Stage3Description || "", progress: "05 — 07" } ];var currentStage = -1; var currentStep = 0;function activate(stageIndex, stepIndex) { stageIndex = Math.max(0, Math.min(stageIndex, stages.length - 1)); stepIndex = Math.max(0, Math.min(stepIndex, steps.length - 1));if (currentStage !== stageIndex) { images.forEach(function (image, imageIndex) { var active = imageIndex === stageIndex; image.classList.toggle("is-active", active); image.setAttribute("aria-hidden", active ? "false" : "true"); });if (indexLabel) indexLabel.textContent = stages[stageIndex].index; if (titleLabel) titleLabel.textContent = stages[stageIndex].title; if (descriptionLabel) { descriptionLabel.textContent = stages[stageIndex].description; } if (progressLabel) { progressLabel.textContent = stages[stageIndex].progress; }currentStage = stageIndex; }if (currentStep !== stepIndex || !steps[stepIndex].classList.contains("is-current")) { steps.forEach(function (step, index) { step.classList.toggle("is-current", index === stepIndex); });currentStep = stepIndex; } }var observer = new IntersectionObserver( function (entries) { var visible = entries .filter(function (entry) { return entry.isIntersecting; }) .sort(function (a, b) { return b.intersectionRatio - a.intersectionRatio; });if (!visible.length) return;var activeStep = visible[0].target; var stepIndex = steps.indexOf(activeStep); var stageIndex = Number(activeStep.dataset.processStage || 0);activate(stageIndex, stepIndex); }, { rootMargin: "-30% 0px -48% 0px", threshold: [0.01, 0.2, 0.5, 0.8] } );steps.forEach(function (step) { observer.observe(step); });activate(0, 0); }); }if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", initHonadiProcessV2); } else { initHonadiProcessV2(); } })();
Pourquoi Honadi

Pourquoi choisir notre agence de création de site e-commerce au Canada ?

En confiant votre projet à Honadi, vous centralisez le design, le développement, le SEO et la maintenance sous une gouvernance unique et experte.

01 Organisation

Une équipe 100 % spécialisée e-commerce

Notre équipe rassemble des développeurs, designers et stratégistes dédiés exclusivement au commerce électronique.

Cette expertise nous permet de résoudre rapidement vos blocages techniques et de concevoir votre boutique plus efficacement.

Vous gagnez un temps précieux et évitez les erreurs coûteuses associées aux agences généralistes.

Découvrir la création web
02 Transparence

Suivi précis et rapports clairs sans jargon

Nous traduisons vos données e-commerce en indicateurs de performance faciles à comprendre au sein d'un rapport mensuel.

Nos décisions stratégiques s'appuient uniquement sur vos chiffres réels pour planifier les étapes suivantes.

Optimiser votre ROI
03 Respect des délais

Planification rigoureuse et engagement strict

Nous respectons scrupuleusement la date de lancement convenue pour vous permettre de planifier vos opérations commerciales.

Cette discipline évite les retards de livraison et garantit la disponibilité effective de votre site.

Consulter la refonte web
04 Évolutivité

Plateformes prêtes pour la croissance

Nos boutiques sont bâties sur des architectures solides capables d'absorber une forte augmentation de trafic sans ralentir.

Nous choisissons des technologies durables afin de vous éviter des reconstructions coûteuses à l'avenir.

Découvrir notre SEO
Marché canadien

Maîtrise des spécificités du marché canadien

Nous intégrons les systèmes fiscaux provinciaux, les options de livraison locales et les habitudes d'achat des Canadiens.

Prendre en compte ces différences régionales permet de bâtir une expérience d'achat parfaitement adaptée à vos clients.

Découvrir le développement web
Demander un devis

Parlons de votre projet. Passons à l’action.

Décrivez-nous votre besoin en quelques lignes. Notre équipe revient vers vous avec un premier cadrage adapté à votre activité, votre marché et vos objectifs.

Premier cadrage sans engagement
Premier retour sous 48 h ouvrées
Recommandations adaptées à votre contexte

Demander un devis

Premier retour sous 48 h
Sécurisé · Sans engagement · Confidentiel
Présence canadienne

Agence de création de site e-commerce au Canada dans les grandes métropoles.

Honadi accompagne les PME transactionnelles à travers les principaux centres économiques et technologiques du Canada.

Québec 01 / 05

Montréal

Le hub incontournable du commerce numérique.

Montréal bénéficie d'une scène commerciale dynamique portée par les secteurs de la mode, de l'artisanat et des technologies. Dans ce marché bilingue, une boutique en ligne doit être rapide et attrayante.

Honadi crée des boutiques Shopify et WooCommerce personnalisées en français et en anglais pour capter l'ensemble des consommateurs montréalais.

Photo : Wikimedia Commons
(function () { function initHonadiAtlasV2() { document.querySelectorAll("[data-hn-atlas-v2]").forEach(function (atlas) { if (atlas.dataset.atlasReady === "true") return; atlas.dataset.atlasReady = "true";var photos = Array.from(atlas.querySelectorAll("[data-atlas-photo]")); var panels = Array.from(atlas.querySelectorAll("[data-atlas-panel]")); var markers = Array.from(atlas.querySelectorAll("[data-atlas-index]")); var rootSection = atlas.closest(".hn-country-atlas-v2"); var tabs = rootSection ? Array.from(rootSection.querySelectorAll("[data-atlas-tab]")) : []; var prev = rootSection ? rootSection.querySelector("[data-atlas-prev]") : null; var next = rootSection ? rootSection.querySelector("[data-atlas-next]") : null; var activeIndex = 0; var touchStartX = 0;if (!photos.length || photos.length !== panels.length) return;function show(index, focusControl) { activeIndex = (index + panels.length) % panels.length;photos.forEach(function (photo, photoIndex) { var active = photoIndex === activeIndex; photo.classList.toggle("is-active", active); photo.setAttribute("aria-hidden", active ? "false" : "true"); });panels.forEach(function (panel, panelIndex) { panel.hidden = panelIndex !== activeIndex; });markers.forEach(function (marker) { var active = Number(marker.dataset.atlasIndex) === activeIndex; marker.setAttribute("aria-pressed", active ? "true" : "false"); });tabs.forEach(function (tab) { var active = Number(tab.dataset.atlasTab) === activeIndex; tab.setAttribute("aria-selected", active ? "true" : "false"); tab.setAttribute("tabindex", active ? "0" : "-1"); });var activeTab = tabs.find(function (tab) { return Number(tab.dataset.atlasTab) === activeIndex; });if (activeTab) { activeTab.scrollIntoView({ behavior: "smooth", block: "nearest", inline: "center" });if (focusControl === "tab") activeTab.focus(); }if (focusControl === "marker") { var activeMarker = markers.find(function (marker) { return Number(marker.dataset.atlasIndex) === activeIndex; });if (activeMarker) activeMarker.focus(); } }markers.forEach(function (marker) { marker.addEventListener("click", function () { show(Number(marker.dataset.atlasIndex), false); }); });tabs.forEach(function (tab) { tab.addEventListener("click", function () { show(Number(tab.dataset.atlasTab), false); }); });if (prev) { prev.addEventListener("click", function () { show(activeIndex - 1, false); }); }if (next) { next.addEventListener("click", function () { show(activeIndex + 1, false); }); }atlas.addEventListener("keydown", function (event) { if (event.key === "ArrowLeft") { event.preventDefault(); show(activeIndex - 1, "tab"); }if (event.key === "ArrowRight") { event.preventDefault(); show(activeIndex + 1, "tab"); } });atlas.addEventListener( "touchstart", function (event) { touchStartX = event.changedTouches[0].clientX; }, { passive: true } );atlas.addEventListener( "touchend", function (event) { var distance = event.changedTouches[0].clientX - touchStartX;if (Math.abs(distance) < 45) return;show(distance < 0 ? activeIndex + 1 : activeIndex - 1, false); }, { passive: true } );show(0, false); }); }if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", initHonadiAtlasV2, { once: true }); } else { initHonadiAtlasV2(); } })();
Lancez-vous Honadi · Canada · E-Commerce
Transformez votre vision en boutique rentable

Agence de création de site e-commerce au Canada à vos côtés.

Obtenez une boutique en ligne sur mesure, performante et conçue pour convertir vos visiteurs en acheteurs fidèles.

Travailler avec Honadi, c'est choisir un partenaire engagé dans la réussite et la rentabilité de votre entreprise.

01 Évaluer vos besoins Un échange stratégique pour définir le périmètre et les objectifs de votre boutique.
02 Recevoir votre devis Une proposition détaillée incluant les fonctionnalités, les délais et le budget clair.
03 Lancer votre site Développement, tests rigoureux et mise en ligne accompagnés d'un suivi continu.

Créez dès aujourd'hui une plateforme transactionnelle solide pour assurer la croissance de vos ventes.

FAQ E-commerce

Questions fréquentes e-commerce. Des réponses précises.

Vos interrogations sur le choix du CMS, les tarifs et l'optimisation de votre boutique e-commerce au Canada.

Choisissez une agence possédant des références concrètes en e-commerce. Vérifiez la maîtrise des CMS principaux (Shopify, WooCommerce, Magento) et l'expertise technique de leurs équipes.

Consultez les témoignages clients et échangez avec leurs anciens partenaires pour vous assurer de la qualité du support post-lancement.

Vous avez d'autres questions ? Contactez notre équipe pour discuter des détails de votre projet e-commerce au Canada. Poser une question
(function () { function updateHonadiFaqSchemaV2() { document.querySelectorAll(".hn-country-faq-v2").forEach(function (section, sectionIndex) { var items = Array.from(section.querySelectorAll(".hn-faq-v2-item")); if (!items.length) return;var mainEntity = items.map(function (item) { var questionNode = item.querySelector(".hn-faq-v2-question-title"); var answerParagraphs = Array.from( item.querySelectorAll(".hn-faq-v2-answer-copy p") );var question = questionNode ? questionNode.textContent.trim() : ""; var answer = answerParagraphs .map(function (paragraph) { return paragraph.textContent.trim(); }) .filter(Boolean) .join(" ");return { "@type": "Question", "name": question, "acceptedAnswer": { "@type": "Answer", "text": answer } }; }).filter(function (entity) { return entity.name && entity.acceptedAnswer.text; });if (!mainEntity.length) return;var schema = { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": mainEntity };var schemaId = "hn-faq-v2-schema-" + sectionIndex; var schemaNode = document.getElementById(schemaId);if (!schemaNode) { schemaNode = document.createElement("script"); schemaNode.type = "application/ld+json"; schemaNode.id = schemaId; section.insertAdjacentElement("afterend", schemaNode); }schemaNode.textContent = JSON.stringify(schema); }); }if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", updateHonadiFaqSchemaV2, { once: true }); } else { updateHonadiFaqSchemaV2(); } })();(function () { function initHonadiFaqV2() { document.querySelectorAll("[data-hn-faq-v2]").forEach(function (faq) { if (faq.dataset.faqV2Ready === "true") return; faq.dataset.faqV2Ready = "true";var buttons = Array.from( faq.querySelectorAll(".hn-faq-v2-question") );function close(button) { var answerId = button.getAttribute("aria-controls"); var answer = document.getElementById(answerId);button.setAttribute("aria-expanded", "false"); if (answer) answer.hidden = true; }function open(button) { var answerId = button.getAttribute("aria-controls"); var answer = document.getElementById(answerId);buttons.forEach(function (otherButton) { if (otherButton !== button) close(otherButton); });button.setAttribute("aria-expanded", "true"); if (answer) answer.hidden = false; }buttons.forEach(function (button) { button.addEventListener("click", function () { var isOpen = button.getAttribute("aria-expanded") === "true";if (isOpen) { close(button); } else { open(button); } });button.addEventListener("keydown", function (event) { var index = buttons.indexOf(button);if (event.key === "ArrowDown") { event.preventDefault(); buttons[(index + 1) % buttons.length].focus(); }if (event.key === "ArrowUp") { event.preventDefault(); buttons[(index - 1 + buttons.length) % buttons.length].focus(); }if (event.key === "Home") { event.preventDefault(); buttons[0].focus(); }if (event.key === "End") { event.preventDefault(); buttons[buttons.length - 1].focus(); }if (event.key === "Escape") { close(button); button.focus(); } }); }); }); }if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", initHonadiFaqV2, { once: true }); } else { initHonadiFaqV2(); } })();