一键导入
odoo-sales
Odoo Sales operations — manage quotations, sales orders, order lines, and products.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Odoo Sales operations — manage quotations, sales orders, order lines, and products.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Odoo ERP integration for all 37 business modules. Entry point for Odoo operations — CRM, Sales, Inventory, Manufacturing, Purchase, Accounting, HR, Expenses, Contacts, Calendar, Discuss, Project, Timesheets, Time Off, Attendances, Recruitment, Fleet, Email Marketing, Events, Website, Link Tracker, Dashboards, POS, Delivery, Loyalty, Payments, SMS, Live Chat, Maintenance, Survey, Forum, eLearning, Planning, Restaurant, Certificate, and Data Recycle.
Cross-skill workflow: Odoo ERP health audit, infographic summary, PPTX report, and email delivery via Gmail.
Odoo Accounting operations — manage invoices, bills, journal entries, payments, and financial reports.
Odoo Attendances operations — manage employee check-ins, check-outs, and attendance records.
Odoo Calendar operations — manage events, meetings, and attendee tracking.
Odoo Certificate operations — manage certificates, templates, and certificate issuance.
| name | odoo-sales |
| description | Odoo Sales operations — manage quotations, sales orders, order lines, and products. |
| version | 1.0.0 |
| author | Hermes |
| license | MIT |
| platforms | ["linux","macos","windows"] |
| metadata | {"hermes":{"tags":["odoo","sales","quotations","orders","products"],"parent_skill":"odoo"}} |
Manage quotations, sales orders, order lines, and salable products.
Prerequisite: odoo skill must be set up. ODOO = python scripts/odoo_api.py.
ODOO sales list-quotations --limit 20
ODOO sales list-quotations --state sent
ODOO sales list-quotations --partner-id 3
ODOO sales list-orders --limit 20
ODOO sales list-orders --state done
ODOO sales get 12
ODOO sales create --partner-id 3
ODOO sales create --partner-id 3
ODOO model sale.order.line create '{"order_id": 8, "product_id": 32, "product_uom_qty": 10, "price_unit": 50.0}'
ODOO sales confirm 8
Scenario: Creating a sales order for a new customer with products that don't exist in the system.
Workflow:
ODOO sales products --limit 50ODOO model product.product create '{"name": "Product Name", "default_code": "CODE-001", "list_price": 50.0, "type": "consu"}'ODOO contacts list --limit 20 or create partner directlyODOO sales create --partner-id [partner_id]ODOO model sale.order.line create '{"order_id": [order_id], "product_id": [product_id], "product_uom_qty": [quantity], "price_unit": [unit_price]}'ODOO sales confirm [order_id]ODOO sales get [order_id] and ODOO sales order-lines [order_id]Specific to Basmati Rice Sales: When creating sales orders for rice products, use this exact pattern:
ODOO model sale.order.line create '[{"order_id": [order_id], "product_id": 1, "product_uom_qty": [quantity], "price_unit": 75.0}]'For consumable products (type="consu"):
{
"name": "Product Name",
"default_code": "CODE-001",
"list_price": 50.0,
"type": "consu"
}
For services (type="service"):
{
"name": "Service Name",
"default_code": "SVC-001",
"list_price": 0.0,
"type": "service"
}
{
"name": "Customer Name",
"email": "customer@example.com"
}
Scenario: Creating a sales order for a new customer with products that don't exist in the system.
Workflow:
ODOO sales products --limit 50ODOO model product.product create '{"name": "Product Name", "default_code": "CODE-001", "list_price": 50.0, "type": "consu"}'ODOO contacts list --limit 20 or create partner directlyODOO sales create --partner-id [partner_id]ODOO model sale.order.line create '[{"order_id": [order_id], "product_id": [product_id], "product_uom_qty": [quantity], "price_unit": [unit_price]}]'ODOO sales confirm [order_id]ODOO sales get [order_id] and ODOO sales order-lines [order_id]--name "Name" without complex arguments. When API arguments fail, use raw model operations.account.move.line model is often necessary before validation.ODOO model product.product search to verify product availability.[ID] for calendar events.
Workflow:\n1. Check if product exists: ODOO sales products --limit 50\n2. Create product if missing: ODOO model product.product create '{"name": "Product Name", "default_code": "CODE-001", "list_price": 50.0, "type": "consu"}'\n3. Check if partner exists: ODOO contacts list --limit 20 or create partner directly\n4. Create sales order: ODOO sales create --partner-id [partner_id]\n5. Add order line: ODOO model sale.order.line create '{"order_id": [order_id], "product_id": [product_id], "product_uom_qty": [quantity], "price_unit": [unit_price]}'\n6. Confirm order: ODOO sales confirm [order_id]\n7. Verify: ODOO sales get [order_id] and ODOO sales order-lines [order_id]Specific to Basmati Rice Sales: When creating sales orders for rice products, use this exact pattern:
ODOO model sale.order.line create '[{"order_id": [order_id], "product_id": 1, "product_uom_qty": [quantity], "price_unit": 75.0}]'For consumable products (type="consu"):\njson\\n{\\n \\\"name\\\": \\\"Product Name\\\",\\n \\\"default_code\\\": \\\"CODE-001\\\",\\n \\\"list_price\\\": 50.0,\\n \\\"type\\\": \\\"consu\\\"\\n}\\n\n\nFor services (type="service"):\njson\\n{\\n \\\"name\\\": \\\"Service Name\\\",\\n \\\"default_code\\\": \\\"SVC-001\\\",\\n \\\"list_price\\\": 0.0,\\n \\\"type\\\": \\\"service\\\"\\n}\\n\n\n### Partner Creation Pattern\n\njson\\n{\\n \\\"name\\\": \\\"Customer Name\\\",\\n \\\"email\\\": \\\"customer@example.com\\\"\\n}\\n
Specific to Basmati Rice Sales: When creating sales orders for rice products, use this exact pattern:
ODOO model sale.order.line create '[{"order_id": [order_id], "product_id": 1, "product_uom_qty": [quantity], "price_unit": 75.0}]'For consumable products (type="consu"):\njson\\n{\\n \\\"name\\\": \\\"Product Name\\\",\\n \\\"default_code\\\": \\\"CODE-001\\\",\\n \\\"list_price\\\": 50.0,\\n \\\"type\\\": \\\"consu\\\"\\n}\\n\n\nFor services (type="service"):\njson\\n{\\n \\\"name\\\": \\\"Service Name\\\",\\n \\\"default_code\\\": \\\"SVC-001\\\",\\n \\\"list_price\\\": 0.0,\\n \\\"type\\\": \\\"service\\\"\\n}\\n\n\n### Partner Creation Pattern\n\njson\\n{\\n \\\"name\\\": \\\"Customer Name\\\",\\n \\\"email\\\": \\\"customer@example.com\\\"\\n}\\n
\nODOO accounting create-invoice --partner-id 23\nODOO model account.move.line create '{\"move_id\": 11, \"product_id\": 32, \"quantity\": 10, \"price_unit\": 50.0}'\nODOO accounting validate 11\n
ODOO sales confirm 12
ODOO sales cancel 12
ODOO sales set-state 12 sent
ODOO sales order-lines 12
ODOO sales products --limit 30
ODOO sales statistics
For detailed step-by-step examples of complete sales order creation, see references/sales-order-creation-workflow.md.
{
$ODOO_DB: true,
"result": [
{
"id": 12,
"name": "S00012",
"partner_id": [3, "Acme Corp"],
"date_order": "2026-05-11",
"state": "draft",
"amount_total": 1250.0,
"amount_untaxed": 1000.0,
"currency_id": [1, "USD"],
"user_id": [2, "$ODOO_USER"],
"invoice_status": "to invoice",
"create_date": "2026-05-11 10:00:00"
}
]
}
{$ODOO_DB: true, "result": true}
{
$ODOO_DB: true,
"result": {"draft": 5, "sent": 2, "sale": 15, "done": 3}
}
| Model | Use |
|---|---|
sale.order | Quotations and sales orders |
sale.order.line | Individual order lines |
product.template | Product templates (sale_$ODOO_DB=True) |
draft → sent → sale → done
↘ cancel
done.ODOO model sale.order search --domain '[["amount_total",">",5000]]'# List draft quotations
curl -s -X POST $ODOO_URL/jsonrpc -H "Content-Type: application/json" -d "{\"jsonrpc\":\"2.0\",\"method\":\"call\",\"params\":{\"service\":\"object\",\"method\":\"execute_kw\",\"args\":[\"$ODOO_DB\",2,\"$ODOO_PASS\",\"sale.order\",\"search_read\",[[\"state\",\"=\",\"draft\"]],{\"limit\":10,\"fields\":[\"name\",\"partner_id\",\"amount_total\",\"state\"]}]},\"id\":2}"
# Create quotation
curl -s -X POST $ODOO_URL/jsonrpc -H "Content-Type: application/json" -d "{\"jsonrpc\":\"2.0\",\"method\":\"call\",\"params\":{\"service\":\"object\",\"method\":\"execute_kw\",\"args\":[\"$ODOO_DB\",2,\"$ODOO_PASS\",\"sale.order\",\"create\",[{\"partner_id\":3}]]},\"id\":2}"
# Confirm quotation
curl -s -X POST $ODOO_URL/jsonrpc -H "Content-Type: application/json" -d "{\"jsonrpc\":\"2.0\",\"method\":\"call\",\"params\":{\"service\":\"object\",\"method\":\"execute_kw\",\"args\":[\"$ODOO_DB\",2,\"$ODOO_PASS\",\"sale.order\",\"action_confirm\",[1]]},\"id\":2}"