广告
移动端|服务电话: 400-066-1318
首页/成功案例/ecshop 二开

ecshop 二开

发布时间:2024-05-14 15:00:29
浏览量:405

需求背景:

我这边是澳洲代购的网站。澳洲这边又物流规则,我们需要根据物流给的物流规则进行分包,物流规则里有什么种类的商品,和什么种类商品混装的时候,数量,价值,种类不能超过多少一个包裹。

 

物流规则:

不同物流公司物流规则会不一样,总结了一下,大概是除了奶粉以外,剩下的东西可以被打包一起,但是会有物流规则限制,物流规则对不混装包,和混装包裹限制不同。

 

一个订单里的不同商品, 会被物流规则分为不同包裹,快递单会根据系统分好的不同包裹生成不同包裹的快递面单(面单里含商品内容)。

 

物流规则大致分为奶粉和非奶粉,奶粉的物流规则写好了,且不和非奶粉混为一个包裹。

非奶粉的不混装包裹写好了,非奶粉里的H类商品不会受商品单品数量限制

 

以下为设置面板

图片1.png 

 

不混装包裹:除奶粉以外,同一种类的商品在一个包裹里视为不混装包裹。例子:swisse钙片150粒 在商品设置为了F类商品,Swisse鱼油400粒设置为了F类,当同一个包裹里有swisse鱼油400粒,swisse钙片150粒时,包裹里只有F种类的商品,被视为不混装包裹。不混装包裹会被物流规则里的,包裹总价值,包裹总重量,包裹商品总数量,单品数量限制。

 

单品数量:同一个条形码的商品。例子:包裹单品数量上限为5,那么包裹里最多只能放下swisse钙片1505

 

混装包裹:除奶粉以外,不通种类商品在一个包裹里,视为混装。例子:Swisse钙片150粒,在商品被设置为F类商品,Swisse蜂蜜面膜,被设置为H类商品,当他们在一个包裹里的时候,被视为混装。

 

 

现况:商品无法均分,原来写好的物流规则会产生最后一个包裹12件商品,从而导致未满足1kg。原来的物流规则只能判断整个订单里时候是否混装,如果是的话整个订单都会按照混装的要求打包导致包裹数量过多。

 

均分:

因为首重为1kg,原来写好的物流规则会产生最后一个包裹12件商品,从而导致未满足1kg

 

需求:

当订单里出现不同种类的商品时,奶粉走回原来的物流规则,剩下的商品需要满足物流规则的同时尽可能减少包裹数量的同时,商品得到均分,并运用原来的运费结算方式生成运费。

 

 

算法:以下是我想出来的算法可以让包裹进行均分和分包的,如果你们有更好的方法也可以直接用你们的

例子1

假设一个订单里,F30件,G30件,H30件,总价值为600,总重量为6kg

系统混装设置如下:

图片2.png图片3.png

 

通过总数量计算包裹数量:90/8=12

通过总价值计算包裹数量:600/130=5

通过总重量计算包裹数量:6/4=2

通过混装时F类计算包裹数量:30/8=4

通过混装时G类计算包裹数量:30/8=4

通过混装时H类计算包裹数量:30/3=10

 

取以上包裹数量最大值:  12  

So:该订单会被分为12个包裹

 

例子2:  假设一个订单里,同时出现F10, G12,I商品6,JJ商品6件,总价值为200,总重量为6kg

 

图片4.png 

此时混合包裹数量只计算F

 

通过总数量计算包裹数量:22/8=3  (这里排除了I类和J类,因为混装设置了0

通过总价值计算包裹数量:200/130=2   (这里价值排除了I类和J类)

通过总重量计算包裹数量:6/4=2  (这里价值排除了I类和J类)

通过混装时F类计算包裹数量:10/8=2

通过混装时G类计算包裹数量:12/8=2

 

得出混装包裹数量为3,另外I类和J类不混装按单独类型直接均分打包。

我们这里可以在订单一开始先排除混装数量为0的商品,让他们单独一个包裹。

然后再进行判断剩下东西是否混装。

 

 

例子3

假设一个订单里,F10件,G:10件,H30件,总价值为600,总重量为6kg

系统混装设置如下:

图片6.png


 

 

通过总数量计算包裹数量:50/8=7

通过总价值计算包裹数量:600/130=5

通过总重量计算包裹数量:6/4=2

通过混装时F类计算包裹数量:10/8=2

通过混装时G类计算包裹数量:10/8=2

通过混装时H类计算包裹数量:30/3=10

 

 

这个时候,物流种类FGH里最大为10,但是只有一个,我们取第二大值,2为最少混装的包裹数量。

计算所有F类,G类,和最重和最高价值的6H类(这里的62*3得来的)所有加起来的总重量,重价值/混合包裹包裹重量上限,总价值/混合包裹的价值上限,得出来的值对比上面的2,取最大值

 

得出最少单一不混装的包裹数量数量为(30-2*3/5 (这里的5是单一物流时的数量上限)=5    最少5个不混装包裹*单一不混装数量上限是5=25

 

这里的25意味着至少有25件将被分为单一不混装的包裹。

 

计算 最重和最高价值的25 H类重量,价值的总和/H类的上限3.6Kg$120。和5对比取最大值,例子如下:

 

已知H类至少有5个不混装包裹----------------A

通过前25H类总价值计算包裹数量:600/130=5--------B

通过总重量计算包裹数量:6/4=2----------------------C

 

对比ABC取最大值,这个最大值就是最终的不混装包裹数量。

 

那么此时我们先填充单一不混装商品。

 

已知每个包裹最多可以放5H,那么我们统计H类最重的前25

最贵到最便宜分别为H1, H2, H3, H4, H5.......H25

单一包裹1H1, H(5+(5-0)), H(5*2+(5-1)),H(5*3+(5-2)),H(5*4+(5-3))

单一包裹2H2, H(5+(5-1)), H(5*2+(5-2)),H(5*3+(5-3)),H(5*4+(5-4))
单一包裹3H3, H(5+(5-2)), H(5*2+(5-3)),H(5*3+(5-4)),H(5*4+(5-0))
单一包裹4H4, H(5+(5-3)), H(5*2+(5-4)),H(5*3+(5-0)),H(5*4+(5-1))
单一包裹5H5, H(5+(5-4)), H(5*2+(5-0)),H(5*3+(5-1)),H(5*4+(5-2))
然后判定这些分好包裹的价值是否超重量了,如果超重量了,把最接近重量的那个商品排除,放到混装待分类列表里

例如单一包裹总重量为4.3kg,可以得知4.3-4.超过了,0.3kg,那么就在包裹单一包裹里找最接近0.3kg且大于0.3kg的,将它排除,把它放大到混装待分类列表里

 

然后上面判断完再判断这些分好包裹的价值是否超价值上限了,如果超过了价值,把最接近超过部分的价值排除,放到混装列表里

 

H(5+(5-1))  这里的5是因为单一包裹数量为5

 

假设 H(5*2+(5-4))H(5*3+(5-1))是被排除放到混装里的 即为H11,H19

 

,商品剩下
H11,H19   H26,27,28,29,30
F1,2,3,4,5,6,7,8,9,10

G1,2,3,4,5,6,7,8,9,10

 

F10件,G10件,H7件,一共27件,剩下总价值300,重重量2kg

 

 

通过总数量计算包裹数量:27/8=4

通过总价值计算包裹数量:300/130=3

通过总重量计算包裹数量:2/4=1

通过混装时F类计算包裹数量:10/8=2

通过混装时G类计算包裹数量:10/8=2

通过混装时H类计算包裹数量:7/3=3

 

那么在这里取最大值4为混装包裹数量

1最贵,10最便宜

 

那么按照价格,把F分为F0*4+4-3)),F0*4+4-2),F0*4+4-1),F0*4+4-0),,(1*4+4-3)),F1*4+4-2),F1*4+4-1),F1*4+4-0),

G分为(0*4+4-3)),G0*4+4-2),G0*4+4-1),G0*4+4-0),,G1*4+4-3)),G1*4+4-2),G1*4+4-1),G1*4+4-0),
剩下的H 重新从贵到便宜排序H 0*4+4-3)),H0*4+4-2),H0*4+4-1),H0*4+4-0),H1*4+4-3)),H1*4+4-2),H1*4+4-1

 

混装包裹1  F0*4+4-3)),(1*4+4-0)  G0*4+4-3)),(1*4+4-0)

H0*4+4-3)),(1*4+4-0)
混装包裹2  F0*4+4-2)),1*4+4-1),  G0*4+4-2)),1*4+4-1)

H0*4+4-2))
混装包裹3  F0*4+4-1)), 1*4+4-2), G 0*4+4-1)), 1*4+4-2)

H0*4+4-1))
混装包裹4  F0*4+4-0)),1*4+4-3)),G0*4+4-0)),1*4+4-3))

H0*4+4-0)),1*4+4-3))

 

上面的规律是以每四个为一个单位,四个里的最贵,搭配下一轮四个里的倒数第一贵,第二贵搭配倒数第二贵,以此类推

 

分配完后判断每个总重量,价值是否符合,如不符合,混合包裹数量+1,并重新按照上面流程重新分配。

 


上一篇:同城信息小程序
下一篇:员工管理系统
服务电话: 400-066-1318合作邮箱: market@yespmp.comCopyright © 2020 广州云标局网络科技有限公司
在线咨询
联系电话