Odoo可以说是世界第一的开源ERP软件,很多企业都在使用。一般介绍odoo时都会这样介绍它:
Odoo是一系列开源商业应用程序套装,此套装可满足中小型企业的一切应用需求,例如,企业基本的进销存、采购、销售、MRP生产制造、品保质量保障、企业招聘、员工合同、休假、午餐管理、内部论坛、车队管理、内部聊天IM沟通、客诉追溯管理、CRM客户关系管理、VOIP、E-Shop电子商务、网店、企业官方网站,财务会计、银行对账、资产管理、HR工资管理、预算管理、WMS仓库库存管理、POS街边小摊、社区商店、项目管理、条码、PLM等等等。
Odoo基于Postgresql,Python等一系列开源技术和产品,并构建成熟稳定的架构,提供了强大的配置,定制和在线开发工具,确保通用化产品和灵活定制之间的平衡。在使用的过程中,为了满足企业的管理需求,二次开发是必不可少的。

Odoo是使用Python作为后端开发语言的,所以想要做好Odoo的二次开发,Python的基础语法及编程调试方法这边要了解。
要做好odoo的二次开发,首先第一点,要明白业务流程,比如做的工厂的管理,就要明白工厂的进销存是什么样的流程,这个明白是指具体到细节!细节!细节!新来的货是怎么存,存在哪个仓库,取原件是怎么取,什么单位,出货怎么出,产品编号怎么设计。
需要注意的是二开时模型创建完毕并配好视图后对于基本的CRUD操作不需要再在代码中实现,框架会自动提供这些功能,但如果我们的开发需求不仅仅是对当前对象的CRUD时,就需要在框架原来方法的基础上扩展出一些自己所需要的操作。
首先,我们整体的对Odoo框架做一个整体的概览,设置开发环境,并生成自己的第一个Odoo应用;当整体熟悉了 Odoo的主要组件后,再深入更细节地了解Odoo的三层业务架构,这三大板块分别是模型层、业务逻辑层、和表现层;当建立了自己的应用后,最后需要测试、发布到一个生产环境并维护。
同时Odoo 提供了一个快速应用开发框架,非常适合创建商业应用。这类应用通常用于保留业务记录,增删改查操作。
Odoo 不仅简化了这类应用的创建,还提供了看板、日历、图表等视图的丰富组件,用于创建好看的用户界面。基本上,用户可以在任何时间点启用/禁用这些功能。
因此,相同的软件可以按不同的要求进行调整。查看下面Odoo模块的截屏;该列中第一个模块是主应用,其它的模块为该应用添加功能而设计。
如果你计划在Odoo中开发新应用,应为不同功能设置边界。这有助于将你的应用切分为不同的插件模块。
即前述的数据层、逻辑层和展示层:数据层是最底端一层,负责数据持久化存储,Odoo 借助 PostgreSQL 来实现。Odoo 出于设计考虑仅支持 PostgreSQL 数据库,而不支持 MySQL 这一类数据库(有第三方应用可集成MySQL)。文件附件、图片一类的二进制文件通常存储在一个称为 filestore(目录) 的文件系统中。
数据层是最底端一层,负责数据持久化存储,Odoo 借助 PostgreSQL 来实现。Odoo 出于设计考虑仅支持 PostgreSQL 数据库,而不支持 MySQL 这一类数据库(有第三方应用可集成MySQL)。文件附件、图片一类的二进制文件通常存储在一个称为 filestore(目录) 的文件系统中。
逻辑层负责与数据层的所有交互,并由 Odoo 服务完成。通常,底端数据库不应通过这一层获取,只有这样才能保证权限控制和数据一致性。
在 Odoo 的核心代码中包含供这一接口使用的ORM (对象关系映射 Object-relational Mapping)引擎。ORM 提供插件模块与数据交互的API。
比如像客户和供应商这样的 partner 数据实体,是通过模型的 ORM 体现的。这一模型是一个Python 对象,支持多种交互方法:create()方法用于创建新的伙伴记录,read()方法用于查询已有记录和对应数据。
通用方法可在特定模型中实现指定业务逻辑,如 create()方法可以设置默认值或强化验证规则,read()方法可支持一些自动计算字段或根据执行操作的用户来实施权限控制。
展示层用于展示数据并与用户交互,通过客户端实现用户体验。客户端与 ORM API 交互来读、写、验证或执行其它操作,通过 RPC 调用 ORM API 方法。这些操作发往 Odoo 服务器端操作,然后结果发送回客户端做进一步处理。
对于展示层,Odoo 自带全面功能的 web 客户端。该客户端支持所有业务应用所需功能:登录会话、导航菜单、数据列表、表单等等。
全局展示不会像前端工程师所认为的那样可深度定制,但易于创建功能性和连贯的用户体验。
配套的展示层包含网站框架,可像其它 CMS 框架一样灵活地创建网页,当然需要额外的操作和 web 相关知识。网站框架支持通过 web 控制器实现代码来展示特定逻辑,而与模型内在逻辑进行区隔。
前端工程师不会有什么操作上的障碍。Odoo 服务端 API 非常开放,包含所有服务端功能。
Web 客户端使用的 API 与其它应用的API 并无不同。因此,其它的客户端实现均可做到,并且可以在任何平台上使用任意编程语言进行实现。
可以创建桌面和移动端应用来提供不同用户界面,这充分利用了 Odoo 为业务逻辑和数据持久性而生的数据和逻辑层。
Odoo崇尚自由,基于自身需求,设计者拥有更长足的自由,而用户拥有任意定制的自由。上万个模块开箱即用。帮助创业者快速验证商业模式,迅速变现。
石榴科技
石榴科技专注企业级服务十八年,致力于为客户提供和打造优秀的互联网产品,用科技的力量为企业的发展助力。通过产品+解决方案+用户体验+咨询+实施+技术研发的模式,满足客户的需求。客户名单包括海尔,海信,kidsland,松下,雷士,山东移动,皇明太阳能,青岛市政府等知名客户。
售前微信:shiliukeji007


