我正计划建立一个通用购物商店网站,例如较小版本的alibaba.com,供不同企业在其自己的购物商店版本中列出其产品。
在开始项目之前,我想确定我要做什么。我想问的一件事是:
1)购物商店是否就其产品的原始成本以及产品两者的售价或仅后者的价格来跟踪所有库存?
如果同时跟踪两者,那么如果将特定产品在不同时间以不同速率输入库存中,则架构将是什么样子,例如在日期1和日期2上100件产品1的价格为100美元,价格为150美元。这次再次添加到库存中,费用为120 $,并且像以前一样定价为150 $。在这种情况下,我将如何将该信息存储在数据库中并计算利润和销售成本(COGS)。我对FIFO LIFO库存管理略有了解,但是我不确定它是否将成为购物商店的一部分,或者这不是购物商店的责任,以跟踪原始销售成本与利润的关系。如果是这样,那么数据库的架构应该是什么样,才能适应这些要求。
2)在典型的购物商店中,单个产品具有不同的属性,并且购物商店知 Prop 有特定属性的产品的当前数量。例如,productId = 1的T恤可能有两种不同的颜色,并且库存中分别有10种蓝色的T恤衫和5种黑色的T恤衫,它们的productId = 1和attributeId = 1&2。我将如何跟踪具有差异属性的同一产品的库存。我的意思是,数据库中只有一个产品表,该模式将如何适应库存了解具有相同productId的不同属性产品的数量的这些要求。
在这里发布问题之前,我在Google上搜索了很多。我来到了购物商店的一些数据库模式,但是我不确定我是如何牢记我的以上两点的。请查看一下并告诉我路线图是什么样的。
最后,我确实想建立自己的购物商店,而不仅仅是出于学习目的和其他一些原因而不要使用预建的购物商店。我将在sqlserver中使用ASP.Net MVC。
请查看我在google上找到的购物商店架构的所附图片。
如果使用图片中所示模式的较小版本,我将如何跟踪和维护库存。他们在哪里指定产品数量,因为“产品”表中没有该数量。另外,我将如何维护具有不同属性的同一产品的数量,成本和价格。
谢谢。
最佳答案
1)库存始终反映当前价格。应该有一个购物车,其中包含进行中的订单-还有一个单独的订单项目表,其中包含特定订单的项目。订单商品表中的价格不会更改,因为它与特定订单相关联。因此您拥有具有当前价格的当前库存,并且具有订单和已售商品的记录。
与购物车中应更改的价格,因为它们应该反映产品的当前价格。他们完成交易后将冻结产品价格,而不是将其放入购物车时冻结。
以相同的方式,当有人在购物车中放东西时,库存不会减少-当交易进行且商品实际销售时,库存会减少。
2)在更大的商业世界中,每个“可购买的”产品都有唯一的UPC代码或EAN代码。商家可能拥有自己的SKU(用于库存)。电子商务系统可能对每个产品都有自己的ID。以这种方式查看-,如果产品有单独的库存,则必须有一个单独的ID才能跟踪该库存。如果一件衬衫有3种尺寸和2种颜色-等于坐在货架上的6种不同产品库存。
即使衬衫只有一个网页-商家必须以某种方式知道库存的每种特定尺寸和颜色的数量。因此对此的一种描述称为“父产品-子产品”。父产品是“衬衫”-说明,图片,页面,评论等。子产品是实际可购买的物品。亚马逊卖家中心对此有一些很好的描述。
我的建议是创建您的系统,以使购物车不受价格或库存的控制。有一个当前的产品数据库,您的电子商务系统正在不断检查。您将产品ID存储在购物车中,然后在刷新购物车并在结帐时进行更新-您从产品表中获取价格并检查库存。 VERSUS将价格从产品页面传递到购物车,并且再也不会检查它。
关于database - 购物商店的基础知识及其架构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26317203/