Nouvelle coopérative dans Fermente - partie info
Création de l'instance Odoo
Au plus tôt
1) choix du nom pour leur odoo
ex. erp.coopilote.com, mon-petit-odoo-prefere.coopilote.com, je-kiffe-odoo.coopilote.com, etc...
2) Ajout dans leur DNS `coopilote.com`:
je-kiffe-odoo IN CNAME cname-coopilote-erp.grap.coop.
je-kiffe-odoo-preproduction IN CNAME cname-coopilote-erp-preproduction.grap.coop.
je-kiffe-odoo-test IN CNAME cname-coopilote-erp-test.grap.coop.
3) Ajouter dans le DNS de `grap.coop`
cname-coopilote-erp 300 IN A 51.15.24.177
cname-coopilote-erp-preproduction 3600 IN A 51.254.44.22
cname-coopilote-erp-test 3600 IN A 94.23.17.188
4) Déployer leur environnement
ansible-playbook odoo-vroum-vroum
Déploiement Odoo
Pour serveur-test
Config
Dans ansible-grap/config/odoo/cfg_odoo__grp-test-03.yml
xxxxx = coopalim par ex
grp-production-08 = dépend du serveur de prod futur
xY → s’assurer que les ports sont pas pris → x a incrémenter et Y dernier chiffre de version ?
-
name: odoo16_xxxxx
odoo_version: 16
odoo_python_version: python3.10
backup_folder: /backup/grp-production-08/
odoo_restore_and_update: false
odoo_code_url: https://gitlab.com/grap-rhone-alpes/grap-odoo-env.git
odoo_database_prefix: xxxxx
odoo_url: odoo-test.xxxxx.com
odoo_xmlrpc_port: 80xY
odoo_longpolling_port: 81xY
odoo_limit_memory_hard: 1610612736 # 1.5 GB
odoo_limit_memory_soft: 1073741824 # 1.0 GB
odoo_limit_request: 8192
odoo_limit_time_cpu: 3600 # 1 hour
odoo_limit_time_real: 7200 # 2 hours
odoo_workers: 4
odoo_max_cron_threads: 1
eshops: []
odoo_main_folder: /opt/odoo16_xxxxx/
odoo_filestore_folder: /opt/odoo16_xxxxx/filestore/
odoo_code_folder: /opt/odoo16_xxxxx/code/
odoo_log_folder: /var/log/odoo16_xxxxx/
Dans hosts.ini : dé-commenter le serveur de test
Préinstallation
Dans odoo_envs/grap-odoo-env-16.0 Créer une branche à partir de la dernière branche en prod’
git checkout –b 16.0-COOPALIM-First-install
Git push origin 16.0-COOPALIM-First-install
time ansible-playbook --limit=grp-test-03@grap.coop ./playbook/p_odoo_install.yml --extra-vars "{'odoo_settings': [{'name': 'odoo16_xxxxx', 'branch': '16.0-COOPALIM-First-install'},]}"
Création de la base
Sur le serveur de test
cd /opt/odoo16_coopalim/code
sudo su odoo16_coopalim -c './env/bin/click-odoo-initdb -n coopalim_test_2026_04_09 --no-demo --no-cache --config ./odoo.cfg'
Si on s’est pas merdé, on doit avoir un beau Odoo neuf sur odoo-test.xxxx.com. Connexion avec admin / admin
Aller extraire les modules installés
Sur instance de la même version, extraire la liste des modules installés.
Trafiquer avec Calc et CONCAT pour en faire une liste avec des guillemets et virgules
Dans grap-odoo-env-16.0/scripts/
Soit créer soit rajouter dans le script de la branche qui sera choisie
import tools
_logger = tools._logger
@tools.restrict(databases=["xxxxx"])
def coopalim_first_install(env):
tools.install_modules(
env,
[
# -----------------------------------
# Export MACHE PRE-PROD 09 avril 2026
# -----------------------------------
"sale_management",
"account",
liste à mettre
"phone_validation"
],
)
def main(env):
tools.update_module_list(env)
# COOPALIM FIRST INSTALL
coopalim_first_install(env)
tools.install_modules(
env,
[
# -----------------------------
# Placeholder for Quentin
# -----------------------------
# Placeholder for Sylvain
],
)
tools.uninstall_modules(
env,
[
# -----------------------------
# Placeholder for Quentin
# -----------------------------
# Placeholder for Sylvain
],
)
tools.update_translations(env)
Pousser cette modif sur 16.0-COOPALIM-First-install
git add -A
git commit –m « add all modules first install »
git push origin 16.0-COOPALIM-First-install
Puis lance
time ansible-playbook --limit=grp-test-03@grap.coop ./playbook/p_odoo_update_all.yml --extra-vars "{'odoo_settings': [{'name': 'odoo16_coopalim', 'branch': '16.0-COOPALIM-First-install'},]}"
TODO : rajouter les modifs dans les restaurations quotidienne
Pour serveur de pre-prod
Même process, sauf que la branche est déjà crée avec le bon script
INSTALL DE BASE
time ansible-playbook --limit=grp-preproduction-01@grap.coop ./playbook/p_odoo_install.yml --extra-vars "{'odoo_settings': [{'name': 'odoo16_coopalim', 'branch': '16.0-COOPALIM-First-install'},]}"
INSTALL BD
sudo su odoo16_coopalim -c './env/bin/click-odoo-initdb -n coopalim_preprod_2026_04_13 --no-demo --no-cache --config ./odoo.cfg'
INSTALL MODULES
time ansible-playbook --limit=grp-preproduction-01@grap.coop ./playbook/p_odoo_update_all.yml --extra-vars "{'odoo_settings': [{'name': 'odoo16_coopalim', 'branch': '16.0-COOPALIM-First-install'},]}"
Pour serveur de prod
Même process, sauf que la branche est déjà crée avec le bon script
INSTALL DE BASE
# Sur ordi local
time ansible-playbook --limit=grp-production-08@grap.coop ./playbook/p_odoo_install.yml --extra-vars "{'odoo_settings': [{'name': 'odoo16_coopalim', 'branch': '16.0-COOPALIM-First-install'},]}"
INSTALL BD
# Sur serveur
cd /opt/odoo16_coopalim/code
sudo su odoo16_coopalim -c './env/bin/click-odoo-initdb -n coopalim_production --no-demo --no-cache --config ./odoo.cfg'
INSTALL MODULES
# Sur Ordii local
time ansible-playbook --limit=grp-production-08@grap.coop ./playbook/p_odoo_update_all.yml --extra-vars "{'odoo_settings': [{'name': 'odoo16_coopalim', 'branch': '16.0-COOPALIM-First-install'},]}"
Rajouter sur https://supervision.grap.coop
Le nom de domaine et les URLS à checker
Configurations sur Odoo Prod
- Créer les rôles et 1ers utilisateur.ices
- Créer All et la société CAE (type Grap SCIC SA)
- Créer les (principaux) Labels / organisations certificatrices (si connues)
NB : les conditions de paiement, le référenciel département/région/pays sont créés directement à l'initialisation de l'instance
- Dans Paramètres > Configuration réduite > lignes de configuration, préparer la configuration réduite (prendre pour modèle une autre coop), exporter ça :
et importer le fichier obtenu dans la nouvelle instance (Paramètres > Configuration réduite > Lignes de configuration, aller sur)
- Créer les Catégories d’articles par import => vérifier si c'est ok pour elleux de prendre le même référentiel que les autres coop : ça a l'avantage de permettre des comparaison entre coop, des stats consolidées. + voir s’ils veulent réserver certaines catégories à des groupes d'utilisateur.ices (comptables et admin 1er niveau).
- Configurer les actions serveur et éditions en lot présentes chez Grap
- Un article acompte mutualisé ?
Infos à demander à la nouvelle coop
Au service compta
- Le plan comptable général France => donner à voir, et expliquer les personnalisations possibles
- Nos journaux type (cf choix des codes VT ou VTE pour vente, etc.)
- Les catégories de produits
- Les utilisations internes
Pour qu'iels donnent leurs propres codes et comptes (ex. Mache exprime ses comptes comptables avec 8 chiffres, pas Grap) + éventuelles monnaies locales.
Si le logiciel comptable n'est ni EBP, ni Sage, ni Louty, demander un exemple de fichier d'import comptable pour que l'on créé un nouveau modèle d'export depuis Odoo.
Au / à la super-utilisateur.ice
- Logo, adresse du siège, site internet, n° tel, n° TVA intracom, SIRET, APE
- Listes des personnes qui travaillent dans l'équipe support, avec photos, mails pros, tel pros, poste, ...
- Liste des organisations certificatrices
Réunions
Première réunion (visio)
- Présentation des rôles de chacun·e (quel·le interlocturice)
- Point sur nos instances de décision : Copil info / instance Fermente
- Contexte du moment pour le pôle info (migrations, projets, essaimage...) / disponibilité du pôle info (volume d'heures, dates...)
- Expression des besoins de chacun.e
- Services en plus d'Odoo : Meshcentral, la librairie
- Questions / réserves sur Odoo ?
- Timing de démarrage d'actis, volumétrie
- Super utilisateur.ice ou pas ? Comment on va fonctionner
- quelques stats pour se projeter :
|
- Parler du devis, expliciter
- Rétro planning et étapes concrètes :
- demander le nom pour leur Odoo
- demander d'ajouter dans leur dns
je-kiffe-odoo IN CNAME cname-coopilote-erp.grap.coop.
je-kiffe-odoo-preproduction IN CNAME cname-coopilote-erp-preproduction.grap.coop.
je-kiffe-odoo-test IN CNAME cname-coopilote-erp-test.grap.coop.
Visite / démo
A prévoir pour donner à voir Odoo, répondre aux questions.
Suite à la visite
Exemple de répartition :
|
Quoi |
Qui |
Échéance à valider ensemble |
|
Organiser 1h de visio sur la e-boutique pour les actis intéressées |
Charlotte |
dans les prochaines semaines |
|
Acheter le nom de domaine et donner les infos DNS à Quentin pour créer votre instance Odoo |
Charlotte |
quand tu peux |
|
Nous envoyer une liste des activités qui basculent sur Odoo + un planning de démarrage sur Odoo |
Charlotte |
dans les prochaines semaines |
|
Création de l'export de Odoo vers Louty pour la compta |
votre pôle compta fourni un modèle-type d'import |
objectif : avant le démarrage de l'épicerie (fin juin-début juillet) |
|
Prévoir une réunion de calage sur ce que fait le pôle info de Grap / ce que fait Charlotte et la compta de Coopilote. Imaginer nos échanges, comment on travaille ensemble, comment tu peux monter en compétence sur le support en tant que super-utilisatrice. |
Quentin, Charlotte et Sandie |
avant le démarrage de l'épicerie et avant congé pat : début juin |
|
Ta 1ère partie de formation Odoo :
Prévoir une immersion dans une épicerie et une acti de transfo de Grap ? |
Charlotte et Sandie |
1 mois 1/2 avant le démarrage de la 1ère activité sur Odoo |
|
La formation pour Sergio et Aurore sur Odoo |
Charlotte, Sandie, Sergio et Aurore |
1 mois avant le démarrage sur Odoo |
|
Démarrage effectif sur Odoo de Sergio et Aurore :
|
Charlotte, Sergio et Aurore |
jour J |
|
Formation des comptables Coopilote sur Odoo (où trouver les infos / où exporter) |
service compta Coopilote + 1 comptable et 1 informaticien.ne de Grap ? |
Avant les 1ers exports comptables |
+ penser à créer une instance Meshcentral et leur montrer comment référencer les PC de la coop
+ faire rejoindre le ou la super-utilisateur.ice notre framateam Fermente
Démarrage de la 1ère activité
Si préexistante
- Prévoir l'inventaire la veille du démarrage sur Odoo
- Voir la partie matériel => conversion sur Ubuntu (attention si l'ancien logiciel est sur Windows, on pourrait vouloir conserver ses données un certain temps...), achat de matériel lorsque non compatible
Toute activité
- Les modèles d'étiquettes
- La fiche sur le matos
- Donner le modèle de fichier d'import
En binôme avec le ou la super-utilisateur.ice
- Création de la société dans Odoo sur la base d'infos demandées
- Intégration des fichiers d'import de clients, fournisseurs, produits
- Préparation du matériel de caisse (nouvelle imprimante ?) - intervention sur un PC sous Ubuntu pour prévoir la liaison du matériel de caisse avec Odoo
Une fois le Odoo en place, suite à la formation
- Personnalisation d'Odoo : préparation du point de vente, impression des étiquettes
- journée de démarrage sur Odoo => avec un.e super-utilisateur.ice ou membre pôle info sur place