2

我正在评估不同的电子商务平台。作为这项工作的一部分,我正在评估我们目前的产品结构如何适应平台。对于像 IBM 这样的供应商来说,这很容易,因为他们在网络上公开了所有材料。我对 Hybris 电子商务越来越感兴趣。然而,他们没有任何可用的材料。他们有一个我可以访问的私人维基,但即使他们的数据模型上也没有材料。

Hybris 的代表一直坚持认为他们的产品非常灵活,可以创建任何数据模型。好吧,我相信他们,但仍然存在不应该跨越的界限,例如 GUI 和报告显示某些数据片段,而 OOB 订单管理肯定依赖于某些数据。为了充分利用 OOB 特性,我创建的数据模型必须遵循 Hybris 的数据模型。然而,Hybris 不允许我查看他们的数据模型,所以我处于一种先有鸡还是先有蛋的境地。

现在我的问题是:你有在 Hybris 上建模产品结构的经验吗?你是如何做到的?所有帮助表示赞赏!1!

干杯!

4

2 回答 2

11

Hybris的数据模型或者说TYPE SYSTEM非常灵活。在过去的 4 年里,我一直在研究 Hybris,从来没有遇到过只要涉及建模就会失败的情况。类型系统是 Hybris ORM,其中所有 Java 对象都以 XML 格式定义,同时映射到数据库表和列。支持所有的 java 数据类型,也支持类型集合。类型系统独立于 DB 的选择,并且即使在 DB 更改时,也对 items.xml 几乎没有任何更改(或非常少的额外配置)。CLOB 例外,它需要数据库供应商特定的或等效的数据库列数据类型配置,同样在相同的 items.xml 中。

就 Hybris 关系而言,建模关联也很简单

  1. 1:1 -> 建模为 Object2 作为 Object1 的属性
  2. 1:n 或 n:1 -> 由具有源和目标属性的关系项建模
  3. n:m -> 由具有源和目标属性并在单独的数据库表下的关系项建模

现在回到产品,产品有两个层次结构,可能存在于多层次结构中。2 个基本层次结构是产品和产品变体。

让我们为服装产品建模,可能有 4 种产品:

  1. 产品本身是 SKU:BaseProduct
  2. 产品有颜色变体:BaseProduct -> ColorVariant
  3. 产品有尺寸变体:BaseProduct -> SizeVariant
  4. 产品具有颜色和尺寸变体:BaseProduct -> ColorVariant -> SizeVariant

所有产品属性都将保存在 BaseProduct 中,而 Variants 将仅保存不同的属性,例如颜色、尺寸和成本。

根据产品推断变体的类型,产品-变体层次结构路径将增长,简单且重复最少或无重复。

对于BaseProduct建模,唯一必须的属性是产品代码,其余的都是可选的,所以很方便。这有助于通过工作流运行丰富过程,并有助于非常灵活的基础实施,并增加特定要求的范围。

通过服务层服务和加速器对 GUI 的开箱即用支持是值得称道的,即使添加了自定义属性的负载,这也足够了,因为它是从 ITEM 驱动到 MODEL 然后是 DATA 转换。实现完全控制要从模型填充到数据的数据和数据段。

报告由基于 Jasper 报告的报告主控室驱动。使用 JOINS 和 UNIONS 定义灵活的搜索查询,甚至可以选择为报告属性值填充执行小型 Java 代码。

在我看来,Hybris 很好地涵盖了建模、转换、GUI 和报告。

于 2013-10-30T08:46:44.820 回答
3

Hybris 开箱即用,为您选择启用的每个扩展提供一个基本数据模型。该数据模型包含您对电子商务平台、产品、类别、分类等的所有期望。

通常,人们不会期望从该数据模型中删除任何内容,而只会使用特定于您的应用程序的新类型和属性对其进行扩展。您不希望使用的任何现成项目或属性都可以不填充它们。

我的建议是从 wiki 下载并安装最新版本的 Hybris 并启动它(我建议使用本地 MySQL DB,因为默认的 HSQLDB 可能有点慢)。设置很简单——您应该能够在 Hybris wiki 上找到指南(查看开发者线索)。

完成此操作后,请查看各种驾驶舱以了解演示店面的设置方式。HMC ( http://localhost:9001/hmc/hybris) 应该让您对数据模型有一个很好的印象,因为它的组织与下面的数据模型紧密相关。

我建议您尽可能使用标准的 Hybris 类型,因为它允许您使用提供各种业务用户界面的标准驾驶舱。

于 2013-10-07T12:03:27.507 回答