本发明涉及搜索引擎技术领域,尤其涉及一种电商物流的分箱方法。
背景技术:
物流的概念最早是在美国形成的,起源于20世纪30年代,原意为“实物分配”或“货物配送”。1963年被引入日本,日文意思是“物的流通”。20世纪70年代后,日本的“物流”一词逐渐取代了“物的流通”。
中国的物流术语标准将物流定义为:物流是物品从供应地向接收地的实体流动过程中,根据实际需要,将运输、储存、装卸搬运、包装、流通加工、配送、信息处理等功能有机结合起来实现用户要求的过程。
现有的电商物流,其内部的商品分箱方式较乱,无法快速的根据商品的属性和类别进行分箱。
技术实现要素:
针对现有技术中的不足,本发明的目的是提供一种快速有序的对商品进行分类的电商物流的分箱方法。
本发明解决其技术问题所采用的技术方案是:
一种电商物流的分箱方法,包括以下步骤:
1)建立物流线路,并在物流线路上建立物流线路的商品属性限制一;
2)在建立的物流线路上建立商品类别限制;
3)在建立的物流线路中建立箱子,并建立物流箱子的商品属性限制二;
4)在商品上建立商品类别,以及商品属性;
5)对商品进行预处理,按商品的商品属性对所有商品做升序排序;
6)对物流线路预处理,按优先级对所有物流线路做升序排序;
7)进行装箱操作。
进一步的,在步骤1)中,所述的商品属性限制一包括有重量限制、数量限制、金额限制和混装限制中的一种或多种。
进一步的,在步骤3)中,所述的商品属性限制二包括有重量限制、数量限制、金额限制和混装限制中的一种或多种。
进一步的,当商品属性限制一与商品属性限制二存在重叠部分时,则重叠部分仅采用商品属性限制一,当商品属性限制一与商品属性限制二存在非重叠部分时,则同时采用商品属性限制一和商品属性限制二。
进一步的,所述的装箱操作包括以下步骤:
a1.循环遍历商品数据,获取一个商品;
b1.遍历物流线路,获取一条线路对应的箱子规则,检查该箱子规则是否支持该商品分类;
b2.如果箱子规则不支持该商品分类,重复步骤b1;
b3.如果箱子规则支持该商品分类;
b4.检查当前是否已有箱子;
b5.如果没有箱子,新建一个箱子,直接把当前商品装进箱子,并将该商品对应的规则设置到当前箱子,并计算箱子的重量、商品数量、商品总金额,跳回步骤a1进入下一次循环;
b6.如果有箱子,则进入下一阶段;
c1.遍历已有箱子,获取一个箱子;
c2.根据当前箱子的约束条件和当前商品的分类,检查当前商品是否可以装进该箱子,检查条件包括:
条件1.重量限制,箱子加入该商品后箱子重量是否超出限制;
条件2.数量限制,箱子加入该商品后商品数量是否超出限制;
条件3.金额限制,箱子加入该商品后商品总金额是否超出限制;
条件4.混装限制,如果商品分类与箱子中的商品分类不一致,是否有合适的混合规则可用;
c3.如果该商品符合装箱条件,将商品装入当前箱子,同时计算当前箱子的重量、商品数量、商品总金额、最新的商品规则,遍历箱子操作结束,跳回步骤a1,执行下一次循环;
c4.如果该商品不符合装箱条件,跳回步骤c1,执行下一次循环;
c5.遍历箱子结束,没有合适的箱子,新建一个箱子,直接把当前商品装进箱子,并将该商品对应的规则设置到当前箱子,并计算箱子的重量、商品数量、商品总金额,跳回步骤a1进入下一次循环;
a2.遍历商品数据结束,所有商品已装箱,商品装箱结束,生成装箱结果数据。
本发明的有益效果是:
通过在物流线路上设定商品属性限制和商品类别限制,同时在物流线路的箱子上设定商品属性限制,并对各个商品预设好商品属性和类别,从而在分箱时直接根据商品的类别分入对应的物流线路,接着按照物流线路以及箱子中的对应商品属性限制,将商品按照预设的限制放入箱子中,从而精确快速的完成分箱作业。
具体实施方式
下面结合具体实施例对本发明作进一步说明,以使本领域技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
实施例
一种电商物流的分箱方法,
建立物流线路,每个物流线路都一个对应的物流箱子规则,包含数量限制、重量限制、商品金额限制等条件,每个物流公司可建立多条物流线路;
建立物流线路的商品分类,每个物流线路支持多个商品分类;
建立物流线路的商品分类规则,包含商品分类、数量限制、重量限制、商品金额限制等条件,每个物流线路对应多个分类规则;
为每个商品设置物流线路分类,一个商品可设置不同的物流线路的不同分类;
执行parse_products_categories()解析商品分类数据,并检查指定的物流公司和所有商品中,是否包含该物流公司不支持的商品分类,如果是,返回wp_error,操作结束;
执行wpjam_logisticscategoryconstraint::get_by_package()获取指定物流公司下的物流线线路并按优先级降序排序;
程序执行binninggoods()开始分箱操作;
执行uasort()对商品进行预处理,按照单个商品重量、商品id等规则对所有商品做升序排序;
执行binninggoodsv2()执行具体分箱操作:
a1.遍历商品数据,获取一个商品;
b1.遍历物流线路,根据线路对应的箱子规则,执行wpjam_logisticspackageconstraint::is_support_category()检查当前规则是否支持该商品分类;
b2.如果箱子规则不支持该商品分类,重复步骤b1;
b3.如果箱子规则支持该商品分类;
b4.检查当前是否已有箱子;
b5.如果没有箱子,执行newwpjam_logisticspackage()新建箱子,并且执行binitem()把当前商品装进箱子,箱子自动匹配商品对应的规则,计算箱子的重量、商品数量、商品总金额,跳回步骤a1进入下一次循环;
b6.如果有箱子;
c1.遍历已有箱子,获取一个箱子;
c2.执行shouldbinitem()检查当前商品是否可以装进该箱子,检查条件包括:
条件1.执行issupported()检查混装限制,如果商品分类与箱子中的商品分类不一致,是否有合适的混合规则可用;
条件2.执行if(getweight()>weightlimit)检查箱子加入该商品后箱子重量是否超出限制;
条件3.执行if(getmoney()>moneyliit)检查箱子加入该商品后商品总金额是否超出限制;
条件4.执行getitemcounts()获得箱子商品数量,检查箱子加入该商品后商品数量是否超出限制;
c3.如果该商品符合装箱条件,执行binitem()把当前商品装进箱子,同时计算当前箱子的重量、商品数量、商品总金额、最新的商品规则,遍历箱子操作结束,跳回步骤a1,执行下一次循环;
c4.如果该商品不符合装箱条件,跳回步骤c1,执行下一次循环;
c5.遍历箱子结束,没有合适的箱子,执行newwpjam_logisticspackage()新建一个箱子,并且执行binitem()把当前商品装进箱子,箱子自动匹配商品对应的规则,计算箱子的重量、商品数量、商品总金额,跳回步骤a1进入下一次循环;
a2.遍历商品数据结束,所有商品已装箱,商品装箱结束,生成最终装箱结果数据packages。
本发明的有益效果是:
通过在物流线路上设定商品属性限制和商品类别限制,同时在物流线路的箱子上设定商品属性限制,并对各个商品预设好商品属性和类别,从而在分箱时直接根据商品的类别分入对应的物流线路,接着按照物流线路以及箱子中的对应商品属性限制,将商品按照预设的限制放入箱子中,从而精确快速的完成分箱作业。
本发明的上述实施例并不是对本发明保护范围的限定,本发明的实施方式不限于此,凡此种种根据本发明的上述内容,按照本领域的普通技术知识和惯用手段,在不脱离本发明上述基本技术思想前提下,对本发明上述结构做出的其它多种形式的修改、替换或变更,均应落在本发明的保护范围之内。
1.一种电商物流的分箱方法,其特征在于,包括以下步骤:
1)建立物流线路,并在物流线路上建立物流线路的商品属性限制一;
2)在建立的物流线路上建立商品类别限制;
3)在建立的物流线路中建立箱子,并建立物流箱子的商品属性限制二;
4)在商品上建立商品类别,以及商品属性;
5)对商品进行预处理,按商品的商品属性对所有商品做升序排序;
6)对物流线路预处理,按优先级对所有物流线路做升序排序;
7)进行装箱操作。
2.如权利要求1所述的电商物流的分箱方法,其特征在于:在步骤1)中,所述的商品属性限制一包括有重量限制、数量限制、金额限制和混装限制中的一种或多种。
3.如权利要求2所述的电商物流的分箱方法,其特征在于:在步骤3)中,所述的商品属性限制二包括有重量限制、数量限制、金额限制和混装限制中的一种或多种。
4.如权利要求3所述的电商物流的分箱方法,其特征在于:当商品属性限制一与商品属性限制二存在重叠部分时,则重叠部分仅采用商品属性限制一,当商品属性限制一与商品属性限制二存在非重叠部分时,则同时采用商品属性限制一和商品属性限制二。
5.如权利要求1-4中任一项所述的电商物流的分箱方法,其特征在于,所述的装箱操作包括以下步骤:
a1.循环遍历商品数据,获取一个商品;
b1.遍历物流线路,获取一条线路对应的箱子规则,检查该箱子规则是否支持该商品分类;
b2.如果箱子规则不支持该商品分类,重复步骤b1;
b3.如果箱子规则支持该商品分类;
b4.检查当前是否已有箱子;
b5.如果没有箱子,新建一个箱子,直接把当前商品装进箱子,并将该商品对应的规则设置到当前箱子,并计算箱子的重量、商品数量、商品总金额,跳回步骤a1进入下一次循环;
b6.如果有箱子,则进入下一阶段;
c1.遍历已有箱子,获取一个箱子;
c2.根据当前箱子的约束条件和当前商品的分类,检查当前商品是否可以装进该箱子,检查条件包括:
条件1.重量限制,箱子加入该商品后箱子重量是否超出限制;
条件2.数量限制,箱子加入该商品后商品数量是否超出限制;
条件3.金额限制,箱子加入该商品后商品总金额是否超出限制;
条件4.混装限制,如果商品分类与箱子中的商品分类不一致,是否有合适的混合规则可用;
c3.如果该商品符合装箱条件,将商品装入当前箱子,同时计算当前箱子的重量、商品数量、商品总金额、最新的商品规则,遍历箱子操作结束,跳回步骤a1,执行下一次循环;
c4.如果该商品不符合装箱条件,跳回步骤c1,执行下一次循环;
c5.遍历箱子结束,没有合适的箱子,新建一个箱子,直接把当前商品装进箱子,并将该商品对应的规则设置到当前箱子,并计算箱子的重量、商品数量、商品总金额,跳回步骤a1进入下一次循环;
a2.遍历商品数据结束,所有商品已装箱,商品装箱结束,生成装箱结果数据。
技术总结