{# ====================================================================== OFFRES — source unique des formules et des prix (home + page Offres) Prix donnes par David (4/11/2026) : l'installation est le prix mis en avant ; abonnement 30 € HT / mois, 50 € HT pour Click & Collect (commande en ligne, retrait sur place, sans expedition). Usage : {% include 'client/_offres.html.twig' with { vue: '…' } %} cartes les 3 cartes (grille) ; surPageOffres: true -> boutons vers #comparatif tableau le tableau comparatif detaille a_partir « À partir de 450 € HT + 30 € HT / mois » cout le cout sur 3 ans de chaque formule jsonld les donnees structurees Product + Offer vitrine_install / vitrine_3ans montants de la formule Vitrine (« 450 € », « 1 530 € ») commission commission des prescripteurs, 10 % de l'installation (« de 45 € à 85 € ») prix_option prix HT d'une option, en nombre : with { vue: 'prix_option', option: 'module' | 'marketing' | 'design' } ====================================================================== #} {% import 'client/_macros.html.twig' as m %} {% set offres = [ { nom: 'Vitrine', accroche: 'Vos clients vous trouvent enfin sur Google', mois_ht: 30, install_ht: 450, vedette: false, inclus: ['Pages personnalisées', 'SEO intégré', 'Formulaire de contact sécurisé', '6 thèmes + personnalisation', 'Modules Services, FAQ et Réalisations', 'Hébergement + maintenance'] }, { nom: 'Blog', accroche: 'Montrez votre expertise et attirez des clients', mois_ht: 30, install_ht: 550, vedette: true, inclus: ['Toute l’offre Vitrine', 'Module Blog — articles, catégories, tags'] }, { nom: 'Click & Collect', accroche: 'Commande en ligne et retrait chez vous', mois_ht: 50, install_ht: 850, vedette: false, inclus: ['Toute l’offre Blog', 'Module Catalogue', 'Commande en ligne, retrait sur place', 'Paiement sécurisé par Stripe', 'Module Marketing'] }, ] %} {# Tableau comparatif : true = inclus, false = non, 'option' = en option (voir les options a la carte) #} {% set comparatif = [ { libelle: 'Pages personnalisées', v: [true, true, true] }, { libelle: 'SEO intégré', v: [true, true, true] }, { libelle: 'Formulaire de contact sécurisé', v: [true, true, true] }, { libelle: '6 thèmes + personnalisation', v: [true, true, true] }, { libelle: 'Hébergement en France + maintenance', v: [true, true, true] }, { libelle: 'Module Services', v: [true, true, true] }, { libelle: 'Module FAQ', v: [true, true, true] }, { libelle: 'Module Réalisations', v: [true, true, true] }, { libelle: 'Module Blog — articles, catégories, tags', v: [false, true, true] }, { libelle: 'Module Catalogue', v: ['option', 'option', true] }, { libelle: 'Commande en ligne, retrait sur place', v: [false, false, true] }, { libelle: 'Paiement sécurisé par Stripe', v: [false, false, true] }, { libelle: 'Module Marketing', v: ['option', 'option', true] }, { libelle: 'Module Événements', v: ['option', 'option', 'option'] }, { libelle: 'Module Annuaire', v: ['option', 'option', 'option'] }, ] %} {% set ttc = 1.2 %} {# Options a la carte, prix HT (page Tarifs, page Fonctionnalites) #} {% set options_prix = { module: 100, marketing: 250, design: 250 } %} {% if vue == 'cartes' %}
{% for o in offres %}
{% if o.vedette %}Le plus choisi{% endif %}

{{ o.nom }}

{{ o.accroche }}

Création et mise en ligne

{{ m.euros(o.install_ht) }} HT soit {{ m.euros(o.install_ht * ttc) }} TTC, une seule fois

Puis {{ o.mois_ht }} € HT / mois ({{ o.mois_ht * ttc }} € TTC)

    {% for i in o.inclus %}
  • {{ i }}
  • {% endfor %}
{% endfor %}
{% elseif vue == 'tableau' %}
{% for o in offres %} {% endfor %} {% for o in offres %} {% endfor %} {% for o in offres %} {% endfor %} {% for ligne in comparatif %} {% for v in ligne.v %} {% endfor %} {% endfor %}
Ce que comprend chaque formule
Fonctionnalité{{ o.nom }}
Création et mise en ligne{{ m.euros(o.install_ht) }} HT{{ m.euros(o.install_ht * ttc) }} TTC
Abonnement mensuel{{ o.mois_ht }} € HT{{ o.mois_ht * ttc }} € TTC
{{ ligne.libelle }} {% if v is same as(true) %}Inclus {% elseif v == 'option' %}En option {% else %}Non inclus{% endif %}
{% elseif vue == 'a_partir' %} {% set d = offres|first %}{{ m.vague('À partir de ' ~ m.euros(d.install_ht) ~ ' HT') }} + {{ d.mois_ht }} € HT / mois {% elseif vue == 'prix_option' %}{{ options_prix[option] }} {% elseif vue == 'vitrine_install' %}{{ m.euros((offres|first).install_ht) }} {% elseif vue == 'commission' %}{% set installs = offres|map(o => o.install_ht) %}de {{ m.euros(min(installs) * 0.1) }} à {{ m.euros(max(installs) * 0.1) }} {% elseif vue == 'vitrine_3ans' %}{% set d = offres|first %}{{ m.euros(d.install_ht + 36 * d.mois_ht) }} {% elseif vue == 'cout' %}
{% for o in offres %}
{{ o.nom }} {{ m.euros(o.install_ht + 36 * o.mois_ht) }} HT {{ m.euros(o.install_ht) }} d'installation + 36 mois à {{ o.mois_ht }} €
{% endfor %}
{% elseif vue == 'jsonld' %} {% endif %}