Pular para o conteúdo
Skillpedia
APIs e servidores (backend)48 mil · #3724

odoo-edi-connector

Faz seu agente conectar o Odoo com outras empresas usando EDI. Ele automatiza o envio e recebimento de documentos importantes.

O que ela faz

Este guia ajuda você a configurar a troca automática de documentos comerciais (como pedidos e faturas) entre sua empresa e parceiros, usando um padrão chamado EDI. Ele ensina como conectar isso ao sistema Odoo.

Quando usar

  • ✓Quando um parceiro de loja exige que você use EDI para fazer negócios.
  • ✓Para enviar automaticamente avisos de envio quando os produtos saem.
  • ✓Para gerar faturas automaticamente a partir de entregas confirmadas no Odoo.

Exemplo do que pedir para a IA

“Me ajude a configurar o EDI para receber pedidos de compra do parceiro X no Odoo.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/odoo-edi-connector/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/odoo-edi-connector/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Você me diz qual tipo de documento EDI quer usar e com qual parceiro. Eu te dou as instruções para conectar os campos do EDI com os campos do Odoo e o código para automatizar o processo.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill odoo-edi-connector

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/odoo-edi-connector/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Conector Odoo EDI

Visão Geral

Troca Eletrônica de Dados (EDI) é o padrão para troca automatizada de documentos B2B — pedidos de compra, faturas, ASNs (Avisos de Embarque Antecipado). Esta habilidade guia você pelo mapeamento de transações EDI (ANSI X12 ou EDIFACT) para objetos de negócio Odoo, configuração de parceiros comerciais e automação de fluxos de documentos de entrada/saída.

Quando Usar Esta Habilidade

  • Um parceiro varejista exige o EDI 850 (Pedidos de Compra) para fazer negócios com você.
  • Você precisa enviar o EDI 856 (ASN) quando as mercadorias forem enviadas.
  • Automação da geração do EDI 810 (Fatura) a partir de entregas confirmadas no Odoo.
  • Mapeamento de campos EDI para campos Odoo para um novo parceiro comercial.

Como Funciona

  1. Ativar: Mencione @odoo-edi-connector e especifique o conjunto de transações EDI e o parceiro comercial.
  2. Mapear: Receba uma tabela completa de mapeamento de campos entre segmentos EDI e campos Odoo.
  3. Automatizar: Obtenha código Python para analisar arquivos EDI de entrada e criar registros Odoo.

Mapeamento de Objetos EDI ↔ Odoo

Transação EDI Objeto Odoo
850 Pedido de Compra sale.order (pedido de compra de cliente de entrada)
855 Confirmação de Pedido E-mail de confirmação / Confirmação de Pedido de Venda
856 ASN (Aviso de Embarque Antecipado) stock.picking (ordem de entrega)
810 Fatura account.move (fatura de cliente)
846 Consulta de Inventário product.product níveis de estoque
997 Confirmação Funcional Confirmação de recebimento automatizada

Exemplos

Exemplo 1: Analisar EDI 850 e Criar Pedido de Venda Odoo (Python)

from pyx12 import x12file  # pip install pyx12
from datetime import datetime

import xmlrpc.client
import os

odoo_url = os.getenv("ODOO_URL")
db = os.getenv("ODOO_DB")
pwd = os.getenv("ODOO_API_KEY") 
uid = int(os.getenv("ODOO_UID", "2"))

models = xmlrpc.client.ServerProxy(f"{odoo_url}/xmlrpc/2/object")

def process_850(edi_file_path):
    """Parse X12 850 Purchase Order and create Odoo Sale Order"""
    with x12file.X12File(edi_file_path) as f:
        for transaction in f.get_transaction_sets():
            # Extract header info (BEG segment)                     
            po_number = transaction['BEG'][3]    # Purchase Order Number                                                    
            po_date   = transaction['BEG'][5]    # Purchase Order Date 

            # IDEMPOTENCY CHECK: Verify PO doesn't already exist in Odoo
            existing = models.execute_kw(db, uid, pwd, 'sale.order', 'search', [
                [['client_order_ref', '=', po_number]]
            ])
            if existing:
                print(f"Skipping: PO {po_number} already exists.")
                continue 

            # Extract partner (N1 segment — Buyer)


                        # Extract partner (N1 segment — Buyer)                  
            partner_name = transaction.get_segment('N1')[2] if transaction.get_segment('N1') else "Unknown"                                                                             
            
            # Find partner in Odoo                                  
            partner = models.execute_kw(db, uid, pwd, 'res.partner', 'search',                                                  
                                [[['name', 'ilike', partner_name]]])                
            
            if not partner:
                print(f"Error: Partner '{partner_name}' not found. Skipping transaction.")
                continue
                
            partner_id = partner[0]

            # Extract line items (PO1 segments)
            order_lines = []
            for po1 in transaction.get_segments('PO1'):
                sku     = po1[7]    # Product ID
                qty     = float(po1[2])
                price   = float(po1[4])

                product = models.execute_kw(db, uid, pwd, 'product.product', 'search',
                    [[['default_code', '=', sku]]])
                if product:
                    order_lines.append((0, 0, {
                        'product_id': product[0],
                        'product_uom_qty': qty,
                        'price_unit': price,
                    }))

            # Create Sale Order
            if partner_id and order_lines:
                models.execute_kw(db, uid, pwd, 'sale.order', 'create', [{
                    'partner_id': partner_id,
                    'client_order_ref': po_number,
                    'order_line': order_lines,
                }])

Exemplo 2: Enviar Confirmação EDI 997


…
Perguntas frequentes

O que é EDI?

EDI (Electronic Data Interchange) é um jeito padronizado de trocar documentos comerciais eletronicamente entre empresas, como pedidos de compra e faturas.

O que são X12 e EDIFACT?

São os dois padrões mais comuns de EDI usados no mundo para organizar as informações nos documentos.

O que é um 'trading partner'?

É a outra empresa com a qual você está trocando documentos via EDI.

Detalhes

Descrição original do autor

Guide for implementing EDI (Electronic Data Interchange) with Odoo: X12, EDIFACT document mapping, partner onboarding, and automated order processing.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3724
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas