热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

电商扣减库存_电商之购物车

我从刚开始做产品起,就只想做电商,对医疗、教育类的都不太感兴趣。公司转型做电商,整个电商模块重构,有幸负责购物流程优化&#x

我从刚开始做产品起,就只想做电商,对医疗、教育类的都不太感兴趣。公司转型做电商,整个电商模块重构,有幸负责购物流程优化,之后支付中心和订单中心都会相继优化,今天先来讲购物车。

一、购物车目的

任何产品功能都有目的,App端的购物车就好比我们在超市的手推车购物车。

对用户来说,主要有:批量结算、商品收藏和价格对比三种作用。

从产品角度来讲,我最开始做这个需求时,觉得是为了提高订单转化率,之后和leader交流,知晓根本目的是提高客单价,订单转化率之类的只是辅助数据指标。除此之外,根据用户购物车商品数据做商品推荐,解决同一店铺下多件商品运费问题等也是目的之一。

二、购物车的功能模块

原型之前,用Xmind罗列出所有的功能点,确定要做什么,做到心中有图,心中有规划,这样可以避免原型反复修改,提高原型效率。

1a50b554e1d0b6366edaad0d45b49486.png

由于开发时间的原因,商品属性编辑、优惠券、活动降价引导、活动预热、满减活动凑单页条件筛选、结算拆单、购物车唤醒(文中红色X标注的)等功能放在下个版本中完成。

三、主要功能讲解

3.1 购物车列表

每次进入购物车或者刷新购物车都会调购物车列表接口,给用户展示购物车商品信息。列表的关键在组合类型和排序,前提条件是用户已登录。

组合类型

942956febb937e5ac00fd3529ed53936.png
  • 同一商家下的满减活动:满减活动下的SKU全部来自同一商家,按商家维度打包到一起,成为一个组合;
  • 跨商家满减活动:满减活动下的SKU只要有SKU来自不同的商家,按活动维度打包到一起,成为一个组合;
  • 无满减活动:按商家维度组合。

异常情况:同一SKU同时满足活动维度和商家维度,优先活动维度。

如SKU1、SKU2和SKU3都是OPPO店的商品,但SKU2和SKU3参加了满100减10的活动,所以SKU2和SKU3在满减活动模块中,而不在商家模块下。

aa65d2a477da53bfacf2e3f0e5572762.png

排序

  • 组合内的SKU排序按照最新添加SKU排在第一的规则;
  • 组合间的排序按照每个组合内最新SKU排在第一的规则。


如SKU1 添加购物车时间为2019/5/29,SKU2添加购物车时间为2019/5/27,则SKU1在组合内排在第一;
SKU3添加购物车时间为2019/5/28,SKU4添加购物车时间为2019/5/26,则SKU3在组合内排在第一;
因SKU1 添加购物车时间2019/5/29>SKU3添加购物车时间为2019/5/28,所以组合1排列在组合2之前。

8680af5384bbe0f67c49e7f6c0f2ad8f.png

异常情况:添加购物车时无法找到商品对应商家或者活动,提示“网络出错了”。

3.2 购物车商品

列表是由一个个商品组成的。购物车中的商品基本信息有:商品图片、商品名称、商品属性、商品价格和商品活动信息和商品数量组成。其中属性、活动信息和数量都会影响价格,关键在于活动信息和数量。

商品活动信息

购物车是电商平台内各种营销活动的最终载体,尤其是对于满减、满赠这样需要凑单的营销活动来说,更是重要。目前平台内做了三种活动:满减(满折、满赠)、秒杀和单品促销。每种活动展示各自活动的样式,目前只做了“进行中”样式,“未开始”状态,购物车预热、降价提醒、领券功能放入二期来做,如下:

cc4c17405602524dfe322564b3c6d3d9.png

商品数量

用户每次增减商品数量,系统调编辑接口、列表接口和结算接口。编辑接口校验库存和活动信息。

  • 非活动商品:判断商品本身库存。
    若购买数量超过商品可售库存,toast提示”您最多购买X件噢“。X指商品最多购买数量,见样式一;
  • 活动商品且活动有限购,始终文案提示“限购5件”;若增加数量超过活动库存,价格恢复活动前价格,文案提示“限购5件,超出恢复原价”,同时toast提示,见样式三;
  • 参加活动的商品还需要校验活动库存,若超过活动可售库存,见样式一。

9d6e32a80863be9a970e3c303828856a.png

异常情况:购物车中无商品,空页面展示。

商品状态

进入购物车列表商品会出现两种异常情况:商品无货和商品下架。“无货”状态商品仍处于原位置,“下架”状态商品全部置于最底端。考虑点是:无货商品可能只是暂时没货,待库存补充后又可以售卖,但下架很大可能就是无法再售卖,所以置底。

3.3 结算

结算时要校验商品状态、商品库存、活动信息异常情况。

  • 库存不足:若勾选商品中有库存不足的商品,弹窗提示。若点”取消“,刷新当前页面,将库存不足的商品取消勾选,库存不足的商品露出;若”移除无货商品“则继续购买。
  • 商品下线:若勾选商品中有库存不足的商品,弹窗提示,刷新当前页面;若”移除失效商品“则继续购买;
  • 活动信息发生变更:提示用户价格已发生变更,是否要以变更后的价格购买。

0bd6941d097817b1c804a36daa3f3f67.png

四、关于购物车的额外思考

1、进入购物车时引导登录还是在购物车结算时引导登录?

对用户来说很明显是结算时引导登陆更友好,但此时需要离线购物车功能,根据设备号记录哪个商品加入到哪个设备的购物车,用户登陆后合并设备下的离线购物车数据和账号下的在线购物车数据。目前京东、淘宝、唯品会、网易严选等主流电商平台均是结算时引导登陆,我们平台内的购物车还是进入购物车时引导登陆,这点应该会在下个版本中优化掉。

2、购物车上限商品数量?

购物车商品设置上限,主要是考虑接口性能。购物车本身承载着巨大的计算工作,如每点击数量增减,需要请求列表接口、编辑接口和结算接口,如果商品太多,接口请求速度会变得比较慢,影响用户体验。

3、是加入购物车时扣减库存还是下单时扣减库存?

像淘宝和京东这样的平台,用户添加购物车大多数是为了收藏,所以是下单时扣减库存,如果加入购物车时扣减库存,会造成大量库存被占用,实际又没有结算的浪费;而唯品会是加入购物车时就扣减库存,所以唯品会添加到购物车的商品到20分钟时会自动删除,也是为了避免库存被占用。目前平台采用的是下单扣减库存

购物车和商品系统、库存系统、活动系统、订单系统,我们金融电商,还和风控系统交互,算属于一个比较复杂的模块了,在此次产品设计中,得到了挺多锻炼。接下来会逐步讲解支付中心和订单中心。

做着自己感兴趣喜欢的工作,又有leader指导,还是那句话,一切都是最好的安排,感谢,感恩。



推荐阅读
  • 程序员如何优雅应对35岁职业转型?这里有深度解析
    本文探讨了程序员在职业生涯中如何通过不断学习和技能提升,优雅地应对35岁左右的职业转型挑战。我们将深入分析当前热门技术趋势,并提供实用的学习路径。 ... [详细]
  • 本文详细介绍了如何在 Android 中使用值动画(ValueAnimator)来动态调整 ImageView 的高度,并探讨了相关的关键属性和方法,包括图片填充后的高度、原始图片高度、动画变化因子以及布局重置等。 ... [详细]
  • 开发笔记:由数据库某字段存数组引发的json_encode/serialize思考
    开发笔记:由数据库某字段存数组引发的json_encode/serialize思考 ... [详细]
  • 如何在WPS中设置标题格式
    本文详细介绍了在WPS Office中设置文档标题的方法,帮助用户掌握高效、专业的文档排版技巧。 ... [详细]
  • 优化Render Texture在RawImage中显示模型的质量
    本文探讨如何通过调整Render Texture的设置,提升UI界面中模型渲染的图片质量。同时,介绍一些替代方法来实现人物选择界面中的模型显示。 ... [详细]
  • 本文记录了作者在学习验证码识别过程中,针对粘连字符分割的探索与实践。通过对多种算法的研究和应用,总结出有效的解决方案,并分享了相关经验和技巧。 ... [详细]
  • NVIDIA Titan RTX深度评测
    NVIDIA的Titan RTX被誉为当前最强大的桌面显卡之一,其卓越的性能和高昂的价格吸引了众多专业人士和技术爱好者的关注。本文将详细介绍Titan RTX的技术规格、性能表现及应用场景。 ... [详细]
  • MySQL Debug 模式的实现与应用
    本文详细介绍了如何启用和使用 MySQL 的调试模式,包括编译选项、环境变量配置以及调试信息的解析。通过实际案例展示了如何利用调试模式解决客户端无法连接服务器的问题。 ... [详细]
  • 多核环境下大规模线性分类的并行对偶坐标下降算法
    本文介绍了一种适用于多核环境的大规模线性分类问题的并行对偶坐标下降算法。该方法通过优化计算资源的分配,显著提高了处理效率和模型性能。论文《Parallel Dual Coordinate Descent Method for Large-scale Linear Classification in Multi-core Environments》详细探讨了这一算法,并提供了实验验证。 ... [详细]
  • 本文介绍了一种根据目标检测结果,从原始XML文件中提取并分析特定类别的方法。通过解析XML文件,筛选出特定类别的图像和标注信息,并保存到新的文件夹中,以便进一步分析和处理。 ... [详细]
  • 深入解析Hadoop的核心组件与工作原理
    本文详细介绍了Hadoop的三大核心组件:分布式文件系统HDFS、资源管理器YARN和分布式计算框架MapReduce。通过分析这些组件的工作机制,帮助读者更好地理解Hadoop的架构及其在大数据处理中的应用。 ... [详细]
  • PHP 实现无刷新多图上传及远程图片处理
    本文详细介绍了如何使用 PHP 实现网页上的无刷新多图上传功能,同时支持远程图片的下载与处理。文章提供了具体的代码示例,并对关键函数进行了说明。 ... [详细]
  • PC时代的传奇人物
    回顾过去几十年,个人电脑(PC)的发展历程犹如一部英雄史诗。每一位杰出人物都在这一领域留下了不可磨灭的印记,他们的贡献不仅推动了技术的进步,也深刻影响了现代社会的发展。 ... [详细]
  • JMeter接口关联与数据提取:正则表达式和JSON Extractor的使用
    在使用JMeter进行接口测试时,常常需要从前一个接口的响应中提取数据并应用于后续请求。本文将详细介绍如何利用正则表达式提取器(Regular Expression Extractor)和JSON Extractor来实现这一需求。 ... [详细]
  • 探讨如何在 iOS 开发中通过添加 NSLayoutConstraint 来使 UICollectionView 自适应其内容的高度,特别是在复杂布局如模拟微信朋友圈发布界面时遇到的问题。 ... [详细]
author-avatar
hyl7758521_948
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有