Integrar Cargoffer con Odoo ERP
Busqueda objetivo: "integracion odoo bolsa de carga", "conectar odoo con api transporte"
Por que Odoo?
Odoo es el ERP open-source mas usado por PYMEs. La integracion permite sincronizar:
- Clientes y proveedores entre Odoo y Cargoffer
- Facturas de transporte generadas desde contratos
- Albaranes vinculados a documentos eCMR
- Productos con codigos HS para aduanas
Endpoints necesarios
bash
# Obtener contratos firmados
curl -X GET "https://api.pro.cargoffer.com/api/auction/contract/{serviceCode}" \
-H "Authorization: Bearer *** Crear registro en Odoo
# (via API XML-RPC de Odoo)Mapeo de datos
| Cargoffer | Odoo |
|---|---|
contract.serviceCode | account.move.ref |
contract.amount | account.move.amount_total |
contract.client.name | res.partner.name |
contract.date | account.move.invoice_date |
Automatizacion con Python
python
import requests
import xmlrpc.client
TOKEN = "tu_t...""
ODOO_URL = "https://tu-odoo.com"
ODOO_DB = "produccion"
ODOO_USER = "admin"
ODOO_PASSWORD = "password"
def sync_contract_to_odoo(contract):
# Conectar a Odoo
common = xmlrpc.client.ServerProxy(f"{ODOO_URL}/xmlrpc/2/common")
uid = common.authenticate(ODOO_DB, ODOO_USER, ODOO_PASSWORD, {})
models = xmlrpc.client.ServerProxy(f"{ODOO_URL}/xmlrpc/2/object")
# Crear factura en Odoo
invoice_id = models.execute_kw(ODOO_DB, uid, ODOO_PASSWORD,
"account.move", "create", [{
"move_type": "out_invoice",
"partner_id": find_partner(contract["client"]["cif"]),
"invoice_date": contract["date"],
"invoice_line_ids": [(0, 0, {
"name": f"Transporte {contract['serviceCode']}",
"quantity": 1,
"price_unit": contract["amount"]
})]
}])
return invoice_id