上海序说科技,专注于基于Odoo项目实施,实现企业数智化,助力企业成长。老韩头的开发日常,博客园分享(2022年前博文)背景客户在对接第三方的电商平台的时候,存在Odoo系统中配置的属性与第三方电商平台配置的产品属性不一致的情况。比如,我们在Odoo中某产品有4个属性,而电商平台只有其中的三个属性。因此在该平台销售出去产品的时候,我们是没有办法直接匹配到目标产品的(除非单独建一个三个属性的产品)。需求希望在电商平台销售出去这类产品的时候,可以按照一定的规则匹配到其中的任意一台。这里的规则可以是库存最少的、距离客户位置距离最新的等等。实现为产品添加一个“共享库存产品”的字段,并为这类产品配置需要
上海序说科技,专注于基于Odoo项目实施,实现企业数智化,助力企业成长。老韩头的开发日常,博客园分享(2022年前博文)背景客户在对接第三方的电商平台的时候,存在Odoo系统中配置的属性与第三方电商平台配置的产品属性不一致的情况。比如,我们在Odoo中某产品有4个属性,而电商平台只有其中的三个属性。因此在该平台销售出去产品的时候,我们是没有办法直接匹配到目标产品的(除非单独建一个三个属性的产品)。需求希望在电商平台销售出去这类产品的时候,可以按照一定的规则匹配到其中的任意一台。这里的规则可以是库存最少的、距离客户位置距离最新的等等。实现为产品添加一个“共享库存产品”的字段,并为这类产品配置需要
一个新应用房地产广告模块假设需要开发一个房地产模块,该模块覆盖未包含在标准模块集中特定业务领域。以下为包含一些广告的主列表视图form视图顶层区域概括了房产的重要信息,比如name,PropertyType,Postcode等等。列表记录详情页中,第一个tab包含了房产的描述信息,比如:bedrooms,Livingarea,Garage,Garden第二个tab页,列出了房产的报价。我们可以在这里看到,潜在买家可以提供高于或低于预期售价的报价,取决于卖方是否接受报价。准备插件目录参考:和该主题相关的文档可参考manifest.Goal:该小节的目标是让odoo识别我们的新模块,一个空壳。它将
一个新应用房地产广告模块假设需要开发一个房地产模块,该模块覆盖未包含在标准模块集中特定业务领域。以下为包含一些广告的主列表视图form视图顶层区域概括了房产的重要信息,比如name,PropertyType,Postcode等等。列表记录详情页中,第一个tab包含了房产的描述信息,比如:bedrooms,Livingarea,Garage,Garden第二个tab页,列出了房产的报价。我们可以在这里看到,潜在买家可以提供高于或低于预期售价的报价,取决于卖方是否接受报价。准备插件目录参考:和该主题相关的文档可参考manifest.Goal:该小节的目标是让odoo识别我们的新模块,一个空壳。它将
安全-简介前一章中我们已经创建了第一个打算用于存储业务数据的表。在odoo这样的一个商业应用中,第一个考虑的问题就是谁(Odoo用户(或者组用户))可以访问数据。odoo为指定用户组用户提供了一个安全的数据访问机制。更多关于安全主题的详细信息可以查看AdvancedB:ACLandRecordRules。本章目标是覆盖我们新模块的最小安全需求。DataFiles(CSV)Odoo是一个高度数据驱动的系统。虽然通过Python代码定制行为,但是模块的部分值在加载时设置的数据中。加载数据的方式之一是通过一个CSV文件,比如在安装base模块时加载的countrystates列表"id","coun
安全-简介前一章中我们已经创建了第一个打算用于存储业务数据的表。在odoo这样的一个商业应用中,第一个考虑的问题就是谁(Odoo用户(或者组用户))可以访问数据。odoo为指定用户组用户提供了一个安全的数据访问机制。更多关于安全主题的详细信息可以查看AdvancedB:ACLandRecordRules。本章目标是覆盖我们新模块的最小安全需求。DataFiles(CSV)Odoo是一个高度数据驱动的系统。虽然通过Python代码定制行为,但是模块的部分值在加载时设置的数据中。加载数据的方式之一是通过一个CSV文件,比如在安装base模块时加载的countrystates列表"id","coun
模型和基本字段在上一章的末尾,我们创建一个odoo模块。然而,此时它仍然是一个空壳,不允许我们存储任何数据。在我们的房地产模块中,我们希望将与房地产相关的信息(名称(name)、描述(description)、价格(price)、居住面积(livingarea)…)存储在数据库中。odoo框架提供了数据库交互的工具开始练习前,请确保estate模块已被安装,也就是说必须以installed的状态出现在Apps列表中,如下对象关系映射(Object-RelationalMapping)参考:和本主题关联文档可参考ModelsAPI.ORM层是odoo的一个关键组件。该层避免了手动写入大部分SQL
模型和基本字段在上一章的末尾,我们创建一个odoo模块。然而,此时它仍然是一个空壳,不允许我们存储任何数据。在我们的房地产模块中,我们希望将与房地产相关的信息(名称(name)、描述(description)、价格(price)、居住面积(livingarea)…)存储在数据库中。odoo框架提供了数据库交互的工具开始练习前,请确保estate模块已被安装,也就是说必须以installed的状态出现在Apps列表中,如下对象关系映射(Object-RelationalMapping)参考:和本主题关联文档可参考ModelsAPI.ORM层是odoo的一个关键组件。该层避免了手动写入大部分SQL
一个新应用房地产广告模块假设需要开发一个房地产模块,该模块覆盖未包含在标准模块集中特定业务领域。以下为包含一些广告的主列表视图form视图顶层区域概括了房产的重要信息,比如name,PropertyType,Postcode等等。列表记录详情页中,第一个tab包含了房产的描述信息,比如:bedrooms,Livingarea,Garage,Garden第二个tab页,列出了房产的报价。我们可以在这里看到,潜在买家可以提供高于或低于预期售价的报价,取决于卖方是否接受报价。准备插件目录参考:和该主题相关的文档可参考manifest.Goal:该小节的目标是让odoo识别我们的新模块,一个空壳。它将
一个新应用房地产广告模块假设需要开发一个房地产模块,该模块覆盖未包含在标准模块集中特定业务领域。以下为包含一些广告的主列表视图form视图顶层区域概括了房产的重要信息,比如name,PropertyType,Postcode等等。列表记录详情页中,第一个tab包含了房产的描述信息,比如:bedrooms,Livingarea,Garage,Garden第二个tab页,列出了房产的报价。我们可以在这里看到,潜在买家可以提供高于或低于预期售价的报价,取决于卖方是否接受报价。准备插件目录参考:和该主题相关的文档可参考manifest.Goal:该小节的目标是让odoo识别我们的新模块,一个空壳。它将