任务描述
暂无
需求描述

一、背景和价值

   1.背景

       通过接口自动抓取轨迹, 无需登录爬虫工具 ,避免人工遗漏的情况。

   2.价值

      通过接口抓取lazada平台订单轨迹,提高轨迹数据的准确率,确保上网率。

二、需求描述

   2.1. 功能清单

        lazada轨迹API对接

   2.2.影响点

         无

   2.3. 功能描述:

     1.路径:仓储物流管理->包裹物流轨迹查询->轨迹查询
     2. API接口地址&名称:
            ①接口地址:https://open.lazada.com/apps/doc/api?path=%2Flogistic%2Forder%2Ftrace
            ②接口名称:GetOrderTrace
     3.API调用逻辑及界面显示逻辑
        1)轨迹系统>轨迹查询->查询不到的页签,
           ①目前ERP系统根据【客户订单同步规则】自动同步到轨迹系统----------------------------现有逻辑
           ②无任何的轨迹内容信息返回,则认为查询不到-----------------------------现有逻辑
           ③全部调用API接口进行获取轨迹信息,获取回来后进行单独的存储,订单号,轨迹内容,轨迹时间,来源渠道,追踪号,平台类型,发货时间,上网时间,上网信息,状态等重要信息。
        2)轨迹系统>"待上网" 的页签
            ①根据规则设置->自定义上网规则,有任意一条轨迹信息产生,单不包含上网规则时,则认为是待上网


            ②列表界面显示上网时间为北京时间,确保轨迹和列表界面显示一致。(若后台返回是UTC则需要转为北京时间)


        3)轨迹系统>"运输途中" 的页签
            ①根据规则设置->自定义上网规则,若当前订单的内容符合上网规则,则该订单状态就修改为运输途中。 

            ②列表界面显示上网时间为北京时间,确保轨迹和列表界面显示一致。(若后台返回是UTC则需要转为北京时间)


        4)接口调用的时间范围
             ①从订单添加时间近2个月内的所有订单都检索(已上网的除外)
             ②只要获取到上网信息后,则不再进行订单接口的调用,否则都要一直进行调用API接口去获取。(物流人员自行打上妥投的标识)

         
        5)历史数据处理
            ①功能上线后,系统默认获取12月1日到至今的轨迹数据拉取到系统。

           

        6)包裹状态的列显示内容显示如下图(针对lazada和shopee)
              ①当前的逻辑:界面看到的信息都是直接调用51track 的接口进行实时显示的
              ②修改后逻辑:鼠标移上去后如下图
                 A,追踪号:订单对应的追踪号信息
                 B.目的地:中国-XXXXXX   --------------------------发货国家默认为中文,到货国家为对应订单对应的国家
                 C.轨迹发件国家:每条轨迹的产生时间+ 轨迹内容.

 

lazada后台轨迹截图: 订单号:202212310127133982076   轨迹如下图


轨迹系统截图:

验收标准
暂无
历史记录  
  1. 2023-01-03 19:42:41, 由 程伟 创建。
  2. 2023-01-06 09:47:46, 由 程伟 编辑。
    修改了 指派给 ,旧值为 "quqi",新值为 "xieyefu"。
    修改了 任务名称,区别为:
    001- lazada物流轨迹对接-03
    001+ lazada物流轨迹对接-对接接口
    001- lazada物流轨迹对接-03
    001+ lazada物流轨迹对接-对接接口
  3. 2023-01-06 09:47:58, 由 程伟 编辑。
    修改了 任务名称,区别为:
    001- lazada物流轨迹对接-对接接口
    001+ lazada物流轨迹对接-对接API
    001- lazada物流轨迹对接-对接接口
    001+ lazada物流轨迹对接-对接API
  4. 2023-01-06 09:51:34, 由 程伟 编辑。
    修改了 任务名称,区别为:
    001- lazada物流轨迹对接-对接API
    001+ lazada物流轨迹对接-对接API-01
    001- lazada物流轨迹对接-对接API
    001+ lazada物流轨迹对接-对接API-01
  5. 2023-01-06 18:18:38, 由 谢业福 添加备注。

    接口请求参数:

    using Lazop.Api;
    using Lazop.Api.Util;
    using Newtonsoft.Json;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace LazadaV2APIService.Request
    {
        public class GetOrderTraceRequest : LazopRequest
        {
            public GetOrderTraceRequest()
            {
                base.SetApiName(this.ApiName);
                base.SetHttpMethod(this.HttpMethod);
            }
    
            /// <summary>
            /// 接口名称
            /// </summary>
            public string ApiName
            {
                get
                {
                    return "/logistic/order/trace";
                }
            }
    
            /// <summary>
            /// 请求类型
            /// </summary>
            public string HttpMethod
            {
                get
                {
                    return Constants.METHOD_GET;
                }
            }
    
            private string order_id;
            /// <summary>
            /// order id
            /// </summary>
            public string OrderId
            {
                get
                {
                    return this.order_id;
                }
                set
                {
                    this.order_id = value;
                    base.AddApiParameter("order_id", value);
                }
            }
    
    
            private string locale;
            /// <summary>
            /// local
            /// </summary>
            public string Locale
            {
                get
                {
                    return this.locale;
                }
                set
                {
                    this.locale = value;
                    base.AddApiParameter("locale", value);
                }
            }
    
            private List<string> ofcPackageIdList;
    
            /// <summary>
            /// package id list
            /// </summary>
            public List<string> OfcPackageIdList
            {
                get
                {
                    return this.ofcPackageIdList;
                }
                set
                {
                    this.ofcPackageIdList = value;
                    base.AddApiParameter("ofcPackageIdList", JsonConvert.SerializeObject(value));
                }
            }
        }
    }
    
  6. 2023-01-06 18:19:05, 由 谢业福 添加备注。

    接口相应类:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Lazop.Api;
    using Newtonsoft.Json;
    
    
    namespace LazadaV2APIService.Response
    {
        public class GetOrderTraceResponse : LazopResponse
        {
    
            /// <summary>
            /// 接口结果
            /// </summary>
            [JsonProperty("result")]
            public GetOrderTraceResult Result { get; set; }
    
            public class GetOrderTraceResult
            {
                /// <summary>
                ///  Error code
                /// </summary>
                [JsonProperty("error_code")]
                public GetOrderTraceErrorCode ErrorCode { get; set; }
                /// <summary>
                /// Repeated
                /// </summary>
                [JsonProperty("repeated")]
                public bool Repeated { set; get; }
                /// <summary>
                /// Retry
                /// </summary>
                [JsonProperty("retry")]
                public bool Retry { set; get; }
                /// <summary>
                /// Not success
                /// </summary>
                [JsonProperty("not_success")]
                public bool NotSuccess { set; get; }
                /// <summary>
                /// Success
                /// </summary>
                [JsonProperty("success")]
                public bool Success { set; get; }
                /// <summary>
                /// Module
                /// </summary>
                [JsonProperty("module")]
                public List<GetOrderTraceModule> Module { set; get; }
    
            }
    
            public class GetOrderTraceErrorCode
            {
                /// <summary>
                /// displayMessage
                /// </summary>
                [JsonProperty("displayMessage")]
                public string DisplayMessage { set; get; }
            }
    
            public class GetOrderTraceModule
            {
    
                /// <summary>
                /// Warehouse detail info
                /// </summary>
                [JsonProperty("warehouse_detail_info")]
                public string WarehouseDetailInfo { set; get; }
                /// <summary>
                /// ofc order id
                /// </summary>
                [JsonProperty("ofc_order_id")]
                public string OfcOrderId { set; get; }
                /// <summary>
                /// Package detail info list
                /// </summary>
                [JsonProperty("package_detail_info_list")]
                public List<PackageDetailInfoList> PackageDetailInfoList { set; get; }
    
            }
    
            public class PackageDetailInfoList
            {
                /// <summary>
                /// Order line info list
                /// </summary>
                [JsonProperty("order_line_info_list")]
                public string OrderLineInfoList { set; get; }
                /// <summary>
                /// Tracking number
                /// </summary>
                [JsonProperty("tracking_number")]
                public string TrackingNumber { set; get; }
                /// <summary>
                /// ofc package id
                /// </summary>
                [JsonProperty("ofc_package_id")]
                public string OfcPackageId { set; get; }
                /// <summary>
                /// Logistic detail info list
                /// </summary>
                [JsonProperty("logistic_detail_info_list")]
                public List<LogisticDetailInfoList> LogisticDetailInfoList { set; get; }
    
            }
    
            public class LogisticDetailInfoList
            {
                /// <summary>
                /// Package location name
                /// </summary>
                [JsonProperty("package_location_name")]
                public string PackageLocationName { set; get; }
                /// <summary>
                ///Event date
                /// </summary>
                [JsonProperty("event_date")]
                public string EventDate { set; get; }
                /// <summary>
                ///Detail stauts type
                /// </summary>
                [JsonProperty("detail_type")]
                public string DetailType { set; get; }
                /// <summary>
                /// Proof images
                /// </summary>
                [JsonProperty("proof_images")]
                public List<object> ProofImages { set; get; }
                /// <summary>
                ///Receive time
                /// </summary>
                [JsonProperty("receive_time")]
                public string ReceiveTime { set; get; }
                /// <summary>
                ///Status code
                /// </summary>
                [JsonProperty("status_code")]
                public string StatusCode { set; get; }
                /// <summary>
                ///icon
                /// </summary>
                [JsonProperty("icon")]
                public string Icon { set; get; }
                /// <summary>
                ///Event time
                /// </summary>
                [JsonProperty("event_time")]
                public string EventTime { set; get; }
                /// <summary>
                ///Description of status
                /// </summary>
                [JsonProperty("description")]
                public string Description { set; get; }
                /// <summary>
                ///title of status
                /// </summary>
                [JsonProperty("title")]
                public string Title { set; get; }
            }
        }
    }
    
  7. 2023-01-06 18:33:11, 由 谢业福 完成。
    修改了 总计消耗,旧值为 "0",新值为 "8"。
    修改了 实际完成,旧值为 "",新值为 "2023-01-06 18:33:04"。
    修改了 任务状态,旧值为 "wait",新值为 "done"。
    修改了 实际开始,旧值为 "0000-00-00 00:00:00",新值为 "2023-01-06 18:33:11"。
    修改了 预计剩余,旧值为 "8",新值为 "0"。
    修改了 由谁完成,旧值为 "",新值为 "xieyefu"。
  8. 2023-02-01 13:58:56, 由 zhengqiao 关闭。
    修改了 任务状态,旧值为 "done",新值为 "closed"。
    修改了 指派给 ,旧值为 "xieyefu",新值为 "closed"。
    修改了 由谁关闭,旧值为 "",新值为 "zhengqiao"。
    修改了 关闭时间,旧值为 "0000-00-00 00:00:00",新值为 "2023-02-01 13:58:56"。
    修改了 关闭原因,旧值为 "",新值为 "done"。
所属迭代 技术研发中心 1月分支版本(2023年)
所属模块 /
相关需求 lazada物流轨迹对接
指派给 Closed 于 2023-02-01 13:58:56
任务类型 后端
任务标签 初始
开发组
任务状态 已关闭
进度 100%
优先级 P2
关键词
抄送给
由谁创建 程伟 于 2023-01-03 19:42:41
由谁完成 谢业福 于 2023-01-06 18:33:04
由谁取消 暂无
由谁关闭 zhengqiao 于 2023-02-01 13:58:56
关闭原因 已完成
最后编辑 zhengqiao 于 2023-02-01 13:58:56
团队 最初预计 总计消耗 预计剩余
工时信息
最初预计 8工时
总计消耗 8工时
预计剩余 0工时
预计开始 0000-00-00
实际开始 2023-01-06
截止日期 0000-00-00