文西西专属
Go to file
Wenxixi c699ca5f79 规范美国英国订单物流费计算函数 2025-06-17 18:44:31 +08:00
.vscode wxq 2025-06-17 13:40:20 +08:00
data wxq 2025-06-17 13:40:20 +08:00
logisticsClass wxq 2025-06-17 13:40:20 +08:00
sell 规范美国英国订单物流费计算函数 2025-06-17 18:44:31 +08:00
utils wxq 2025-06-17 13:40:20 +08:00
拦截数据 wxq 2025-06-17 13:40:20 +08:00
.gitattributes wxq 2025-06-17 13:40:20 +08:00
.gitignore wxq 2025-06-17 13:40:20 +08:00
5-10月美国账单预测.ipynb wxq 2025-06-17 13:40:20 +08:00
__init__.py wxq 2025-06-17 13:40:20 +08:00
cal_sell_price.ipynb wxq 2025-06-17 13:40:20 +08:00
change_price.ipynb wxq 2025-06-17 13:40:20 +08:00
login_for_cookie.py wxq 2025-06-17 13:40:20 +08:00
product_property_data.xlsx wxq 2025-06-17 13:40:20 +08:00
readme.md wxq 2025-06-17 13:40:20 +08:00
test.ipynb wxq 2025-06-17 13:40:20 +08:00
~$单包裹SKU售价分析1.xlsx wxq 2025-06-17 13:40:20 +08:00
~$表头更新方案.xlsx wxq 2025-06-17 13:40:20 +08:00
一票一件订单.ipynb wxq 2025-06-17 13:40:20 +08:00
产品上限优化.ipynb wxq 2025-06-17 13:40:20 +08:00
单包裹SKU售价分析.xlsx wxq 2025-06-17 13:40:20 +08:00
单包裹SKU售价分析1.xlsx wxq 2025-06-17 13:40:20 +08:00
取订单标准物流费.ipynb wxq 2025-06-17 13:40:20 +08:00
售价模型审核.ipynb wxq 2025-06-17 13:40:20 +08:00
售价模型计算.ipynb wxq 2025-06-17 13:40:20 +08:00
拦截订单详细数据.ipynb wxq 2025-06-17 13:40:20 +08:00
改SPU尺寸.ipynb wxq 2025-06-17 13:40:20 +08:00
物流渠道测算.ipynb wxq 2025-06-17 13:40:20 +08:00
自动化跟单.ipynb wxq 2025-06-17 13:40:20 +08:00
自动化跟单11.ipynb wxq 2025-06-17 13:40:20 +08:00
订单拦截总数据.py wxq 2025-06-17 13:40:20 +08:00
账单预测.ipynb wxq 2025-06-17 13:40:20 +08:00
退款订单登记表.ipynb wxq 2025-06-17 13:40:20 +08:00

readme.md

物流模块介绍

数据模块

数据存放地,部分物流的价格表和部分国家的邮编

物流实现类

美国,英国,澳洲,欧洲部分国家(德国,法国)

工具模块

新增物流渠道流程

1. 新增头程,继承自HeadLogistics

1.1 类属性(*必填)

*company: str                # 物流公司名称
*country_code: list[str]     # 国家代码若只有一个国家用str即可
*country: list[str]          # 国家全名若只有一个国家用str即可

logistics_type = LogisticsType.OCEAN    # 运输方式,空运|海运,默认海运 
currency = 'CNY'                        # 货币类型,默认人民币
port: PortType = PortType.DEFAULT       # 到达港口,东南西北,默认港口
active: bool = True                     # 物流状态,默认启用

1.2 实例属性(*必填)

*head_ratio: int  # 它*6000体积重为头程费用

1.3 样例代码

class AirLAXLogistics_US(HeadLogistics):
    """美国空运LAX"""
    company = "空LAX"  
    country_code = "US"
    country = "United States"
    logistics_type = LogisticsType.AIR  
    def __init__(self):
        super().__init__()
        self.head_ratio = 40

2.新增尾端,继承自TailLogistics

2.1 类属性(*必填)

    *company: str          # 物流公司名称
    *country_code: str     # 国家代码
    *country: str          # 国家全名

    logistics_type = LogisticsType.EXPRESS  # 运输方式,快递|卡派,默认快递
    currency:str = 'USD'                    # 货币类型,默认美元
    port: PortType = PortType.DEFAULT       # 到达港口,东南西北,默认港口
    active: bool = True                     # 物流状态,默认启用

2.2 实例属性(*必填)

    由各渠道情况自行定义实际物流实现类属性,如:
    self.oversize_fee: float  # 超尺寸费
    self.remote_fee: float    # 偏远费
    self.fuel_rate: float     # 燃油费率

2.3 样例代码

    class Logistics_UK(TailLogistics):
        company = '智谷'
        country_code = 'UK'
        country = 'United Kingdom'
        currency = 'GBP'
        def __init__(self):
            super().__init__()
            self.base_fee = 3.7
            self.oversize = 26
            self.fuel_rate = 0.2 # BT开头的有20%燃油费
            self.remote_fee = 35

        # 必须实现的接口方法
        def calculate_fee(self, packages, postcode):
            detail_amount = {
                "base":0.00,
                "oversize":0.00,
                "remote":0.00,
                "fuel":0.00,
                "total_amount":0.00
            }
            ***
            ***
            return detail_amount

账单输出流程

  1. 实例化国家类/操作类,传入国家或国家代码

    opCountry = OperateCountry('UK')
    
  2. 实例化账单工厂,初始为空

     billFactory = BillFactory()
     # 该工厂可以对所有账单进行统一管理,包括:
     billFactory.create_bill(id,opCountry,packages,postcode,company_name,head_type,beizhu)  # 创建账单
     billFactory.add_bill(bill)  # 添加账单
     billFactory.get_bills()     # 输出全部账单
     billFactory.get_bill(id)    # 输出指定账单id为账单ID
     billFactory.bills_to_df()   # 输出全部账单到DataFrame格式
    
  3. 实例化账单类

     bill = Billing(id,operator,packages,postcode,**kwargs)
     # 账单传参属性(*必填)
     *self.id:str = id
     *self.operator:OperateCountry = opCountry
     *self.packages:Package_group = packages
     *self.postcode:str = postcode
    
     self.company_name = kwargs.get('company_name', None)
     self.head_type = kwargs.get('head_type', 1)
     self.beizhu = kwargs.get('beizhu', None)
    
  4. 账单传参属性(*必填)

     *opCountry = OperateCountry("US") # 实例化国家类/操作类
     填写范围US~UK~AU~JP~DE~CA~FR~SP~IT
    
     *bill = Billing(id,operator,packages,postcode,**kwargs) 
     *id = "xxx" # str, 账单ID
     *operator = opCountry # 国家类/操作类
     *packages = Package_group() # Package_group, 包裹组
     *postcode = "xxx" # str, 邮编
    
     company_name = "xxx" # str, 物流公司名称(不填则默认获取最小账单费用)
     填写范围operator.companies
     head_type = 1 # int, 头程类型1-海运0-空运
     beizhu = "xxx" # str, 备注信息