Odoo connexion for TiBillet environment https://www.tibillet.re https://github.com/TiBillet
- XMLRPX http API
- Api Check Version
- Api Check Login
- API Création de fiche contact Odoo
- Nouvelle adhésion TiBillet -> Odoo
- Utilise le contact existant avec même email
- Création d'un nouvel article d'adhésion s'il n'existe pas
- Gestion des périodes d'adhésion ( pour l'instant : 365j )
- Facturation en brouillon de l'adhésion
- Validation de la facture
- Paiement de la facture
- Selection du moyen de paiement ( Doit être account.journal. A indiquer dans la configuration de l'instance cashless )
- Création des moyens de paiements manquant ( account.journal )
- Connexion avec le module POS ( point de vente )
- Ajout de chaque article vendu dans TiBillvet -> Odoo
- Gestion de la monnaie dans compte et journaux Odoo
- Ajout de la monnaie cashless dans les POS
- Interfaçage des boitiers lecteurs NFC TiBillet dans POS Odoo
- Accepter les monnaies cashless dans POS Odoo
Postman documentation : https://documenter.getpostman.com/view/17519122/UVypzHCa
POST http://localhost:8069/tibillet-api/common/version
{
"params": {}
}
{
"jsonrpc": "2.0",
"id": null,
"result": {
"server_version": "15.0-20220307",
"server_version_info": [
15,
0,
0,
"final",
0,
""
],
"server_serie": "15.0",
"protocol_version": 1,
"random": "0.5241139307469328"
}
}
POST http://localhost:8069/tibillet-api/xmlrpc/login
Attribute | Type | Required | Description |
---|---|---|---|
db |
string | yes | Odoo server DB name |
login |
string | yes | Odoo User |
api_key |
string | yes | Odoo User ApiKey |
{
"params": {
"db": "{{db}}",
"login": "{{login}}",
"apikey": "{{api_key}}"
}
}
{
"jsonrpc": "2.0",
"id": null,
"result": {
"random": "0.7985724403682478",
"user_uid": 2,
"authentification": true,
"permissions": {
"show_full_accounting_features": 25,
"manager": 31
}
}
}
POST http://localhost:8069/tibillet-api/xmlrpc/new_membership/
Attribute | Type | Required | Description |
---|---|---|---|
db |
string | yes | Odoo server DB name |
login |
string | yes | Odoo User |
api_key |
string | yes | Odoo User ApiKey |
create_invoice |
bool | no | Crée une facture en brouillon |
set_payment |
bool | no | Valide la facture et créé un paiement |
membre:name |
string | yes | Nom / Prenom |
membre:email |
string | yes | Si email existe déja, utilise le contact existant. |
adhesion:product_name |
string | yes | Nom de l'adhésion |
adhesion:category |
string | yes | Tag odoo "Catégorie d'adhésion" visible sur la fiche de l'adhérant. |
adhesion:price_unit |
string | yes | Tarif de l'adhésion. |
adhesion:payment_method |
string | yes | Type de paiement. str : account.journal |
{
"params": {
"db": "{{db}}",
"login": "{{login}}",
"apikey": "{{api_key}}",
"create_invoice": true,
"set_payment": true,
"membre": {
"name": "{{$randomFirstName}} {{$randomLastName}}",
"email": "{{$randomEmail}}"
},
"adhesion": {
"product_name": "Adhésion",
"category": "Adhérant",
"price_unit": 52,
"payment_method": "Espèces"
}
}
}
{
"jsonrpc": "2.0",
"id": null,
"result": {
"random": "0.5980815715295654",
"name": "Eldora Hansen",
"email": "[email protected]",
"categorie_saleable_id": 2,
"membership_category_id": 2,
"membership_product_id": 1,
"invoice_state": "posted",
"payment_state": "paid",
"responsable": 2,
"created": true,
"membre_db": 145
}
}
Need :
- Linux
- Odoo V15
- docker
- docker-compose V3
- Traefik ( for reverse-proxy )
git clone --recurse-submodules [email protected]:TiBillet/TiBillet-Odoo-module.git
Copier le fichier docker/env_example
vers docker/.env
.
Modifiez le fichier .env
pour changer les variables.
Lancez docker-compose config
pour vérifier que tout est bon.
Créez le réseau comme indiqué si besoin.
Lancez les conteneurs : docker-compose up -d
Aller sur http://localhost:8069
et suivez les instructions.
Notez bien le mot de passe master, il ne vous sera plus présenté nulle part.
Notez aussi le nom que vous avez donné à la base de donnée odoo.
Copiez et/ou montez ces dossiers dans le dossier addon de votre installation.
- extra-addons/tibillet:/mnt/extra-addons/tibillet
- submodule/vertical-association/membership_extension:/mnt/extra-addons/membership_extension
- submodule/vertical-association/membership_variable_period:/mnt/extra-addons/membership_variable_period
Allez sur Odoo / Application. Retirez le tag "application" dans la barre de recherche. Tapez "tibillet" et installez. Cela va vérifier si les applications suivantes sont installées et les installer si besoin.
# __manifest__.py
'depends': [
'base',
'account',
'contacts',
'membership',
'membership_extension',
'membership_variable_period',
],
https://www.odoo.com/documentation/15.0/developer/misc/api/odoo.html#api-keys
Dans l'interface admin -> Configuration Générale -> Onglet ODOO. Renseignez les champs obligatoires.
Vous pouvez choisir de ne pas activer l'envoie vers Odoo, de ne créer que des factures en brouillon, ou des factures validées et payées.
Last log odoo:
Vous montre la validité de la dernière action.
curl --location --request POST 'http://localhost:8069/tibillet-api/common/version' \
-H "Content-Type: application/json" \
--data-raw '{
"params": {
}
}'
Example response OK :
{
"jsonrpc": "2.0",
"id": null,
"result": {
"server_version": "15.0-20220629",
"server_version_info": [
15,
0,
0,
"final",
0,
""
],
"server_serie": "15.0",
"protocol_version": 1,
"random": "0.6265766626539964"
}
}
curl --location --request POST 'http://localhost:8069/tibillet-api/xmlrpc/login' \
-H "Content-Type: application/json" \
--data-raw '{
"params": {
"db": "${ODOO_DATABASE}",
"login": "${LOGIN}>",
"apikey": "${API_KEY}"
}
}'
Example response OK :
{
"jsonrpc": "2.0",
"id": null,
"result": {
"random": "0.4738530572020506",
"user_uid": 9,
"authentification": true,
"permissions": {
"show_full_accounting_features": 28,
"manager": 62
}
}
}
Si None dans les permissions :
"permissions": {
"show_full_accounting_features": None,
"manager": none
}
Rajoutez les droits d'utilisateur dans Odoo : Paramètres -> utilisateurs et sociétés -> Groupes
- Technique / Montrer les fonctions de comptabilité complètes
- Adhésion / Responsable
# edit docker-compose and commit the command. Choose :
command: sleep 30d
# Launch :
docker compose up -d
# Go inside the container and install the dev tools
docker exec -ti odoo_web bash
python3 -m pip install ipython ipdb
# launch odoo serveur
bash entrypoint.sh --dev reload
# set in your python code a breakpoint with :
import ipdb; ipdb.set_trace()
# enjoy ipdb !
# see bashrc for detail
docker exec -ti odoo_web reload_asset <ODOO_DB_NAME>
You can also simply prevent Odoo from using the filestore
by setting the system parameterir_attachment.location to
db-storage in Settings->Parameters->System Parameters
.
(requires technical features).
and restart :
docker-commpose restart
Jonas TURBEAUX for TiBillet ( https://www.tibillet.re )
- La Raffinerie
- Communnecter.org
- JetBrain
https://jb.gg/OpenSourceSupport
- @ibuioli Ignacio Buioli for his XMLRPC API example for inspiration : https://github.com/codize-app/odoo_api