voici le module Odoo prêt à installer + les appels JSON-RPC
Super — voici le module Odoo prêt à installer + les appels JSON-RPC pour le piloter depuis votre WebApp.
Téléchargement : partner_whatsapp_consent.zip
Contenu du module
partner_whatsapp_consent/ ├─ __manifest__.py # métadonnées du module ├─ __init__.py ├─ models/ │ └─ res_partner.py # champ Boolean whatsapp_consent ├─ views/ │ └─ res_partner_views.xml # injection du champ en vue form + tree └─ security/ └─ ir.model.access.csv # droits standard pour les utilisateurs Odoo
Ce que le module ajoute
- Un champ booléen whatsapp_consent sur res.partner (par défaut: False).
-
Le champ apparaît :
- dans la vue formulaire (à la suite du champ phone),
- dans la vue liste (colonne cochable).
Appels JSON-RPC (depuis votre client React)
1) Authentification
POST /web/session/authenticate
{ "jsonrpc": "2.0", "method": "call", "params": { "db": "NOM_DB", "login": "API_USER", "password": "API_PASSWORD" }, "id": 1 }
Conservez le cookie session_id.
2) Créer un contact avec consentement WhatsApp
POST /web/dataset/call_kw
{ "jsonrpc": "2.0", "method": "call", "params": { "model": "res.partner", "method": "create", "args": [{ "name": "Lina Andrianina", "email": "lina@exemple.com", "phone": "+261321234567", "whatsapp_consent": true }], "kwargs": {} }, "id": 2 }
3) Mettre à jour le consentement (write)
{ "jsonrpc": "2.0", "method": "call", "params": { "model": "res.partner", "method": "write", "args": [[45], { "whatsapp_consent": true }], "kwargs": {} }, "id": 3 }
4) Filtrer par consentement (search_read)
{ "jsonrpc": "2.0", "method": "call", "params": { "model": "res.partner", "method": "search_read", "args": [ [["whatsapp_consent","=",true]], ["id","name","email","phone","whatsapp_consent"] ], "kwargs": { "limit": 50, "order": "id desc" } }, "id": 4 }
Étapes d’installation
- Décompressez l’archive dans le dossier addons (ou un chemin d’addons custom).
- Redémarrez Odoo, Mettez à jour la liste des apps, puis installez Partner WhatsApp Consent.
- Ouvrez un contact → vous verrez la case Consentement WhatsApp.
un champ de date/trace du consentement (whatsapp_consent_date) + source (phone/web/WhatsApp),
C’est fait ✅ J’ai ajouté :
- whatsapp_consent_date (Datetime) – horodatée automatiquement à l’activation du consentement.
- whatsapp_consent_source (Selection: phone, web, whatsapp).
- Mise à jour des vues form (groupe “WhatsApp”) et list (colonnes supplémentaires).
Téléchargement : partner_whatsapp_consent_v2.zip
Rappels d’usage JSON-RPC
Créer/mettre à jour avec source + date (date facultative, auto si absente)
{ "jsonrpc": "2.0", "method": "call", "params": { "model": "res.partner", "method": "create", "args": [{ "name": "Lina Andrianina", "email": "lina@exemple.com", "phone": "+261321234567", "whatsapp_consent": true, "whatsapp_consent_source": "whatsapp" // "whatsapp_consent_date": "2025-09-17 15:45:00" // optionnel, sinon auto }], "kwargs": {} }, "id": 10 }
Mise à jour d’un contact existant
{ "jsonrpc": "2.0", "method": "call", "params": { "model": "res.partner", "method": "write", "args": [[45], { "whatsapp_consent": true, "whatsapp_consent_source": "phone" // "whatsapp_consent_date": "2025-09-17 16:02:00" // sinon auto si vide }], "kwargs": {} }, "id": 11 }
Filtrer les contacts consentants par source (ex. WhatsApp)
{ "jsonrpc": "2.0", "method": "call", "params": { "model": "res.partner", "method": "search_read", "args": [ [["whatsapp_consent","=",true], ["whatsapp_consent_source","=","whatsapp"]], ["id","name","email","phone","whatsapp_consent","whatsapp_consent_source","whatsapp_consent_date"] ], "kwargs": {"limit": 50, "order": "whatsapp_consent_date desc"} }, "id": 12 }
ou un webhook (server action) déclenché à l’activation du consentement ?
Les grandes histoires ont une personnalité. Envisagez de raconter une belle histoire qui donne de la personnalité. Écrire une histoire avec de la personnalité pour des clients potentiels aidera à établir un lien relationnel. Cela se traduit par de petites spécificités comme le choix des mots ou des phrases. Écrivez de votre point de vue, pas de l'expérience de quelqu'un d'autre.
Les grandes histoires sont pour tout le monde, même lorsqu'elles ne sont écrites que pour une seule personne. Si vous essayez d'écrire en pensant à un public large et général, votre histoire sonnera fausse et manquera d'émotion. Personne ne sera intéressé. Ecrire pour une personne en particulier signifie que si c'est authentique pour l'un, c'est authentique pour le reste.