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.
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 :
- emails *
Piloter par une IA
Ce que ce module sait faire quand on le lui demande en langage naturel, et ce que chaque action engage.
-
listerlecture seule réservée à votre accès MCP (clé maître)Liste les abonnés récents (lecture seule). Params : status?, limit (max 50).
-
profilslecture seuleListe les profils d'envoi (lecture seule) : logo, couleurs, expéditeur, lequel est le défaut.
-
campagneslecture seuleListe les campagnes récentes (lecture seule) : objet, template, statut. Params : limit (max 50).
-
envoyerconfirmation 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.
-
ajouterconfirmation demandéeInscrit 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-newsletters-newsletter-emails-newsletter-errors-newsletter-fields-newsletter-hps-newsletter-inputs-newsletter-mesures-newsletter-submits-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_sujetsnewsletter_attributionsnewsletter_campaignsnewsletter_commandesnewsletter_envoisnewsletter_exclusionsnewsletter_liensnewsletter_mises_en_pagenewsletter_profilesnewsletter_relancesnewsletter_relances_envoisnewsletter_subscribersnewsletter_sujets