odoo-module-developer – skill Lập trình cho agent AI
Hướng dẫn chuyên sâu tạo module Odoo tùy chỉnh. Bao gồm __manifest__.py, kế thừa model, các mẫu ORM và thực hành tốt nhất về cấu trúc module.
Cài skill odoo-module-developer bằng một lệnh
Chọn công cụ bạn đang dùng, copy lệnh và dán vào terminal. Skill sẽ nằm trong thư mục skills của công cụ đó và sẵn sàng dùng ở phiên làm việc tiếp theo.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/odoo-module-developer-a596b.tgz | tar xz -C ~/.claude/skills
Gọi trong Claude Code: /odoo-module-developer – rồi mô tả công việc bạn muốn làm.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/odoo-module-developer-a596b.tgz | tar xz -C ~/.codex/skills
Gọi trong Codex: $odoo-module-developer – rồi mô tả công việc bạn muốn làm.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/odoo-module-developer-a596b.tgz | tar xz -C ~/.hermes/skills
Gọi trong Hermes Agent: /odoo-module-developer – rồi mô tả công việc bạn muốn làm.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/odoo-module-developer-a596b.tgz | tar xz -C ~/.deepcode/skills
Gọi trong DeepSeek: /odoo-module-developer – rồi mô tả công việc bạn muốn làm.
Nội dung SKILL.md
Nội dung SKILL.md gốc bằng tiếng Anh.
Odoo Module Developer
Overview
This skill transforms your AI into an expert Odoo custom module developer. It guides you through scaffolding new modules, defining models, setting up security, and following Odoo's coding conventions for both Community and Enterprise editions.
When to Use This Skill
- Starting a new custom Odoo module from scratch.
- Extending an existing Odoo model (e.g., adding fields to
sale.order). - Troubleshooting module loading errors or manifest issues.
- Implementing
onchange,compute, andconstraintmethods correctly.
How It Works
1. Activate: Mention @odoo-module-developer and describe the module you want to build.
2. Scaffold: Get the full folder structure with __manifest__.py, __init__.py, models, views, and security files.
3. Review: Paste existing code and get a review against Odoo best practices.
Examples
Example 1: Scaffold a New Module
Prompt: Create a module called "hospital_management" with a model for patients
Generated structure:
hospital_management/
├── __manifest__.py
├── __init__.py
├── models/
│ ├── __init__.py
│ └── hospital_patient.py
├── views/
│ └── hospital_patient_views.xml
├── security/
│ ├── ir.model.access.csv
│ └── security.xml
└── data/__manifest__.py:
{
'name': 'Hospital Management',
'version': '17.0.1.0.0',
'category': 'Healthcare',
'depends': ['base', 'mail'],
'data': [
'security/security.xml',
'security/ir.model.access.csv',
'views/hospital_patient_views.xml',
],
'installable': True,
'license': 'LGPL-3',
}models/hospital_patient.py:
from odoo import models, fields, api
class HospitalPatient(models.Model):
_name = 'hospital.patient'
_description = 'Hospital Patient'
_inherit = ['mail.thread', 'mail.activity.mixin']
name = fields.Char(string='Patient Name', required=True, tracking=True)
birth_date = fields.Date(string='Birth Date')
doctor_id = fields.Many2one('res.users', string='Assigned Doctor')
state = fields.Selection([
('draft', 'New'),
('confirmed', 'Confirmed'),
('done', 'Done'),
], default='draft', tracking=True)Best Practices
- ✅ Do: Always prefix your model
_namewith a namespace (e.g.,hospital.patient). - ✅ Do: Use
_inherit = ['mail.thread']to add chatter/logging automatically. - ✅ Do: Specify
versionin manifest as{odoo_version}.{major}.{minor}.{patch}. - ✅ Do: Set
'author'and'website'in__manifest__.pyso your module is identifiable in the Apps list. - ❌ Don't: Modify core Odoo model files directly — always use
_inherit. - ❌ Don't: Forget to add new models to
ir.model.access.csvor users will get access errors. - ❌ Don't: Use spaces or uppercase in folder names — Odoo requires snake_case module names.
Limitations
- Does not cover OWL JavaScript components or frontend widget development — use
@odoo-xml-views-builderfor view XML. - The manifest example targets Odoo 17; verify the exact version and supported module/view syntax. Older Odoo releases also use module manifests; do not infer a nonexistent manifest cutoff.
- Does not cover multi-company or multi-website configuration; those require additional model fields (
company_id,website_id). - Does not generate automated test files — use
@odoo-automated-testsfor that.
The displayed tree is a scaffold, not a complete installable module: supply imports, XML views, named groups, ACLs and record rules before claiming it works. Avoid default broad patient-data access; chatter/tracking can disclose sensitive values, so select fields and followers deliberately. Test installation, multi-record compute/constraints and unauthorized access in a disposable database, never through an unrequested production module upgrade.
Skill liên quan
- odoo-rpc-api – Chuyên gia về API JSON-RPC và XML-RPC bên ngoài của Odoo. Bao gồm xác thực, gọi model…
- odoo-shopify-integration – Kết nối Odoo với Shopify: đồng bộ sản phẩm, tồn kho, đơn hàng và khách hàng qua Shopify…
- odoo-woocommerce-bridge – Đồng bộ Odoo với WooCommerce: sản phẩm, tồn kho, đơn hàng và khách hàng qua WooCommerce…
- omp-delegate – Giao tác vụ lập trình cho Oh My Pi (`omp`) chỉ khi người dùng yêu cầu rõ ràng, trong khi…
- openapi-spec-generation – Tạo và duy trì đặc tả OpenAPI 3.1 từ mã nguồn, đặc tả thiết kế trước (design-first) và…
- openapi-spec-generator – Tạo đặc tả OpenAPI 3.x và Swagger 2.0 hoàn chỉnh, sẵn sàng cho production từ mô tả bằng…
- openclaw-github-repo-commander – Quy trình siêu cấp 7 bước để kiểm toán, dọn dẹp, review PR và phân tích đối thủ cho repo…
- opencode-delegate – Giao tác vụ lập trình cho OpenCode CLI chỉ khi người dùng yêu cầu rõ ràng, trong khi bộ…