catalog/repos/6missedcalls--erpnext-skill.md

222 lines
6.4 KiB
Markdown
Raw Normal View History

2026-04-06 15:47:33 +08:00
# ERPNext开发技能包
2026-04-06 19:01:37 +08:00
`ERPNext` `Frappe` `Claude Code` `开发工具` `ERP`
2026-04-06 15:47:33 +08:00
<div align="center">
2026-04-06 19:01:37 +08:00
# ERPNext / Frappe 开发者技能包
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
**面向 Claude Code 的 Frappe 框架与 ERPNext v15 开发综合参考手册。**
2026-04-06 15:47:33 +08:00
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![Version](https://img.shields.io/badge/version-1.0.0-green.svg)](#)
[![Claude Code](https://img.shields.io/badge/Claude_Code-Skill-7c3aed.svg)](#)
[![skills.sh](https://img.shields.io/badge/skills.sh-install-orange.svg)](https://skills.sh/6missedcalls/erpnext-skill)
2026-04-06 19:01:37 +08:00
无需离开编辑器,即可构建功能完整的 ERPNext 应用。
Claude Code 可即时访问所有 Frappe API、DocType 模式、
控制器钩子和模块参考,用于脚手架搭建、扩展和
调试自定义 ERPNext 应用。
2026-04-06 15:47:33 +08:00
</div>
---
2026-04-06 19:01:37 +08:00
## 功能特性
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
### 框架 API 覆盖范围
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
| API 层面 | 内容说明 |
2026-04-06 15:47:33 +08:00
|-------------|-------------|
2026-04-06 19:01:37 +08:00
| **文档 API** | CRUD 操作、命名、权限、工作流转换 |
| **数据库 API** | 查询、事务、批量操作、直接 SQL |
| **控制器** | 生命周期钩子、验证、提交、取消 |
| **钩子** | 应用配置、计划任务、文档事件、覆盖 |
| **REST API** | 资源端点、自定义方法、身份认证 |
| **表单脚本** | 客户端 JS、字段事件、对话框、路由 |
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
### ERPNext 模块参考
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
| 领域 | 模块 |
2026-04-06 15:47:33 +08:00
|--------|---------|
2026-04-06 19:01:37 +08:00
| **财务** | 会计、资产 |
| **供应链** | 库存、采购、销售、制造 |
| **人员** | 人力资源与薪资 |
| **客户面** | CRM、支持、POS |
| **运营** | 项目、集成、设置、定制 |
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
> 每个模块参考均包含 DocType 关系、字段结构、
> 常见工作流,以及针对 ERPNext v15 的即用代码示例。
2026-04-06 15:47:33 +08:00
---
2026-04-06 19:01:37 +08:00
## 安装
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
### 通过 [skills.sh](https://skills.sh) 一键安装
2026-04-06 15:47:33 +08:00
```bash
npx skills add 6missedcalls/erpnext-skill
```
2026-04-06 19:01:37 +08:00
全局安装(适用于所有项目):
2026-04-06 15:47:33 +08:00
```bash
npx skills add 6missedcalls/erpnext-skill -g
```
2026-04-06 19:01:37 +08:00
指定特定 Agent
2026-04-06 15:47:33 +08:00
```bash
npx skills add 6missedcalls/erpnext-skill -a claude-code
```
2026-04-06 19:01:37 +08:00
### 手动安装
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
直接克隆到 Claude Code 技能目录:
2026-04-06 15:47:33 +08:00
```bash
2026-04-06 19:01:37 +08:00
# 项目级别(仅当前项目)
2026-04-06 15:47:33 +08:00
git clone https://github.com/6missedcalls/erpnext-skill.git .claude/skills/erpnext-skill
2026-04-06 19:01:37 +08:00
# 全局(所有项目)
2026-04-06 15:47:33 +08:00
git clone https://github.com/6missedcalls/erpnext-skill.git ~/.claude/skills/erpnext-skill
```
2026-04-06 19:01:37 +08:00
### 通过 Claude Code 插件市场
2026-04-06 15:47:33 +08:00
```
/plugin marketplace add 6missedcalls/erpnext-skill
```
2026-04-06 19:01:37 +08:00
然后选择**浏览并安装插件**,按提示操作即可。
2026-04-06 15:47:33 +08:00
---
2026-04-06 19:01:37 +08:00
## 快速上手
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
安装后,每当您在 Frappe 或 ERPNext 项目中工作时Claude Code 会自动加载该技能包,无需手动调用——直接告诉 Claude Code 您想构建什么:
2026-04-06 15:47:33 +08:00
```
2026-04-06 19:01:37 +08:00
"创建一个带有自动计算税额的 Invoice DocType 的自定义应用"
"添加一个将新销售订单同步到外部 API 的 Webhook 钩子"
"编写一个在提交前验证行项目的表单脚本"
2026-04-06 15:47:33 +08:00
```
---
2026-04-06 19:01:37 +08:00
## 文档结构
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
`reference/` 目录按功能组织,便于快速精准查阅:
2026-04-06 15:47:33 +08:00
```
reference/
2026-04-06 19:01:37 +08:00
|-- frappe-framework-complete.md # 主参考文档——完整 API 文档
|-- document-api.md # 文档 CRUD 操作
|-- database-api.md # 数据库查询与事务
|-- hooks-reference.md # hooks.py 配置
|-- rest-api.md # REST API 端点
|-- form-scripts.md # 客户端 JavaScript
|-- index.md # 模块文档索引
2026-04-06 15:47:33 +08:00
|
|-- api/
2026-04-06 19:01:37 +08:00
| |-- rest-api.md # REST API 深度解析
| +-- developer-api.md # Python / JS 开发者 API
2026-04-06 15:47:33 +08:00
|
2026-04-06 19:01:37 +08:00
|-- accounting/ # 会计与财务
|-- stock/ # 库存管理
|-- manufacturing/ # 生产与制造
|-- crm/ # 客户关系管理
|-- hr-payroll/ # 人力资源与薪资
|-- buying/ # 采购
|-- selling/ # 销售
|-- projects/ # 项目管理
|-- support/ # 服务台与支持
|-- assets/ # 资产管理
|-- pos/ # 销售点
|-- integrations/ # 第三方集成
|-- setup/ # 系统设置与配置
+-- customization/ # 定制与扩展
2026-04-06 15:47:33 +08:00
```
2026-04-06 19:01:37 +08:00
**从这里开始:** `reference/frappe-framework-complete.md`——单一文件,涵盖完整 Frappe API 层面及可运行代码示例。
2026-04-06 15:47:33 +08:00
---
2026-04-06 19:01:37 +08:00
## 使用说明
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
### 工作原理
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
本技能包是**纯参考**型包,不包含可执行代码。
当 Claude Code 检测到您正在 Frappe/ERPNext 环境中工作时,
会将相关文档加载到上下文窗口,从而能够:
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
- 使用 `bench new-app` 脚手架搭建新应用
- 生成 DocType、控制器和表单脚本
- 配置钩子、计划任务和文档事件
- 编写正确的 REST API 集成代码
- 遵循 Frappe 在权限、工作流和测试方面的最佳实践
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
### 示例工作流
2026-04-06 15:47:33 +08:00
```bash
2026-04-06 19:01:37 +08:00
# 创建新的 Frappe 应用
2026-04-06 15:47:33 +08:00
bench new-app my_custom_app
bench --site mysite install-app my_custom_app
```
2026-04-06 19:01:37 +08:00
然后让 Claude Code 在您的应用内构建功能,它将参考技能文档生成符合 Frappe 惯例的代码:
2026-04-06 15:47:33 +08:00
```python
2026-04-06 19:01:37 +08:00
# 带生命周期钩子的控制器
2026-04-06 15:47:33 +08:00
class CustomInvoice(Document):
def validate(self):
self.calculate_totals()
def on_submit(self):
self.create_gl_entries()
def calculate_totals(self):
self.grand_total = sum(item.amount for item in self.items)
```
```javascript
2026-04-06 19:01:37 +08:00
// 带字段级事件的表单脚本
2026-04-06 15:47:33 +08:00
frappe.ui.form.on('Custom Invoice', {
refresh(frm) {
if (frm.doc.docstatus === 0) {
2026-04-06 19:01:37 +08:00
frm.add_custom_button(__('获取项目'), () => {
2026-04-06 15:47:33 +08:00
frm.trigger('fetch_items');
});
}
},
fetch_items(frm) {
2026-04-06 19:01:37 +08:00
// 自定义逻辑
2026-04-06 15:47:33 +08:00
}
});
```
---
2026-04-06 19:01:37 +08:00
## 参与贡献
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
欢迎贡献。无论您希望扩展模块覆盖范围、修复 API 示例,还是改进文档结构,欢迎提交 Issue 或 Pull Request。
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
1. Fork 本仓库
2. 创建功能分支(`git checkout -b feature/add-xyz-reference`
3. 提交更改(`git commit -m "docs: 添加 XYZ 模块参考"`
4. 推送分支(`git push origin feature/add-xyz-reference`
5. 创建 Pull Request
2026-04-06 15:47:33 +08:00
---
2026-04-06 19:01:37 +08:00
## 许可证
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
本项目基于 [MIT 许可证](https://opensource.org/licenses/MIT) 授权。
2026-04-06 15:47:33 +08:00
---
<div align="center">
2026-04-06 19:01:37 +08:00
由 [openclaw](https://github.com/6missedcalls) 构建
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
</div>