一文理解淘宝购物车背后的逻辑 淘宝没有加入购物车( 十 )


2020年双十一之前 , 淘宝购物车是没有任何商品筛选功能的 。而商品筛选分类 , 提高发现效率一直是用研报告中 , top级别的用户诉求点 。
难点分析分页模式:购物车为分页查询 , 筛选商品可能分布在不同的页面中(例如极端情况下 , 希望筛选出的商品在购物车分页查询中的最后一页);合并结算:各个筛选“页面”下的商品勾选操作在切换过程中需要保留 , 底部动态计算结果需要保留(例如在筛选浮层下筛选出的商品在购物车分页查询中的最后一页 , 且被用户勾选参与动态计算 。关闭浮层回到后商品勾选保留 , 动态计算结果保留);用户的操作体验要求 , 例如底部价格不能出现跳变等;技术方案选型

一文理解淘宝购物车背后的逻辑 淘宝没有加入购物车


最终的技术方案最终结合项目具体诉求我们选择客户端筛选的方式 , 方案时序如下图所示:
一文理解淘宝购物车背后的逻辑 淘宝没有加入购物车


客户端筛选的本质 , 实际上从客户端的角度来看 , 是根据各个组件的筛选标以及当前筛选页对组件进行显示/隐藏 , 实现最终的商品筛选 。例如当前购物车主要组件如下:
一文理解淘宝购物车背后的逻辑 淘宝没有加入购物车


那么对于各个筛选页面来说 , 各筛选态的结构如下:
一文理解淘宝购物车背后的逻辑 淘宝没有加入购物车


结合购物车分页渲染商品列表的场景 , 使用客户端筛选方案 , 实现分页场景下勾选态保留的购物车筛选能力 , 在独立购物车、筛选入口方式、筛选项策略维度均具备扩展性;并支撑大促凑单筛选、预售筛选、多Tab等业务上线;
一文理解淘宝购物车背后的逻辑 淘宝没有加入购物车


应用的业务场景淘宝沉淀的客户端筛选方案最终支持多个业务落地 , 包括跨店满减、预售等浮层筛选 , 以及NewCart中降价、常购等多Tab模式筛选:
一文理解淘宝购物车背后的逻辑 淘宝没有加入购物车


4.1.3.2 交易核心如何引入算法导购链路
这里我们依旧以淘宝惊喜券项目为例 , 项目背景直接阅读“惊喜券项目”部分 。
惊喜券项目伴随业务发展最终沉淀技术架构如下图所示:
一文理解淘宝购物车背后的逻辑 淘宝没有加入购物车


项目落地的过程中 , 主要围绕以下两个挑战与命题进行探索与沉淀:
技术挑战一:大数据量活动商品(百万)情况下 , 如何完成购物车(交易)核心链路对用户所有购物车商品的筛选;技术挑战二:如何在购物车(交易)核心链路场景 , 面向用户保障导购营销业务的确定性以及人货匹配的精准度(算法接入);挑战一:活动商品的筛选
问题定义
一文理解淘宝购物车背后的逻辑 淘宝没有加入购物车


业务上氛围的透出面向用户购物车全部商品 , 以及购物车分页查询的事实意味着商品的筛选只能依靠基础商品id信息 , 那么大数据量活动商品id的存储和过滤的性能 , 在购物车核心链路便成为第一项技术挑战;
解决方案描述
一文理解淘宝购物车背后的逻辑 淘宝没有加入购物车


如上图所示 , 三个业务阶段的发展 , 对应三种不断优化的核心链路商品筛选方式 , 从diamond、到内存布隆过滤到最终选择的tairBloom方案 , 他具备以下优势:
1)使用RDB存储规模级活动商品信息 , 打破购物车内存限制对参与活动商品量级的要求;
2)由定时推送大文件数据到购物车机器 , 改为对远程RDB存储信息进行实时维护 , 降低对购物车应用自身稳定性风险的同时进一步提高业务的确定性;

推荐阅读