电商系列之拆单与选仓

news2024/11/17 4:43:00

> 插:AI时代,程序员或多或少要了解些人工智能,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站​​​​​​​。

坚持不懈,越努力越幸运,大家一起学习鸭~~~

文章结合案例解读了关于电商产品中下单选仓的逻辑,希望能够对你有益。

当我们在电商网站上买东西的时候一定会遇到下面这种场景,一次买了2个或多个商品,但是收货的时候却分了两个或者多个包裹收到的货。

这里大家有没有想过为什么我一次买的东西为什么要分多次给我送过来呢?为什么不能一次都给我送过来呢?带着这个问题今天来跟大家聊聊电商下单选仓的逻辑。

在聊选仓逻辑之前,先跟大家聊聊拆单。

什么是拆单?

当用户的一次购买行为,由于背后的各种维度原因被拆成了多个包裹单的过程叫做拆单

拆单的维度有很多种,最常见的有两种,一种是根据商家拆单,一种是根据仓来拆单

根据商家拆单比较容易理解,比如你在电商平台上买了2个商品,一个是图书,一个是衣服。图书和衣服基本都是POP商家的东西,所以你买的这两个东西很可能是两个不同商家的。当你购物车里面同时买了图书和衣服的时候,尽管是你一次付款的,但由于背后是两个不同的商家,所以会把你的这笔订单拆成2个不同的子订单,每个子订单由相应的商家发货。因为不同商家的货都是存在自己商家的仓库里面,所以不可能同时从2个不同的商家发货,这也就是为什么购物车里面要根据不同的商家进行拆单。

拆单会发生在两个环节:

一个环节是在确认页,如上面的截图所示,在确认页就明确告诉你,你的这次购买商品会被拆成几单。

另外一个环节是在支付成功后再进行拆单,京东采用的就是这样的方式,在确认页你是看不出来有没有被拆单的,只有在支付完成之后,京东会后台进行拆单。

第一种方式对系统挑战比较大,要能够实时的进行计算,会用户体验相对比较好一些。第二种方式对系统的压力小一些,可以后面慢慢算,用户在订单详情可以看到最终是被拆成了几单。

下面重点来说说今天要讲的仓维度是如何拆单的。

大家可以思考一个问题,如果你买的不同商品是同一个商家的,那么就一定会从一个仓发货么?

答案是不一定的。

分两种情况,一种情况这是一个小商家,那么它的商品品类不是很多,基本所有的商品都是放在同一个仓库里面。这种情况下,你在这个商家买的不同商品一定是从一个仓库发货的。

另外一种情况,这个商家的商品品类非常多,多到一个仓已经放不下了,例如京东自营的商品,京东自营的SKU数量已经有上百万了,这么多的商品是不可能放在一个仓库的,所以这些商品一定会分布在不同的仓,会根据商品的类型分仓。比如大家电一定不会跟零食放在一个仓库里面,大家电的拣货、发货流程跟小商品的都不一样,所以实际情况是京东自营的商品分布在多个仓,目前京东在全国有200多个仓库。

简单起见我们可以把仓库粗略的理解有大件仓、中件仓、小件仓。这些仓库分布在全国各地,同一个商品也会分布在全国各地同类型的仓库里面。一个水杯,可能会分布在全国各地的小件仓里面,这样的好处是,如果你只买一个水杯,那么会根据你的收货地址来判断下从哪个仓发货比较快,从而到达可以比较快速的送到用户手里的目的。

基于上面介绍的仓库的一些背景,我们在实际生产过程中会受到一系列的挑战。

还是举个例子,通过一次场景大家感受下。

你在购物车里面同事买了3件商品,先不考虑多商家的维度,我们只买了3个自营的商品,比如这3个商品是A、B、C,并且离你收货地址最近的一个仓库是W仓。我们来看看会遇到哪些挑战?

场景一:A、B、C,3个商品在W仓都有货。

这是最完美的情况了,这3个商品也不用再拆单了,直接都从W仓发货给你,是最快、也是体验最好的一种情况。

场景二:A、B,在W仓有货,C在Y仓

这个场景你买的3个商品就没办法从最近的W仓出库了,只能先从W仓发货A、B,再从Y仓发货C,这时候你这单会分2个包裹分别收到你买的3个商品,并且是先收到W仓出来的2个,后收到Y仓出来的C。

场景三:A、B,在W仓有货,C在Y仓有货,同时C仓也有A、B

这个场景就稍微复杂一些了,这个时候有两个选择。

一个选择同场景二,分2个包裹发货,A、B仓W仓发货,C从Y仓发货。

另外一个选择是:A、B、C 3个商品都从Y仓发货,由于Y仓离用户并不是最近的,用户的收货时间可能会稍微长一些,但是收货体验会稍微好一些,只需要收一次包裹就可以了,并且成本也会低一些,因为只需要为这单付一次快递成本就行了,多半商家都会选择方案二,但具体如何选择要因不同平台而异了。

场景四:A在W仓,B在Y仓,C在Z仓

这个场景就有些尴尬了,没什么好选的,只能分3个包裹分别从3个仓出货了。

场景五: A在W仓,B、C在Y仓,B、C在Z仓也有货

这个场景也是有些复杂的,大体上有两种方案。

  • 一种方案是:A从W仓出,B、C从Y仓出货。
  • 另外一种是:A从W仓出,B、从从Z仓出货。

但上面两种哪个会比较好一点呢?要在算一下哪个仓离用户比较近一些,这样对用户是一个相对比较优的方案。

上面列举了几个比较常见的选仓场景,如果商品数量更多一些场景还会更复杂,这里就不一一列举了,但是总的选仓思路总结下:

  1. 从最近的仓发货
  2. 尽量少的仓发货

关于拆单以及选仓的逻辑就先介绍到这里,大家有什么疑问或者建议可以后面留言进行交流!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1548597.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

揭秘抖音百科词条创建全攻略!

在当今社交媒体的盛行时代,抖音作为一款备受青睐的短视频平台,一直以来都备受人们的喜爱和追捧。而在抖音上的各种短视频内容之中,往往会涉及各种明星名人、品牌产品以及各种时事热点。为了更好地让用户获取相关信息,抖音百科词条…

Redis中的事件(二)

文件事件 文件事件的处理器 Redis为文件事件编写了多个处理器,这些事件处理器分别用于实现不同的网络通信需求,比如说: 1.为了对连接服务器的各个客户端进行应答,服务器要为监听套接字关联连接应答处理器2.为了接收客户端传来的命令请求&a…

【码银送书第十五期】一本书掌握数字化运维方法,构建数字化运维体系

前言 数字化转型已经成为大势所趋,各行各业正朝着数字化方向转型,利用数字化转型方法论和前沿科学技术实现降本、提质、增效,从而提升竞争力。 数字化转型是一项长期工作,包含的要素非常丰富,如数字化转型顶层设计、…

介绍一下Redis的集群模式?

Redis有三种主要的集群模式,用于在分布式环境中实现高可用性和数据复制。这些集群模式分别是:主从复制(Master-Slave Replication)、哨兵模式(Sentinel)和Redis Cluster模式。 一、问题解析 主从模式 主从…

Div2 936 D. Birthday Gift

解题思路 题意为将一数组从头到尾划分,每组组内异或,异或后的结果再或起来满足小于等于x,问最多划分组数考虑使数组划分后该位为0的最多划分即划分后每个子段内该位只有2个1或0个1满足小于条件,即二级制下从高位开始比较&#xf…

LeetCode刷题---游戏玩法分析 IV

1.首先查询出每个用户首次登录的第二天,并将其创建为临时表,命名为Expected (select player_id,Date_add(min(event_date),Interval 1 day) as second_date from activity group by player_id) as Expected这里使用了函数DATE_ADD,详细用法可…

【C语言】Infiniband驱动mlx4_init_one

一、注释 这是Linux内核中Mellanox Ethernet网卡驱动程序mlx4模块的一部分代码,主要用于初始化一个PCI设备。以下是其注释: // 驱动的主结构体,包含了供PCI核心使用的勾子(hooks) static struct pci_driver mlx4_dri…

<QT基础(2)>QScrollArea使用笔记

项目需要设置单个检查的序列图像预览窗口,采用QScrollArea中加入QWidget窗口,每个窗口里面用Qlabel实现图像预览。 过程涉及两部分内容 引入QWidget 引入label插入图像(resize) 引入布局 组织 scrollArea内部自带Qwidget&#…

Floyd算法:浅显外表下的动态规划内核

很久没遇到Floyd算法的题目了,2642. 设计可以求最短路径的图类刚好是一个典型。在实现核心算法之余,顺便整理一下算法的内核。 Floyd-Warshall’s Algorithm Floyd-Warshall算法,简称Floyd算法,是“有向图非负权图的多源最短路”…

【爬虫基础】第5讲 AJAX动态页面的数据获取

静态:访问地址栏里的数据就可以获取到想要的数据 动态:访问地址栏里的数据获取不到想要的数据 解决方案:抓包 打开浏览器的开发者工具-network-xhr,找到可以获取到数据的URL访问即可 获取url地址 代码实现: from urllib.request…

Python接口自动化pytest框架安装

1、创建一个requirements.txt文件夹 2、输入内容:如下图 pytest pytest-html pytest-xdist pytest-ordering pytest-rerunfailures pytest-base-url allure-pytest3、在terminal中输入安装命令:pip install -r requirements.txt 安装成功 4、在termina…

模板方法模式(继承的优雅使用)

目录 前言 UML plantuml 类图 实战代码 AbstractRoutingDataSource DynamicDataSource DynamicDataSourceContextHolder 前言 在设计类时,一般优先考虑使用组合来替代继承,能够让程序更加的灵活,但这并不意味着要完全抛弃掉继承。 …

MySQL高级SQL2

一、表连接 二、视图 三、null值和空值区别 四、存储过程 五、函数 六、字符串函数 七、日期时间函数

迅雷拉新关键词怎么申请?

在这个日新月异、竞争激烈的时代,网盘项目的寻找与对接已成为众多团队谋求突破的关键。那么,如何在茫茫项目海中筛选出既靠谱又有潜力的明珠呢?经过深度挖掘和全网搜索,我为大家精心整理了优质接单渠道,助力网盘拉新团…

大模型prompt工程学习(一)

目录 调prompt的方法 prompt时好时不好 大模型本质是没有记忆的 划重点:我们发给大模型的 prompt,不会改变大模型的参数 ГLets think step by step」 一步步分析一下 自洽性,同时跑多次,来减少幻觉 逻辑,基本能力来是要有…

Android卡顿掉帧问题分析之实战篇

本文将结合典型实战案例,分析常见的造成卡顿等性能问题的原因。从系统工程师的总体角度来看 ,造成卡顿等性能问题的原因总体上大致分为三个大类:一类是流程执行异常;二是系统负载异常;三是编译问题引起。 1 流程执行异…

web全栈架构师第16期教程

教程介绍 互联网时代已进入后半场,行业环境发生了显著变化。互联网人,尤其是技术人员,如何在加速更迭的技术浪潮中持续充电,提升自身价值,是当下必须面对的挑战。课程涉及了现下前端实际开发时所需要的各块内容&#…

Java Web-HTTP协议

概念: Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。 特点: 1.基于TCP协议:面向连接,安全 2. 基于请求-响应模型的:一次请求对应一次响应 3. HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的。 缺点:多…

MBR4060DC-ASEMI肖特基二极管MBR4060DC

编辑:ll MBR4060DC-ASEMI肖特基二极管MBR4060DC 型号:MBR4060DC 品牌:ASEMI 封装:TO-263 最大平均正向电流(IF):40A 最大循环峰值反向电压(VRRM):60V …

小红的炸砖块

题目描述 小红正在玩一个“炸砖块”游戏,游戏的规则如下: 初始有一个n∗m的砖块矩阵。小红会炸k次,每次会向一个位置投炸弹,如果这个位置有一个砖块,则砖块消失,上方的砖块向下落。 小红希望你画出最终砖块…