我正在开发一个将使用 NoSQL 文档数据库的电子商务应用程序。我想要一种通用产品,可用于不同类型的产品,从咖啡到家具再到电子产品。
我认为实现这一点的一种方法是拥有“属性”和“值”,这样根据产品的不同,可以有不同的,我可以将它们用作“选项”供用户在前端选择。
例如,对于一件 T 恤,属性及其值可以是:
{
"productOptions": [
{ "colors": ["red", "white", "blue"] },
{ "sizes": ["small", "medium", "large", "extra large"] }
]
}
我试图在这里解决 4 个问题:
- 每个独特的配置都有不同的 SKU 编号,这是相当典型的
- 在某些情况下,为特定 SKU 设置不同的价格点也很常见。例如,普通 T 恤的价格可能为 9.99 美元,而特大号 T 恤的价格可能为 12.99 美元。
- 另一种可能性是特定配置选项可能不可用。使用
Product
上面的对象示例,红色可能不适用于特大尺寸 - 大多数电子商务系统还允许商家上传 Excel 表格以将其数据导入数据库,因为没有人愿意手动创建甚至 20 种具有多个选项的产品
这意味着,每个产品选项/配置可能必须在数据库中用其自己的 SKU 和价格表示,这意味着单独的条目。就像是:
{
"id": 123,
"sku": "987-rs",
"name": "Quality Brand Tshirt",
"description": "100% Cotton Small Red",
"price": 9.99
},
{
"id": 234,
"sku": "987-rxl",
"name": "Quality Brand Tshirt",
"description": "100% Cotton XL Red",
"price": 12.99
}
我还认为我可以同时拥有数据库中的属性/值以及所有可用的 SKU,即上面的两个示例一起使用。这将允许在前端轻松处理产品选项,同时仍允许单独的 SKU 和定价。
通用产品设计的另一个挑战是,在某些情况下,在用户创建之前没有实际的产品配置。例如,咖啡或披萨。提前创建每种配料组合并分配 SKU 是没有意义的。这种情况并非食品独有。如果涉及任何定制,相同的场景实际上适用于服装等常规产品。
我敢肯定,许多其他人已经解决了这种情况,并想看看他们是如何处理的。