本文目录导读:

Dolibarr是一个开源的企业资源计划(ERP)和客户关系管理(CRM)系统,用PHP编写,它以其模块化架构而闻名,允许用户根据需要启用或禁用功能,以下是Dolibarr ERP模块的详细解析。
核心模块分类
基础与会员管理
- 第三方(Third parties):管理客户、供应商、 prospects
- 联系人(Contacts):与第三方关联的联系人信息
- 会员/成员(Members):适用于协会、俱乐部的会员管理
- 用户与组(Users & Groups):系统用户权限管理
销售与CRM
- 商机(Opportunities):销售管道管理
- 报价单(Proposals):销售报价生成与追踪
- 订单(Orders):客户订单处理
- 合同(Contracts):服务合同管理
- 发票(Invoices):应收发票、信用票据
采购与供应链
- 供应商订单(Supplier orders):采购订单
- 采购报价请求(Request for quotation)
- 库存(Stock):库存管理、仓库、移动
- 产品(Products):物料/产品目录、BOM(物料清单)
财务与会计
- 财务模块:总账、会计日记账、会计科目表
- 银行对账(Bank reconciliation)
- 费用报告(Expense reports)
- 支付(Payments):收付款管理
- 税务(Taxes):增值税、税务报告
- 预算(Budgets):预算编制与控制
生产与项目
- 生产(MPS/MRP):生产计划、工单、制造
- 项目(Projects):项目管理、任务、工时跟踪
- 工时单(Timesheets):员工时间记录
- 资源(Resources):设备、设施管理
HR与人力资源
- 员工(Employees):HR基本信息
- 考勤(Attendance):上班打卡记录
- 招聘(Recruitment):职位发布、候选人管理
- 培训(Training):培训课程管理
其他常用模块
- 知识库(Knowledge management):内部文档/wiki
- 邮件合并(Emailings):邮件营销/批量邮件
- 调查(Surveys):客户/员工满意度调查
- 网站(Website):CMS/网站管理
- 电子签名(Electronic signature):集成签名
- POS/收银台(Point of sale):零售POS系统
- 捐赠(Donations):慈善捐赠管理
技术架构特点
模块目录: /htdocs/modulebuilder/template/
核心接口: /htdocs/core/
数据库抽象: /htdocs/core/db/
事件钩子: /htdocs/core/events/
触发器: /htdocs/core/triggers/
- 自包含:每个模块有独立的SQL文件、语言文件、类文件
- 权限细粒度:每个模块可设置读/写/创建/删除权限
- 钩子系统:拦截事件执行自定义逻辑
- 工作流:状态机(草稿→待审批→已确认→已处理)
自定义开发示例(创建简单模块)
模块主文件 my_module/my_module.class.php:
<?php
require_once DOL_DOCUMENT_ROOT.'/core/modules/DolibarrModules.class.php';
class MyModule extends DolibarrModules
{
public function __construct($db)
{
parent::__construct($db);
$this->numero = 100000; // 唯一模块ID
$this->name = 'MyModule';
$this->description = 'Custom ERP module';
$this->version = '1.0.0';
$this->const_name = 'MAIN_MODULE_MYMODULE';
}
public function init($options = '')
{
$sql = [
"CREATE TABLE IF NOT EXISTS ".MAIN_DB_PREFIX."my_module_object (
rowid integer AUTO_INCREMENT PRIMARY KEY,
label varchar(255),
status integer DEFAULT 0
)"
];
return $this->_init($sql);
}
}
目录结构要求:
htdocs/custom/my_module/
├── core/modules/modMyModule.class.php
├── my_module.class.php (对象类)
├── card.php (详情页)
├── list.php (列表页)
└── sql/
└── llx_my_module_object.sql
模块启用与管理
通过后台 Home → Setup → Modules :
- 系统会扫描
/custom/和/modules/目录 - 自动检测
mod*.class.php文件 - 点击“激活”即安装数据库表
- 可设置模块依赖(如:需先激活“发票”模块)
常用模块组合推荐(按业务类型)
| 业务类型 | 必选模块组合 |
|---|---|
| 贸易/分销 | 产品+库存+客户订单+采购+发票+银行 |
| 制造业 | 产品+BOM+生产计划+工时表+库存 |
| 服务类 | 项目+任务+费用报告+合同+发票 |
| 协会/非营利 | 会员+捐赠+成员+邮件合并+网站 |
模块开发最佳实践
- 使用ModuleBuilder:Dolibarr提供图形化模块生成器(/modulebuilder/)
- 遵循命名规范:
llx_mymodule_MYOBJECT(表名)、MyModuleMyClass(类名) - 利用钩子:最少修改核心文件,通过
$hookmanager->executeHooks()扩展 - 翻译文件:创建
/langs/zh_CN/my_module.lang文件 - 安全:所有输入使用
GETPOST()函数,SQL使用$db->escape()
Dolibarr的模块化架构使其非常灵活,从简单的CRM扩展到完整的ERP系统,适合中小企业定制化需求,开发新模块时,建议先研究已有模块(如comm四/订单模块)的代码结构作为参考。