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