Aller au contenu

Satellite de E-mails v2.3.0

Configurer Newsletter

Collectez des abonnés en double opt-in, composez vos campagnes et envoyez-les aux confirmés.

newsletter

Ce qu'il fait

Abonnés en double opt-in (e-mail de confirmation) et désinscription RGPD toujours possible, avec un lien dans chaque e-mail. L'administration liste les abonnés, les compte, permet l'ajout, la suppression, la désinscription manuelle et l'export CSV, et un formulaire d'inscription se pose sur le site. Les campagnes se composent par blocs (en-tête, bandeau, texte, image, bouton, séparateur, pied) depuis 5 modèles prêts à remplir, avec des profils d'envoi (logo, palette, expéditeur, pied RGPD) et un aperçu du rendu réel. L'envoi part aux abonnés confirmés par lots, avec un lien de désinscription propre à chaque destinataire, un envoi de test qui ne touche pas au statut et une protection contre le double envoi : une campagne envoyée est figée en lecture seule.

  • Formulaire d'inscription front avec confirmation par email
  • Désinscription RGPD toujours possible, lien dans chaque email
  • Composeur de campagnes par blocs : 5 modèles prêts à remplir, profils d'envoi (logo, palette, expéditeur) et aperçu du rendu réel
  • Envoi aux abonnés confirmés par lots, avec un test préalable et une protection contre le double envoi
  • Admin : compteurs, filtres par statut, export CSV des confirmés

Ses droits

Ce que chaque rôle peut faire par défaut. Modifiable rôle par rôle depuis l'administration.

Droit Clé Administrateur Éditeur
Voir les abonnés newsletter newsletter.read ✓ ✓
Ajouter / supprimer / désinscrire manuellement newsletter.write ✓ ✓

Ce qu'il suppose

Ce module a besoin de :

Piloter par une IA

Ce que ce module sait faire quand on le lui demande en langage naturel, et ce que chaque action engage.

  • lister lecture seule réservée à votre accès MCP (clé maître)

    Liste les abonnés récents (lecture seule). Params : status?, limit (max 50).

  • profils lecture seule

    Liste les profils d'envoi (lecture seule) : logo, couleurs, expéditeur, lequel est le défaut.

  • campagnes lecture seule

    Liste les campagnes récentes (lecture seule) : objet, template, statut. Params : limit (max 50).

  • envoyer confirmation demandée réservée à votre accès MCP (clé maître)

    Envoie une campagne (statut brouillon) à tous les abonnés confirmés — envoi RÉEL, irréversible, refusé si la campagne n'est plus en brouillon.

  • ajouter confirmation demandée

    Inscrit une ou plusieurs adresses à la newsletter, confirmées tout de suite, SANS e-mail de confirmation : le compte se porte garant de leur accord. « accord » dit où elles ont dit oui (gardé comme preuve du consentement). Une adresse désinscrite ou effacée à sa demande est laissée de côté (elle se réinscrit depuis sa fiche dans l'administration). Rend le bilan : ajoutées, déjà abonnées, laissées de côté, invalides.

    « inscris marie@exemple.fr à la newsletter, elle me l'a demandé au salon » « ajoute ces trois adresses à la newsletter »

Ses points de branchement

Pour greffer du code sans toucher au module : ce qu'il annonce, et ce qu'il écoute.

Ce qu'il annonce 15
newsletter.subscribed
Émis après une (ré)inscription (statut pending). Args: [array $subscriber]
newsletter.unsubscribed
Émis après désinscription (token ou manuelle admin). Args: [int $id, string $email]
newsletter.deleted
Émis après suppression définitive par l'admin. Args: [int $id, string $email]
newsletter.confirmed
Émis après confirmation (formulaire confirmé, client connecté, client à sa commande, ajout manuel). Args: [int $id, string $email]
newsletter.offres
Filter — les OFFRES DE CODES UNIQUES qu'une campagne peut choisir. Args: [?array $offres] ; null = personne ne fait de codes (la section disparaît) ; sinon liste de ['id' => int, 'nom' => string, 'resume' => string, 'actif' => bool]. shop-promo répond.
newsletter.code_unique
Filter — le code d'une personne pour une offre, tiré à l'envoi (le même s'il existe déjà). Args: [?string $code, int $offreId, string $email, string $origine (newsletter:<campagne>, panier…)]. shop-promo répond.
newsletter.bilan_codes
Filter — le bilan des codes d'une offre pour une origine. Args: [?array $bilan, int $offreId, string $origine] ; rendre ['emis' => int, 'utilises' => int].
newsletter.origine_du_code
Filter — qui a tiré ce code (newsletter:<campagne>, panier…), pour attribuer la commande à sa campagne. Args: [?string $origine, string $code].
newsletter.modeles
Filter — les MODÈLES DE CAMPAGNE d'un thème (son hooks.php), proposés à côté de ceux du kit à « Nouvelle campagne », avec un filtre « Du thème ». Args: [array $modeles] ; clé (a-z, 0-9, - et _) => ['name' => string, 'description' => string, 'blocks' => liste de blocs EmailBlocks ou callable]. Une clé du kit n'est jamais remplacée.
newsletter.produits
Filter — les produits qu'un bloc Produits propose en tapant. Args: [?array $liste] ; liste de chaînes « Nom · #id ». null = pas de boutique : le bloc n'est pas proposé. La boutique répond (produits publiés).
newsletter.produit
Filter — un produit tel qu'il est AU MOMENT DU RENDU de l'e-mail. Args: [?array $produit, int $id] ; ['nom', 'prix' (texte formaté), 'image' (chemin ou adresse), 'url'] ou null s'il n'est plus publié. La boutique répond.
newsletter.criteres
Filter — les critères de « À qui ? » qu'un module sait juger. Args: [array $criteres] ; clé => ['label', 'kind' (choix|nombre|montant), 'options'?, 'aide'?]. La boutique répond (clients, catégorie, achats, montant).
newsletter.critere
Filter — les adresses qui répondent à un critère. Args: [?array $r, string $cle, string $valeur] ; ['emails' => liste, 'sauf' => bool]. null = critère inconnu : la campagne ne part pas.
newsletter.raisons
Filter — les raisons d'une relance « raison + délai ». Args: [array $raisons] ; clé => ['label', 'aide'?]. La newsletter donne l'inscription, la boutique le panier laissé et les commandes.
newsletter.evenements
Filter — les événements d'une raison entre deux dates UTC. Args: [?array $evenements, string $raison, string $depuis, string $jusqua] ; liste de ['email', 'date', 'reference' (unique), 'prenom'?, 'contenu'? (HTML du bloc « Le contenu de l'e-mail »)].

Ses prises front

Les morceaux de page que ce module fournit, et les classes qu'ils posent. Un thème les habille par ces classes : il ne recopie pas le balisage, sinon il rate les corrections des versions suivantes.

views/inscription.php 9 classes
  • s-newsletter
  • s-newsletter-email
  • s-newsletter-error
  • s-newsletter-field
  • s-newsletter-hp
  • s-newsletter-input
  • s-newsletter-mesure
  • s-newsletter-submit
  • s-newsletter-success

Ses données

Les tables que ce module crée. Désactiver un module ne les efface pas : ses données restent en base et reviennent s'il est réactivé.

Les tables 13
  • newsletter_abonnes_sujets
  • newsletter_attributions
  • newsletter_campaigns
  • newsletter_commandes
  • newsletter_envois
  • newsletter_exclusions
  • newsletter_liens
  • newsletter_mises_en_page
  • newsletter_profiles
  • newsletter_relances
  • newsletter_relances_envois
  • newsletter_subscribers
  • newsletter_sujets