热门标签 | 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指导,还是那句话,一切都是最好的安排,感谢,感恩。



推荐阅读
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • 从零开始构建完整手机站:Vue CLI 3 实战指南(第一部分)
    本系列教程将引导您使用 Vue CLI 3 构建一个功能齐全的移动应用。我们将深入探讨项目中涉及的每一个知识点,并确保这些内容与实际工作中的需求紧密结合。 ... [详细]
  • 帝国CMS多图上传插件详解及使用指南
    本文介绍了一款用于帝国CMS的多图上传插件,该插件通过Flash技术实现批量图片上传功能,显著提升了多图上传效率。文章详细说明了插件的安装、配置和使用方法。 ... [详细]
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 百度服务再次遭遇技术问题,疑似DNS解析故障
    近日晚间,百度多项在线服务出现加载异常,包括移动端搜索在内的多个功能受到影响。初步迹象表明,问题可能与DNS服务器解析有关。 ... [详细]
  • 本文详细介绍了《问道》手游在2020年12月31日进行的服务器维护情况,以及此次更新中新增的跨年狂欢活动和寒假活动等内容。同时,文章还涵盖了其他重要的系统优化与修复信息。 ... [详细]
  • Win11扩展卷无法使用?解决扩展卷灰色问题的指南
    本文详细介绍了在Windows 11中遇到扩展卷灰色无法使用时的解决方案,帮助用户快速恢复磁盘扩展功能。 ... [详细]
  • 掌握 Photoshop 是学习网页设计的重要一步。本文将详细介绍 Photoshop 的基础与进阶功能,帮助您更好地进行图像处理和网页设计。推荐使用最新版本的 Photoshop,以体验更强大的功能和更高的效率。 ... [详细]
  • 本文介绍如何使用Python进行文本处理,包括分词和生成词云图。通过整合多个文本文件、去除停用词并生成词云图,展示文本数据的可视化分析方法。 ... [详细]
  • Python实现照片磨皮效果
    本文介绍如何使用Python和OpenCV库来实现照片的磨皮效果,使图片更加平滑并提升整体美感。 ... [详细]
  • 深入解析三大范式与JDBC集成
    本文详细探讨了数据库设计中的三大范式,并结合Java数据库连接(JDBC)技术,讲解如何在实际开发中应用这些概念。通过实例和图表,帮助读者更好地理解范式理论及其在数据操作中的重要性。 ... [详细]
  • 本文探讨了如何在 PHP 的 Eloquent ORM 中实现数据表之间的关联查询,并通过具体示例详细解释了如何将关联数据嵌入到查询结果中。这不仅提高了数据查询的效率,还简化了代码逻辑。 ... [详细]
  • 如何彻底清除顽固软件如360
    本文详细介绍了如何彻底卸载难以删除的软件,如360安全卫士。这类软件不仅难以卸载,还会在开机时启动多个应用,影响系统性能。我们将提供两种有效的方法来帮助您彻底清理这些顽固软件。 ... [详细]
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社区 版权所有