php定位发货仓库,PHP如何实现收货地址以及发货仓库的优先仓库选择问题

今天我来问个技术性的问题, 关于商品,收货地址以及发货仓库的优先仓库选择问题.

如题:

用户购买了商品 A, B, C 三个商品(可以认为用户买了n个SKU商品, 每个sku有对应的数量), 商品SKU我们用大写: A, B, C;

收货地址为 X ;

每个商品都对于多个仓库, 仓库发货选择最近最优(优先顺序根据收货地址配置), 如仓库有: a, b, c, d(仓库我们用小写字母表示)等等;

优先逻辑:

用户购买的商品, 选择仓库发货, 包裹数越少越优(主), 包裹越近越优(次);

收货地址为 X, X 地址对应的仓库优先顺序列表:

X => a,b,c,d

举例:

例1. 用户购买了1个sku(数量是3个)发往对应的地址X:

A: 3

A这个商品对应的库存以及数量: X地址对应的顺序是: a,b,c,d

A 对应的仓库以及库存列表:

a: 1

b: 3

c: 4

d: 5

按照最少包裹最近仓库原则, 结果会扣除 b仓库存(A商品3个)发货1个包裹.

例2. 用户购买了2个sku发往对应的地址X:

A: 3

B: 2

A,B这些商品对应的库存以及数量: (X地址对应的顺序是: a,b,c,d)

A 对应的仓库以及库存列表:

a: 1

b: 3

c: 4

d: 5

B 对应的仓库以及库存列表:

a: 1

b: 2

c: 1

d: 5

按照最少包裹最近仓库原则, 结果同样应该扣除 b 仓库(A商品3个, B商品2个)存发货1个包裹.

例3. 用户购买了2个sku发往对应的地址X:

A: 3

B: 2

A,B这些商品对应的库存以及数量: (X地址对应的顺序是: a,b,c,d)

A 对应的仓库以及库存列表:

a: 3

b: 3

c: 1

d: 5

B 对应的仓库以及库存列表:

a: 1

b: 1

c: 2

d: 1

按照最少包裹最近仓库原则, 结果同样应该扣除 a 仓库(A商品3个, B商品1个), 加上 b 仓库存(B商品1个), 发货共2个包裹(a 仓和 b 仓各一个)(这里同样做到了最好少包裹最近仓原则).

例4, 用户购买了2个sku发往对应的地址X:

A: 3

B: 5

A,B这些商品对应的库存以及数量: (X地址对应的顺序是: a,b,c,d)

A 对应的仓库以及库存列表:

a: 2

b: 3

c: 4

d: 5

B 对应的仓库以及库存列表:

a: 1

b: 1

c: 2

d: 5

按照最少包裹最近仓库原则, 结果同样应该扣除 d 仓库(A商品3个, B商品5个), 发货共1个包裹(d仓一个), 这里就做到了最少包裹数原则.

敢问, 大牛些这个算法如何破?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值