Gestion d'un magazine v16
Gestion des abonnements, des points de dépots-ventes, de l'accès web...
- Gestion des abonnements
- Configuration
- Création d'un abonnement
- Facturation des abonnements
- Fin d'un abonnement
- Exporter la liste des abonnements pour l'imprimeur
- Côté client : achat sur l'e-commerce et accès portail
- Offrir un abonnement
- Période d'essai et Accès web
- Email de confirmation d'abonnement
- Ventes en librairie
Gestion des abonnements
Cette documentation concerne la gestion d'abonnements de magazines (ou autres). La gestion des abonnements se base sur le module contract de l'OCA. La configuration part du principe que les abonnements sont payés par domiciliation, mais a priori possible de s'en passer et d'avoir un flux fonctionnel. De même, on part du principe que les produits d'abonnements sont des biens et pas des services, et on intègre donc les considérations de frais de livraison et de gestion des stocks. Ici aussi la solution est en principe tout à fait fonctionnelle sans ces aspects.
Configuration
Modules à installer
Contrat - E-commerce
- contract
- product_contract
Gestion des frais de transport et adresses de livraison
- product_contract_sale_generation
- product_contract_storable
- sale_order_auto_carrier
- contract_delivery_address
Gestion de la domiciliation
- website_sale_sepa_dd_payment
- website_sale_restrict_sepa_dd
- payment_sepa_dd_payment_mode
- account_move_payment_mode_sepa
-
contract_sale_generation_payment_mode
Automatisation et facturation en masse
Configuration des contrats
Se rendre dans Facturation>Configuration>Contrat>Modèle de contrat et créer un modèle de contrat pour chaque durée d'abonnement disponible.
Nommer le modèle, choisir comme Type de document à générer "Ventes" (si l'on ne facture pas de frais de livraison et que l'on ne gère pas de stock, il faut plutôt choisir "Facture"). Choisir le journal comptable. Ne pas mettre de ligne d'article.
Configuration des produits
Dans le système d'abonnement Odoo, on crée un produit d'abonnement pour chaque durée d'abonnement et chaque prix. Par exemple, si on a une politique de prix avec trois prix différents, et que l'on offre des abonnements de 1 an et des abonnements d'un trimestre, alors il faut créer un produit pour chaque configuration, soit 3*2=6 produits.
Créons donc un produit pour un abonnement de 1 an à un prix réduit. Il faut configurer les champs suivant
- nommer le produit
- Encoder le prix et la taxe à la vente
- Choisir comme type "stockable" (ici aussi, si l'on n'utilise pas de stock et de frais de livraison, vous pouvez mettre "service").
- cocher "est un contrat", l'onglet "contrat" apparait
- Dans l'onglet Ventes, choisir une catégorie de ecommerce "Abonnement", cela permettra d'avoir tous les produits abonnements sur une page dédiées.
- Si vous utilisez la domiciliation, cochez les cases Allow SEPA direct debit et Only Sepa Direct Debit.
-
Si vous ne prévoyez pas de gérer votre stock dans Odoo (mais avez quand même besoin de facturer des frais de livraisons), c'est une bonne idée de faire un ajustement de stock sur le produit avec une quantité très grande, afin de ne pas être embêté par des fausses alertes de stock épuisé. Vous pouvez faire cela via le bouton "Mettre les quantités à jour".
Mode de paiement
S'il n'existe pas déjà, créer un mode de paiement spécifique pour les prélèvements SEPA :
Configuration du site web
Voici la procédure pour afficher un menu dédié pour les abonnements dans la boutique.
D'abord, aller sur la boutique du site web, puis dans la catégorie de produit "Abonnement" (configurée sur le produit plus haut). Copier l'url.
Ensuite, aller dans Site Web>Configuration>Menus, puis Nouveau. Nommer le menu, copier l'url dans URL, puis retirer tout ce qui est avant "/shop". Choisissez le menu Parent "Menu principal du site web [nomdusiteweb]".
Par ailleurs, la solution actuelle ne fonctionne que si l'on active la configuration "aller au panier" quand on ajoute un produit.
Frais de livraison
Configurer les méthodes de livraisons si besoin, voir ici
Validation en masse
Créer une action-serveur. Le mode debug est nécéssaire. Aller dans Configuration>Technique>Actions>Actions de serveur, puis sur Nouveau. Configurer comme suit :
L'objectif est de pouvoir afficher tous les transferts liés à une liste de bon de commande, afin de pouvoir les confirmer en masse.
Filtres sur les bons de commande
Afin de faciliter la facturation, on veut pouvoir filtrer en un clic les bons de commande d'abonnement à facturer. On créé donc deux filtres personalisés dans la vue liste des bons de commande.
- SO à facturer :
- "created from contract" est Vrai
- "Statut de la facture" est "à facturer".
- SO à livrer
- "statut de livraison" n'est pas "entièrement livré"
- "created from contract" est Vrai
- "statut de livraison" n'est pas "entièrement livré"
Création d'un abonnement
Achat d'un abonnement
Toutes les opérations mentionnées ici sont automatisées, cette page sert juste à expliquer ce qui se passe lorsqu'un client achète un abonnement via l'e-commerce.
Les abonnements sont commandés via l'e-commerce. Des bons de commande sont créés pour chaque nouvel abonnement.
Si l'abonnement est payé par domiciliation, les bons de commande seront automatiquement confirmés à la fin de la commande (grâce au module sepa_sale_order_autoconfirm).
La confirmation du bon de commande a entraîné l'envoi d'un mail automatique. Cela a également généré un contrat. Le bon de commande est marqué comme entièrement facturé car il sera facturé via le contrat.
Lorsqu'on utilise des frais de livraison, il reste une ligne dans le bon de commande lié à ce frais de livraison, qui elle n'est pas marquée comme facturé. Il faut ignorer cette ligne car elle sera également facturé via les contrats.
Pour en savoir plus sur les contrats, voir notre documentation à ce sujet. Voici néanmoins quelques explications :
Si on clique sur la ligne de contrat, on peut voir d'autres détails, notamment :
- Le prix de l'abonnement
- La durée de l'abonnement ("renouveler chaque" et "facturer tous les")
- La date de début de l'abonnement, la date de fin (cette date de fin n'en est pas vraiment une car le contrat est en renouvellement automatique).
- L'avis d'échéance de 1 mois est un fonctionnement purement interne, la ligne va passer de "En cours" à "A renouveler", mais aucune communication sera faite au client.
Création des commandes par le contrat
La nuit suivant la création du contrat, un programme automatique va créer un bon de commande lié au contrat. La commande apparaitra via ce bouton-ci :
Cette case sur le bon de commande nous signale qu'il a été créé par un contrat
Lors de la confirmation du contrat, les frais de port devraient être automatiquement ajoutés (grâce au module sale_order_auto_carrier), en se basant sur l'adresse de livraison.
L'adresse de livraison est determinée ici par rapport à la fiche contact du client. Ainsi si le client change d'adresse de livraison après la création du contrat, elle sera mise à jour dans ses futures factures et les frais de livraison seront adaptés.
Facturation des abonnements
Jusqu'ici, aucune intervention humaine n'a été nécessaire. Voici maintenant la procédure pour facturer les nouveaux abonnements et les abonnements renouvelés.
Dans la vue liste des bons de commande, on applique le filtre SO à livrer (cf la page de configuration). On sélectionne toutes les commandes. Puis on clique sur Action>Action groupée et dans on clique sur Confirmer.
Puis on confirme les livraisons : Action>Transférer les commandes (attention le nom peut changer selon la configuration faites ici !). Cela affiche tous les bons de livraisons créés par les commandes.
Selectionner les lignes, puis cliquer sur "Vérifier la disponibilité", puis Action>Valider.
On revient aux bons de commande, on réapplique le filtre "SO à facturer", puis Action >Créer les facture. On confirme : "Créer et afficher les factures".
Les factures s'affichent, on les sélectionnent, puis on les valide : Action>Comptabiliser les écritures.
Enfin, sélectionner les factures et cliquer sur Action>"Envoyer et imprimer".
Puis on les ajoute à un ordre de paiement.
Fin d'un abonnement
Pour mettre fin à un abonnement, il faut mettre fin au contrat. Pour cela, on se rend sur le contrat, puis sur la ligne de contrat, on clique sur le carré rouge 'Interrompre' (il faut scroller vers la droite pour le voir car la ligne est longue).
On rentre alors la date de fin de l'abonnement. Si un accès web est lié à l'abonnement, il faut rentrer la date de fin de période de facturation afin d'être sûr que l'abonné ai le droit de consulter le site web sur toute la période.
Exporter la liste des abonnements pour l'imprimeur
Au moment de la parution du numéro, il faut pouvoir exporter une liste de toutes les adresses auxquelles il faut envoyer le numéro.
Pour cela aller dans Ventes>Commandes>Contrat, s'assurer que le filtre par défaut "En cours" est bien coché.
Si certain contrat ne donnent pas droit à recevoir un magazine (comme une période d'essai), il faut faire un filtre pour retirer ces contrats. Attention également si vous utilisez les contrats pour autre chose que des abonnements magazines.
Ensuite, sélectionnez tous les contrats, puis Action>Exporter et assurez-vous de bien inclure le champs Shipping Adress>Adresse complète et Nom. Les autres champs ne sont pas vraiment nécéssaire a priori.
Côté client : achat sur l'e-commerce et accès portail
Achat sur l'e-commerce
Le client se rend sur l'e-commerce et, si la configuration a été faite (cf page Configuration), il accède aux produits d'abonnement via un menu dédié.
Le flux d'achat est similaire au flux d'achat classique du e-commerce.
Dans le cas d'une boutique où l'on peut acheter à la fois des produits aux numéros et des abonnements par domiciliation, une contrainte est mise en place pour empêcher d'acheter les deux en même temps si la case "Only SEPA payment" est cochée sur le produit.
En effet, on ne doit pas pouvoir acheter autre chose qu'un abonnement via la domiciliation. Ainsi si l'on a un panier rempli avec un numéro, et que l'on souhaite y ajouter un abonnement, on aura l'erreur suivante (et de même si on fait l'inverse).
Accès portail
Comme pour tous les contrats, les clients peuvent le consulter sur le portail.
Offrir un abonnement
Pour activer cette fonctionalité, installer le module website_sale_product_contract_gift.
Ce module permet à un utilisateur d'offrir un abonnement à durée déterminée (non renouvelé) à quelqu'un d'autre, et de choisir une date à partir de laquelle l'abonnement (le contrat) commencera.
Configuration
Produit
Créer un produit dédié ( nommé "Abonnement cadeau" par exemple), de type stockable (si l'on veut facturer des frais de port), et dans l'onglet Ventes, cocher "is Gift". Publier le produit sur le e-commerce.
Via le module automation_oca (documenté ici), on peut configurer un email automatique qui sera envoyé au receveur le jour du début du contrat (qui a été spécifié par l'acheteur).
Pour cela on créé la configuration suivante, ainsi qu'un nouveau modèle de mail associé, voir la documentation du module pour plus de détail.
Site web
Comme documenté ici, on peut créer un menu dédié pour visibiliser le produit "Abonnement Cadeau".
Parcours utilisateur frontend
Une personne qui souhaite offrir un abonnement suit normalement le flux d'achat e-commerce du produit Abonnement Cadeau.
Le module interdit d'acheter un cadeau en plus d'un autre abonnement. Un message d'erreur sera affiché car les abonnement sont payés en prélèvement SEPA donc doivent faire l'objet d'une commande séparé.
Dans la page d'adresse, il doit encoder la date du cadeau (date de début du contrat et d'envoi du mail associé). Ainsi qu'ajouter une adresse supplémentaire pour le receveur du cadeau.
Le reste du flux de commande e-commerce est similaire.
Suivi en backend
La commande est automatiquement confirmée, l'acheteur du cadeau recevra donc un mail de confirmation de sa commande.
Un contrat a aussi été créé, sur un produit gratuit. Le contrat est au nom du receveur du cadeau. Le champ Responsable indique l'utilisateur (lié au contact) qui a offert le cadeau. La date de début du contrat est celle spécifiée par l'acheteur.
Le contrat va engendré une facture à zéro € qu'il faudra ignorer dans la comptabilité.
Période d'essai et Accès web
Grâce au module website_sale_product_trial, il est possible de gérer des périodes d'essais de 15 jours (la durée est codée en dure) donnant seulement un accès web (pas d'envoi de magazine). Le module subscription_web_access ajoute des champs "subscriber" et "web_subscriber" calculés par rapport au contrat en cours.
Le module contient aussi une méthode qui réponds en json à des appels externe. Cette méthode est dévelopé spécifiquement pour dialoguer avec Wagtail.
Si il y a un contrat en cours, le partenaire est "web_subscriber". Si le produit du contrat n'est pas une période d'essai, la personne est aussi "subscriber".
Attention : cette fonctionalité n'est actuellement pas compatible avec un usage des contrats hors abonnement, vu qu'il n'y a pas de condition qui vérifie que le produit du contrat est bien un abonnement.
Configuration
Créer un produit "période d'essai", à prix de vente nul et de type service, et cocher la case "Is Trial" dans l'onglet Vente.
On peut mettre dans la description de vente du produit une explication
Parcours utilisateurs front-end
La personne qui souhaite prendre une période d'essai achète le produit période d'essai dans le e-commerce. Lors de la confirmation de la commande, l'utilisateur est redirigé vers une page de confirmation explicative (à traduire pour mettre le texte souhaité) :
Parcours utilisateur back-end
Le bon de commande est confirmé automatiquement, un contrat est créé, qui commence aujourd'hui et à une durée de 15 jours (codé en dur).
La case "web_subscriber" est cochée sur la fiche contact.
Les contrats passent en état "interruption à venir" un mois avant la date de fin. Cela n'a pas d'impact, mais cela doit être pris en compte dans les filtre sur l'état (inclure "en cours" et "interruption à venir").
L'état "à renouveler" concerne uniquement les contrat avec renouvellement manuel, ce qui n'est pas le cas ici.
Email de confirmation d'abonnement
Les achats dans le ecommerce entraînent nativement une confirmation de commande. Cependant, il faut communiquer plus en détail sur l'abonnement, et sur le mode de paiement par domiciliation.
Pour cela on utiliser le module automation_oca (documenté ici), en configurant le filtre ci-dessous.
On ajoute ensuite un envoi de mail, en créant un modèle de courriel approprié (voir cette documentation).
Ventes en librairie
Listes de distributions
Gérer des dépôts/ventes
[Prérequis: il faut que le module delivery_distribution_list soit installé]
Ce module est utilisé pour piloter des échanges avec les librairies.
Créer un dépot/vente/un transporteur
Sur la fiche contact, les cases à cocher “deposit/sale” et “carrier delivery” ont été
ajoutées
Transporteur
Il suffit de cocher la case.
Vous pouvez retrouver ensuite les transporteurs dans le menu dédié depuis le menu Ventes>Delivery Distribution>Carriers
Dépot/vente
Une fois la case deposit/sale cochée, des infos en plus sont disponibles dans l’onglet Ventes et achats. Il faut assigner un livreur à choisir parmi la liste des contacts ayant la case carrier cochée et une quantité par défaut à déposer.
Le champs Assigned Carrier est nécéssaire si le contact est un point de dépôt/vente.
Créer des listes de distribution
En cliquant sur Generate list, une ligne est créée par contact ayant la case deposit/sale cochée.
Si vous voyez l'erreur ci-dessous, c'est que au moins un contact "deposit/sale" n'a pas de carrier assigné. Pour corriger, aller dans la liste de contacts et faites un filtre : "Deposit/sale" est True et "Assigned Carrier" n'est pas défini.
On peut dès lors moduler les quantités déposées et les quantités reçues.
Une fois que les quantités ont été encodées, les lignes peuvent être validées une par une ou via le bouton Validate List. De même, les manipulations suivantes pourront se faire en masse (via les boutons) ou ligne par ligne.
Après validation, on peut soit remettre les lignes en brouillon ("Back to draft"), soit générer les bons de commande ("Generate Sale Order"). On peut ensuite envoyer ces bons de commande par mail. Ces bons de commandes apparaitront dans la liste des bons de commande dans le menu "Commandes".
Générer les bons de commande a un impact sur le stock prévisionnel, ce qui permet d’avoir une vue sur les magazines disponibles.
Générer les factures
A ce stade il est possible également de générer les factures ("Generate Invoice"), de les valider (Validate Invoice) et de les envoyer par mail.
Au niveau du stock, l'étape de génération de la facture est également l'étape ou les magazines sont considérés comme livrés et donc quitte le stock.
Enfinn, le bouton “done” permet de clôturer le processus.