资讯专栏INFORMATION COLUMN

电商系统设计之商品接口

hsluoyz / 1808人阅读

摘要:本篇我思考了很久到底要不要解析下商品接口开发的注意点。接口设计简述电商系统设计之中,比较复杂的接口就论商品详情的接口了,响应参数特别多,特别杂。

前言

我应该是少数在文章中直接展示接口文档的人。本篇我思考了很久到底要不要解析下商品接口开发的注意点。

客户端开发与服务端开发即是天敌也是兄弟。希望本篇文章让你们减少争执,把“爱”给对方。

接口设计 简述

电商系统设计之中,比较复杂的接口就论商品详情的接口了,响应参数特别多,特别杂。在开发获取商品详情接口时要遵循以下几个原则

返回的JSON嵌套数量要少

方便去查询到指定的SKU

其他接口相关规范

查询SKU

关于查询SKU,我让我的小伙伴是这样做的,首先拿出规格和属性

"选择颜色": [
   {
          "name": "银色",
          "id": 75
   }
],
"选择版本": [
   {
          "name": "公开版",
          "id": 77
   },
   {
          "name": "【原厂延保版】",
          "id": 78
   }  
],
"内存": [
   {
          "name": "64G",
          "id": 82
   },
   {
          "name": "256G",
          "id": 83
   }
],
      

没错,你没有看错,实际就是将规格作为key,属性作为value。将value[id]取出,进行拼接即可查询到对应的SKU了。

响应参数[规格名称][属性编码] = 拼接SKU串的必需品

规格相当于一个分组,属性其实也是拼接SKU的重要组成部分,上述数据为例

75_77_82 = 银色,公开版,64G
接口文档 请求地址

/v1/product/{productId}

请求类型

GET

请求参数
参数 类型 默认值 说明
productId int 0 商品编码
响应示例
{
  "code": 200,
  "message": "获取成功",
  "data": {
    "id": 131,
    "name": "Apple iPhone X (A1865) 64GB 深空灰色 移动联通电信4G手机",
    "price": "8388.00",
    "market_price": "8388.00",
    "sketch": "IPhone大法好,打九折,打九折,快剁手",
    "intro": "这是商品描述",
    "keywords":["苹果","iphone"],
    "attribute": {
      "选择颜色": [
        {
          "name": "银色",
          "id": 75
        },
        {
          "name": "深空灰色",
          "id": 76
        }
      ],
      "选择版本": [
        {
          "name": "公开版",
          "id": 77
        },
        {
          "name": "【原厂延保版】",
          "id": 78
        },
        {
          "name": "双网通版",
          "id": 79
        },
        {
          "name": "无线充套装",
          "id": 80
        },
        {
          "name": "Airpods套装",
          "id": 81
        }
      ],
      "内存": [
        {
          "name": "64G",
          "id": 82
        },
        {
          "name": "256G",
          "id": 83
        }
      ],
      "购买方式": [
        {
          "name": "官方标配",
          "id": 84
        },
        {
          "name": "移动优惠购",
          "id": 85
        },
        {
          "name": "电信优惠购",
          "id": 86
        },
        {
          "name": "联通优惠购",
          "id": 87
        }
      ]
    },
    "album": [
      {
        "id": 2,
        "name": "这是第一张图片",
        "url": "http://xxx.com/59ec33eaN6ddb0c54.jpg"
      },
      {
        "id": 3,
        "name": "这是第二张图片",
        "url": "http://xxx.com/59ec3400Nce4cc116.jpg"
      }
    ],
    "radio": {
      "id": 1,
      "name": "这是一个视频",
      "url": "http://xxx.com/1.mp4"
    },
    "sku": {
      "75_77_82_84": {
        "id": 1018,
        "name": "选择颜色:银色;选择版本:公开版;内存:64G;购买方式:官方标配;",
        "price": "8388.00",
        "stock": 83888388
      },
      "75_77_82_85": {
        "id": 1019,
        "name": "选择颜色:银色;选择版本:公开版;内存:64G;购买方式:移动优惠购;",
        "price": "8388.00",
        "stock": 83888388
      },
      "75_77_82_86": {
        "id": 1020,
        "name": "选择颜色:银色;选择版本:公开版;内存:64G;购买方式:电信优惠购;",
        "price": "8388.00",
        "stock": 83888388
      },
      "75_77_82_87": {
        "id": 1021,
        "name": "选择颜色:银色;选择版本:公开版;内存:64G;购买方式:联通优惠购;",
        "price": "8388.00",
        "stock": 83888388
      },
      "75_77_83_84": {
        "id": 1022,
        "name": "选择颜色:银色;选择版本:公开版;内存:256G;购买方式:官方标配;",
        "price": "8388.00",
        "stock": 83888388
      },
      "75_77_83_85": {
        "id": 1023,
        "name": "选择颜色:银色;选择版本:公开版;内存:256G;购买方式:移动优惠购;",
        "price": "8388.00",
        "stock": 83888388
      }
    }
  }
}
响应参数说明 核心参数
参数 类型 默认值 说明
id int 0 商品编码
name string - 商品标题
price double 00.00 商品价格
keywords string - 商品关键字
market_price double 00.00 市场价格
virtual int 0 虚拟销量
sketch string - 商品简述
intro string - 商品详情
商品图参数
参数 类型 默认值 说明
album[] array [] 商品轮播图
id int 0 资源编码
name string - 图片名称
url string - 资源路径
商品视频参数
无视频则返回 []
参数 类型 默认值 说明
radio[] array [] 商品视频
id int 0 资源编码
name string - 视频名称
url string - 资源路径
商品规格/属性参数
参数 类型 默认值 说明
attribute array[] [] 商品属性
[(attr_name)] [] array[] [] 属性名称
name string - 属性项名称
id int 0 属性项编码
商品SKU参数
参数 类型 默认值 说明
sku[] array[] [] 商品sku
[(option_id)] [] array[] 商品SKU查询办法为 attribute(attr_name) 拼接
id int 0 sku编码
name string - sku 名称
price double 00.00 商品价格
stock int 0 商品库存
致谢

字不在多,讲清楚就行,感谢你看到这里,希望本篇文章可以帮助到你,有疑问可以在评论区讨论,谢谢。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29156.html

相关文章

  • 电商系统设计商品[番外篇]

    摘要:前言这是电商系统设计系列在商品设计这块的最后一篇文章。电商系统商品相关的文章已经到了尾声如果有其他商品相关的文章需要编写可以私信联系我毕竟我也是公司员工写这些文章并不是我的工作,只是记录我的职业生涯。 showImg(https://segmentfault.com/img/bVbePdh?w=1260&h=628); 前言 这是电商系统设计系列在商品设计这块的最后一篇文章。以下是其他...

    crossoverJie 评论0 收藏0
  • 电商设计手册基础商品信息

    摘要:商品详情接口商品表按索引查询商品信息。接着,我们来看看和定义名称概念解释标准产品单位剥离销售属性的部分,例如小米。 前言 建议使用大屏设备(例如pad/pc),可以更好的浏览本篇文章 今天我们开始「商品系统」的篇章。本文分为如下五大模块: 需求分析 架构设计 Spu和Sku的故事 数据模型设计 接口设计 第一篇我们主要看看一个入门的电商平台(B2C)如何去构建自己的基础商品信息,其...

    aboutU 评论0 收藏0
  • 电商系统设计商品 (下)

    摘要:订单号用户商品标题商品价格商品封面图商品其他属性小明爱疯手机其他属性像上表中设计,有人会问了那关联的意义何在呢我的回答是保持数据关联,虽然商户有可能改变商品属性,但作为一名程序员,应该尽可能的记录用户所有的动作。 showImg(https://segmentfault.com/img/bVbdtuc?w=1824&h=1028); 电商大伙每天都在用,类似某猫,某狗等。电商系统设计看...

    shiguibiao 评论0 收藏0
  • 电商系统设计购物车

    摘要:可扩展性百度百科的定义是设计良好的代码允许更多的功能在必要时可以被插入到适当的位置中。正常购物车商品优惠券都是独立的系统及功能,不要看做商品在购物车内。可维护性百度百科的定义是系统的可维护性是衡量一个系统的可修复恢复性和可改进性的难易程度。 showImg(https://segmentfault.com/img/bVbcqJE?w=506&h=326); 本章适合初级工程师及中级工程...

    TigerChain 评论0 收藏0
  • 电商系统设计商品 (中)

    摘要:我一直在说电商是一个既简单又复杂的东西本章我们再一次深度解析电商系统商品设计的更多逻辑与实现。品牌无需关联到内,道理很简单,当前的是归属与苹果公司,自然而然下面的规格都属于苹果了。 showImg(https://segmentfault.com/img/bVbdtuc?w=1824&h=1028); 电商大伙每天都在用,类似某猫,某狗等。电商系统设计看似复杂又很简单,看似简单又很复杂...

    banana_pi 评论0 收藏0

发表评论

0条评论

hsluoyz

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<