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

222 lines
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ERPNext开发技能包
`ERPNext` `Frappe` `Claude Code` `开发工具` `ERP`
<div align="center">
# ERPNext / Frappe 开发者技能包
**面向 Claude Code 的 Frappe 框架与 ERPNext v15 开发综合参考手册。**
[![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)
无需离开编辑器,即可构建功能完整的 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>