产品模块
Products | |
---|---|
模块ID | 50 |
用户手册 | 本页 |
开发文档 | Module Products (developer) |
简介
本模块管理产品。
相关参考:管理服务的 服务模块 、管理仓库和库存的 Module Stocks 。
安装
该模块包含在 Dolibarr 发行版中,因此无需安装。
配置
要使用此模块,必须首先使用管理员帐户通过菜单选项 "主页 - 设置 - 模块"启用它:
选择列出模块的选项卡。然后点击 "激活"。。
模块现在已激活。
如果在该模块的行尾出现一个齿轮图标,则单击它以访问特定于模块的设置页面。
参数
产品模块参数设置见上图。
- 编号的生成与检查;包含两个互斥的选项 Elephant(大象) 和 Leopard(豹)。
Elephant根据事先定义的格式掩码,返回一个可定制编号。
Leopard允许自定义编号。
鼠标放在图中的小问号位置,显示掩码的帮助信息。
- 生成产品文档的文档模板
该部分确定产品资料生成文档的模板。相关修改,见开发文档#模板
自定义属性
计算字段
可输入公式,公式输入对象的其他属性 or 任何 PHP 代码来得到动态值。
你可以使用任何PHP兼容的公式,包括“?”条件运算符, 和以下全局对象:
$db, $conf, $langs, $mysoc, $user, $object
注意: 可能只有对象的部分属性是可用的。如果你需要一个未加载的属性,可以在公式中查询你自己的对象,如下例所示:
使用计算字段意味着,你不能在界面输入值,也意味着,如要存在语法错误,将得不到返回。
公式实例:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)
加载对象实例:
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'
其他实例,强制加载对象及其父对象的公式:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
定义
产品
“产品”是你销售给顾客的货物,或者是你从供应商处采购的货物,是实体对象,相对应的虚拟对象是 服务.
产品遵循以下规则:
- 产品可以储存在仓库中(只有产品可以出现在 库存 模块中,服务是不可以出现在库存模块中的).
- 产品可以交付(只有产品可以出现在 发货 模块中, 服务是不可以出现在发货模块中的。 服务可以实现但不能发货).
- 产品是一种材料货物。它的价值往往随着时间的推移而下降(已拆封产品的价值低于未拆封产品的价值)。
有些字段专用于产品,而不适用于服务,例如:
- 重量
- 尺寸
- 自定义代码 = 商品代码 = 许可证代码 = HTS = HS代码(6个以上字符的代码,用于定义产品的国际海关类别)
产品套件(Kits)(也称为产品包或虚拟产品)
产品或服务可注册为包含其他(单一)产品的套件(“父”)产品。此功能可从 产品 或 服务 模块的设置页面激活。它允许在订单、发票和库存中将产品的“包”或“套件”作为一个批次进行处理,而不是单独处理每个产品。
套件产品符合以下规则:
- 当在文档(报价单、发票、订单)中添加产品时,仅显示虚拟产品(父产品)的行。
- 当获取/交付父产品时,其中每个单独组件(子产品)的库存都会增加/减少。例如,如果您已设置在供应商订单验证时增加库存,则在包含虚拟产品的供应商订单验证通过时,将会增加该产品的库存以及组成该产品的所有子产品的库存。
- 虚拟产品本身可以由包含真实产品的其他虚拟产品组成。
如何创建产品套件:
- 首先创建一个“父”产品。然后,必须为其分配组件产品。
- 在产品页面中,单击旧版本的“套件”或“虚拟产品”标签页。
- 在页面底部的搜索栏“按关键字筛选”中,输入要分配的子产品的名称。当产品出现时,勾选并选择数量,然后单击“添加/更改”。
注意:
这是一种不同于“制造/生产”模块中“容器”产品的功能,“容器”产品使用其子组件的现有库存来生产出另一种产品,然后将其作为库存保存。
事实上,在“套件产品或服务”功能中,虚拟产品的子组件只会在虚拟产品交付时减少相应的库存。在此之前,这些子产品仍处于完全可支配状态,并可能作为单独的独立产品集成到其他销售流程中。
同样,制造模块的行为有所不同:从它注册“容器产品”的那一刻起,它就立即声称其子产品不能用于任何其他用途。因此,无论容器产品是否离开商店,他们的库存都会立即减少,因为考虑到子组件不能再作为库存中的单个产品而返回库存。
销售价格管理规则
在Dolibarr中有四种销售价格管理方法:
. 每个产品只有一个唯一价格
. 按客户细分市场并享有不同的价格(见下一章)
. 每个客户享有不同的价格
. 按交易数量不同享有不同的价格(实验性的)
您必须在“产品”模块的设置中选择一种并且只能选择一种销售价格管理方法。
按客户细分(segment)的价格
Dolibarr可以接受根据客户细分市场定义多个价格。默认有5个客户细分市场(即不同客户组成的5个组),但您也可以对此进行编辑。每个客户可以且只能与1个细分市场关联,因此将为其分配为该细分市场定义的价格(如果尚未定义客户所属的细分市场,则默认属于细分市场1)。
从v12开始,REST API支持获取(但不支持设置)产品的多个价格(按客户细分市场的价格)。
产品价格和客户细分市场只能从后台设置。
类别(Categories)
产品可以被添加到一个或多个类别中。
要使用API设置产品的类别,必须使用 APIs /categories/...
图片(Image)
一个产品可以有一个或多个图像。可以从产品的“链接文件”标签页中手动设置。
要使用APIs获取或设置产品的图像,必须使用 API /documents(参数“ModulePart”=“Product”或“Service”)。
变体(Variants)
产品可以有多种变体,例如尺寸或颜色。
从V12开始,REST API支持获取、设置和删除产品的变体。
生命周期/业务规则
相关视频
产品(法语配音,但字幕可用,并用此语言评论):