商品详情页设计

2,403 阅读2分钟

一、商详页核心要素

  1. 由于商详页是整个电商系统访问最高的页面之一,所以要考虑并发问题;
  2. SKU数量多且大,所以要考虑商品数据规模的问题。

二、商品系统需要保存哪些数据

基本信息(主标题、副标题、价格、颜色、型号等等)

基本信息属性一般都是固定的,所以可以用数据库保存这部分信息,由于是不经常变化,可以做一层缓存。在读商品信息时,先去缓存查找,如果找到就直接返回缓存中的数据,如果在缓存中找不到,就查数据库,在返回结果的同时也在缓存中保存一份。在更新商品的时候,在更新数据库的同时,把缓存的数据删除了。

商品参数

对于不同的商品,商品的属性是不同的,例如手机是内存大小、屏幕大小、CPU等等属性,苹果是直径、颜色、口感等等,一般用MongoDB存储比较好。MongoDB中的每一行数据都是一个类JSON的格式,很适合存储商品参数信息这种数据量大、数据结构不统一的场景;

图片视频

一般只会在数据库中保存图片视频的ID或者URL,真实的数据都会存储在云厂商中。

二、商品静态化

一般来说,商详页中的大部分商品介绍都是不变化的,所以可以事先生成好这个页面,保存成一个静态的HTML,然后再访问页面的时候,直接返回这个HTML,这就是静态化。另外也可以用CDN加速。对于每一个SKU,当商家在后台修改了商详页的数据之后,可以重新生成一个新的商详页HTML文件,直接推到CDN上,或者等CDN回源拉取。对于商品价格和促销信息,前端页面可以通过AJAX动态获取。

五、注意点

  • 在设计商品基本信息表时,一定要保存商品数据的每一个历史版本,可以创建一个历史记录表保存这些信息,这样当用户查询历史订单时,就可以看到当时的快照;
  • 对于超大规模的电商, 不一定是一个SKU一个静态HTML文件,可能会把商详页划分为多个模块,每一个模块是静态的HTML文件;
  • 当用户下单时,假如商品调价,很可能出现商详页看到的价格和实际下单的价格是不一致的,所以下单前最好调用一下校验接口的接口,如果发生变化,就提示用户刷新页面