淘宝名词解释

产品 和 商品的区别:

淘宝标准化产品,由类目+关键属性唯一确定。如:手机类目,关键属性是品牌和型号,Nokia N95就是一个产品,nokia是品牌,N95是型号。产品除了关键属性还包括一般信息、销售属性和非关键属性。参考:如"诺基亚N95"就是一个产品。通过类目的关键属性组合来确定唯一的产品。后台标准类目叶子节点下,一组共同特征商品的组合(例如:化妆品+雅芳+保湿单品+容量),属于同一个产品的商品可以认为对消费者的效用及使用感受是没有差别的。 产品这个概念对淘宝这种C2C,B2C的平台是需要的,对我们一般的电子商务平台基本是可以忽略的.

属性名和属性值

这里非常重要了,淘宝的宝贝搜索页面,通过各种属性对商品进行搜索,全靠属性表了。从数据结构可以看到,属性名表和属性值值归属于类目,提取了类目子叶节点下面商品的公共基本属性,在淘宝中,品牌和系列也当成是类目的属性,可以看看这里来了解淘宝属性分类,这里看下图来了解属性名和属性值表之间的关系:

1.需要注意的是:左边的表中全部存放属性名,存在一个父子关系,比如品牌->型号->子型号,右边的属性值表只保存属性的值。

2.左表的属性名表有个parentVid字段,这边的属性名也跟右边的属性值相关联,比如宏基下面有‘宏基电脑的型号’,那么这个‘宏基电脑的型号’属性名存放于属性名表,

具体有多少个型号,型号的名称还是存放于属性值表

3.如何添加自定义属性,如何给属性起别名,可以参考淘宝API的输入属性

SKU:

  
  在淘宝中,SKU指销售属性的组合,表示一组最小销售单位。 如颜色:金色;套餐:单电单充,描述手机销售时实物特征。比如衣服: 颜色:红色;尺码:xl;我们可以通过这样的属性标示来确定一个商品.注意:比如洗发水,容量:150ML;买的多便宜多:*6;比如相机:颜色:红色;套餐:A套餐;这种特殊的营销模式也是一个SKU,我们后面就必须通过这些组合成SKU的属性来统计销售,库存等信息,比如我们才能知道红色,XL的衣服卖了多少,绿色,L的衣服卖了多少.

注意:我们自己的电子商务中,是否需要这样的SKU设计,是需要的,不管你是用什么方法实现,但是根据属性统计销售等情况是电子商务中都会遇到的需求,但是有没有必要一定这样的实现,一件衣服,用户点击进来,才能看到SKU呢,没有必要的,其实做电子商务之后发现,图片,介绍,是给用户的第一直接感觉,所以,很多商家会把一个SKU的商品当一个独立的商品发布,比如衣服,红色的发布一个,蓝色的发布一个,这是完全有必要的,我们可以通过发布的多个SKU的单品,跳转到统一的页面让用户进行挑选,就比方说,你看了衣服A的黄颜色,衣服A的绿颜色,点击查看详情都是到一个页面,这样的话,为我们的商品提供更多次的展示,提高了用户的购买率;

品牌和系列:

  在淘宝中,如:日化/清洁/护理->日化用品->洗发水->海飞丝->清爽去屑系列,海飞丝以及它的系列都被规制到属性当中,结构为:品牌:海飞丝;系列:XXXXX,这样的话,不管你新有什么品牌,你只要属于我的分类,那你就添加基本属性就可以了,特殊的属性是可以手动输入的。因为商品的属性是针对每一个分类的子叶节点的,这样的设计,在我们做电子商务中思考是否适合自己。

抓取属性

API文档:http://my.open.taobao.com/apidoc/index.htm#categoryId:3

API属性测试工具:http://open.taobao.com/api_tool/props/

SDK下载地址:http://open.taobao.com/bbs/read.php?tid=18008

抓取详细的代码不写了,需要注意的是,由于数据很大,需要多次连接API得到数据,必须做好异常记录,不然抓一次,发现失败了很多次,那么必须又开始一次了,我是把失败的ID保存于数据库之中

这样,抓完之后只要先删除这些抓取失败的,在来一次,就OK了。

通过属性来动态构建表单

1. 当用户选择完类目之后,我们已经可以通过类目ID得到类目下面所有的属性名和属性值,这里我们根据淘宝的添加商品页面分析淘宝是如何做的:

需要注意的是:淘宝属性这里的布局全是UL->LI的布局,这样的结构和CSS配合起来让JS实现起来是最容易的。

我们看到name=“keySpus”这里放置的关键属性,下面的所有LI中放置的是非关键属性,和用户自定义属性。我们通过什么来判断表单控件是select 还是checkboxlist,属性是什么类型的属性,属性下是否有子属性(品牌->系列->子系列),以及验证属性是否必填必选或者可自定义输入?请看属性的数据结构,is_key_prop,is_sale_prop,is_enum_prop,multi,must,child_template这些数据结构能告诉我们答案.

好吧,实现上面相对简单一点,实现销售属性就麻烦了,因为销售属性可以组合成多个SKU,怎么来实现呢?

上图的洗发水的“毫升”和“买的多便宜多”组合成一个SKU,显示在下面的tr里面,实现这里有一个很取巧的办法,先把所有能组合好的属性构造出来,页面上隐藏N个TR,用户点击毫升或者*6 *12这种,我们显示相应的TR组就好了 :) 其实是个好办法的,可以省掉考虑很多问题,页面最多增加10来K,JS性能也能提高不少.

如果你觉得这样的实现很困难或者很麻烦,推荐你看看nopecomerce开源项目的属性(它叫变体)实现.如图:

展示效果:

这样在多个页面的输入,减少了实现的难度,就是在后台有点麻烦。

好吧,这篇文章在护士MM的生活照中结束吧,欢迎大家讨论,以前写一篇分析淘宝商品设计的文章,不要去看.发现当时考虑问题没有考虑周全,后面有时间再写一篇.在前台实现快速的属性读取和页面展示,后台进行快速的报表展示,OLAP建模都需要考虑很多问题,也希望有经验的朋友能讨论个自是如何做的.

2011-04-22 追加  属性名表和属性值表关系图示

1.通过类目ID得到类目下面的所有属性值

2.通过类目ID+品牌ID(20000)得到洗发水的所有品牌

3.通过父VID+父PID+类目ID 得到美吾发洗发水品牌下的3个型号

在图1这里型号可以叫做'美吾发型号' '飘柔型号',属性名表和属性表存在相互引用关系,这里我们自己做的话也可以加上第3个表来存储关系。

转载于:https://www.cnblogs.com/mmmjiang13/archive/2011/04/21/1983079.html

从淘宝数据结构来看电子商务中商品属性设计相关推荐

  1. 再从淘宝数据结构来看电子商务中商品属性设计

    前言 那个啥-前面发了2篇文章讲这个商品表的设计,后面越多需求浮出水面才发现设计依旧有问题,好吧,乐观一点,正如我博客的标题一样,我在进化-^_^ 为什么要这样设计 先说几个需求,看看您现在是如何去实 ...

  2. Django实现迷你淘宝(四) --- 基于Bootstrap的商品页面设计与美化

    欢迎查看本系列的其他文章: postgres安装与入门 django安装与入门 基于django的用户验证系统实现 基于Bootstrap的商品页面设计与美化 基于jQuery和AJax的购物车设计与 ...

  3. 淘宝系统 B2C电子商务系统UML建模 范例

    淘宝系统 B2C电子商务系统UML建模 范例 B2C电子商务系统UML建模 --淘宝网系统 目录 一 系统功能需求 二 系统的UML建模 1.系统的用例图 (1)系统用户参与的总的用例图 (2)Peo ...

  4. 弘辽科技:淘宝卖家打造爆款商品的六大技巧!

    原标题<弘辽科技:淘宝卖家打造爆款商品的六大技巧!> 淘宝商家对于打造爆款很是重视,因为成功打造爆款好处多多,可以给店铺带来流量,可以提升店铺权重和排名,以及带动店铺内其他商品的销量.那么 ...

  5. 淘宝天猫开放平台店铺商品发布(新)-淘宝店铺发布API接口流程代码对接说明

    淘宝天猫开放平台店铺商品发布(新)-淘宝店铺发布API接口,天猫店铺发布API接口,oAuth2.0店铺发布接口,店铺商品API接口,店铺商品接口发布API接口流程代码对接说明: 公共参数 名称 类型 ...

  6. 淘宝(tmall)店铺旗舰店商品数据分析接口代码教程

    淘宝(tmall)店铺旗舰店商品数据分析接口代码教程如下: 1.公共参数 名称 类型 必须 描述(接口支持高并发) key String 是 调用key(必须以GET方式拼接在URL中,点击获取请求k ...

  7. 天猫淘宝企业服务为中小微企业打造供应链智能协同网络,让采购不再将就!丨爱分析报告

    编者按:近日天猫淘宝企业服务&爱分析联合发布<2023中小微企业电商采购白皮书>,为中小微企业采购数字化带来红利. 某水泵企业:线上客户主要是中小微企业,线上业绩遇到瓶颈,如何突破 ...

  8. 让淘宝链接在微信中分享,GO

    老婆开了个淘宝店,小卖家的心理大家都知道,一开始的小店总是没有光顾,吸引流量成了重中之中. 所以她到处发链接,微信里发了好多条,可是没过多久有好友微她,问她发的时什么,为什么都是打不开的.结果直接傻眼 ...

  9. 淘宝/天猫店铺的所有商品 API接口,店铺商品API接口,店铺详情API接口

    一.淘宝/天猫店铺的所有商品 API接口,店铺商品API接口,店铺详情API接口,店铺所有商品接口代码分享 1.公共参数: 名称 类型 必须 描述 key String 是 调用key(必须以GET方 ...

最新文章

  1. ES6新特性:Javascript中的Reflect对象
  2. mongoclient php扩展,lnmp安装mongo扩展后,在实例化mongoClient()时出错
  3. Eclipse 控制console
  4. 【转】面试题:将多个集合合并成没有交集的集合
  5. linux+下c语言编程项目,精通UNIX下C语言编程与项目实践
  6. servlet中doPost()和doGet()
  7. 做自媒体必备的神器:文章相似度检测工具
  8. MAML++:HOW TO TRAIN YOUR MAML论文精读
  9. python引入视频_django 实现简单的插入视频
  10. Visual Studio Code中比较不同的分支(How to compare different branches in Visual Studio Code)
  11. 微信小程序入门开发教程
  12. Mysql 不使用窗口函数实现分组排序 rank 别名问题
  13. 电工电子电力拖动及自动化技术考核实训台QY-DG800D
  14. 100.64.0.0/10 运营商级NAT(Carrier-grade NAT)共享地址空间
  15. 单调队列优化的DP问题
  16. 一文概览2D人体姿态估计
  17. 指尖江湖服务器维护,指尖江湖服务器修复第一日,玩家重新审视游戏:我觉得海星...
  18. android手机通讯录没了,手机联系人不见了怎么恢复?手机通讯录误删如何恢复...
  19. pako 压缩lottie动效资源方案
  20. [CTF]对支付软件的漏洞利用buyflag

热门文章

  1. 海量数据处理(位图和布隆过滤器)
  2. C++Primer学习笔记:第5章 语句
  3. C++ cin 实现循环读入
  4. Linux系统【三】回收子进程
  5. Linux命令【五】系统函数
  6. Linux I/O复用之select函数详解
  7. 使用指针在函数中交换数值
  8. Java进阶之光!mysql创建用户并授权建表
  9. Java概述、环境变量、注释、关键字、标识符、常量
  10. 企业级应用架构(三)三层架构之数据访问层的改进以及测试DOM的发布