任务描述
暂无
需求描述

1.    需求概述

1.1. 背景

新平台shopline对接

2. 来源渠道授权

2.1 需求说明

OAuth2.0认证,认证前需要申请开发者和应用,开发者账号由市场部进行跟进申请


发起授权


path:/admin/oauth-web/#/oauth/authorize

method:GET


授权流程:


  • 弹出平台登录页面,输入店铺账号密码,点击确认;
  • 账号校验,校验成功确定是否授权;
  • 确认后授权成功,获取回调信息;


3. 订单下载

3.1 需求说明

请求订单信息,根据条件查询订单列表和详细信息;

方法名:orders.json

请求链接:https://{店铺handle}.myshopline.com/admin/openapi/v20210901/orders.json

4. 订单状态更新

4.1 需求说明


4.2 原型页面




5. 平台运输方式管理

5.1 需求说明

在平台运输方式管理界面中维护以下信息:


  • 物流追踪URL

5.2 原型页面


6. 平台标记发货规则

6.1 需求说明


操作位置:销售管理->通用订单设置->平台标记发货规则->设置->添加特殊规则

满足标发条件后,只显示【上传真实追踪号】和【自动标记发货_ERP不操作】两个选项


6.2 原型页面



验收标准

API文档地址:https://shopline.yuque.com/docs/share/b6511e05-b6a3-42f3-916e-38facd89c3ed?#

测试店铺:
买家链接:https://apitestshop001.myshopline.com/
卖家链接:https://admin.myshopline.com/user/signIn
账号:openapi_v2@shoplineapp.com
密码:Shopline2021

历史记录  
  1. 2021-10-18 10:50:50, 由 maojinqiang 创建。
  2. 2021-10-18 11:21:05, 由 maojinqiang 编辑。
    修改了 相关需求,旧值为 "0",新值为 "9736"。
    修改了 需求版本,旧值为 "1",新值为 "7"。
  3. 2021-10-22 16:32:51, 由 maojinqiang 编辑。
    修改了 所属模块,旧值为 "0",新值为 "1572"。
    修改了 相关需求,旧值为 "9736",新值为 "0"。
  4. 2021-10-22 16:32:59, 由 maojinqiang 编辑。
    修改了 相关需求,旧值为 "0",新值为 "9736"。
  5. 2021-10-22 16:36:26, 由 maojinqiang 指派给 fangdahua。
    修改了 指派给,旧值为 "",新值为 "fangdahua"。
  6. 2021-10-26 16:18:41, 由 fangdahua 添加备注。

    新销售平台新增表结构脚本


    CREATE TABLE `rb_shopline_orderinfo` (
      `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
      `CustomerID` int(11) NOT NULL COMMENT '商户号',
      `OrderSourceID` int(11) NOT NULL COMMENT '来源渠道',
      `OrderID` varchar(50) NOT NULL COMMENT '平台单号',
      `IsProcess` bit(1) NOT NULL COMMENT '是否处理',
      `ProcessTime` datetime DEFAULT NULL COMMENT '处理时间',
      `LastModificationTimeTimestamp` bigint(20) NOT NULL COMMENT '时间戳',
      `StoreId` varchar(100) DEFAULT NULL COMMENT '店铺id',
      `BillingAddressAddress1` varchar(250) DEFAULT NULL COMMENT '账单地址:详细地址1',
      `BillingAddressAddress2` varchar(250) DEFAULT NULL COMMENT '账单地址:详细地址2,备选',
      `BillingAddressCity` varchar(100) DEFAULT NULL COMMENT '账单地址:城市',
      `BillingAddressCountry` varchar(100) DEFAULT NULL COMMENT '账单地址:国家',
      `BillingAddressCountryCode` varchar(100) DEFAULT NULL COMMENT '账单地址:国家码',
      `BillingAddressFirstName` varchar(100) DEFAULT NULL COMMENT '账单地址:姓',
      `BillingAddressLastName` varchar(100) DEFAULT NULL COMMENT '账单地址:名',
      `BillingAddressName` varchar(150) DEFAULT NULL COMMENT '账单地址:全名',
      `BillingAddressPhone` varchar(100) DEFAULT NULL COMMENT '账单地址:电话',
      `BillingAddressProvince` varchar(100) DEFAULT NULL COMMENT '账单地址:省份',
      `BillingAddressProvinceCode` varchar(100) DEFAULT NULL COMMENT '账单地址:省份码',
      `BillingAddressProvinceZip` varchar(100) DEFAULT NULL COMMENT '账单地址:邮编',
      `BrowserIp` varchar(50) DEFAULT NULL COMMENT '客户端ip',
      `CancelReason` varchar(1000) DEFAULT NULL COMMENT '卖家取消原因',
      `CancelledAt` varchar(50) DEFAULT NULL COMMENT '订单取消时间(结束)',
      `ClientDetails` text COMMENT '客户端详细信息',
      `CreatedAt` varchar(50) DEFAULT NULL COMMENT '订单创建时间',
      `Currency` varchar(50) DEFAULT NULL COMMENT '交易币种',
      `CurrentTotalDiscounts` decimal(18,4) DEFAULT NULL COMMENT '折扣总和',
      `CurrentTotalDiscountsSet` text COMMENT '折扣总和多币种信息,没有多币种,所以买卖家币种和金额一致',
      `CurrentTotalPrice` decimal(18,4) DEFAULT NULL COMMENT '当前订单总额',
      `CurrentTotalPriceSet` text COMMENT '当前订单总额多币种信息,买卖家币种和金额一致',
      `CurrentSubtotalPrice` decimal(18,4) DEFAULT NULL COMMENT '当前商品总和',
      `CurrentSubtotalPriceSet` text COMMENT '当前商品总和多币种信息,买卖家币种和金额一致',
      `CurrentTotalTax` decimal(18,4) DEFAULT NULL COMMENT '税费总和',
      `CurrentTotalTaxSet` text COMMENT '税费总和多币种信息,买卖家币种和金额一致',
      `Customer` text COMMENT '买家信息',
      `CustomerLocale` varchar(100) DEFAULT NULL COMMENT '买家国家 语种编码+国家名称缩写',
      `DiscountCodes` text COMMENT '优惠码信息',
      `Email` varchar(150) DEFAULT NULL COMMENT '买家邮箱',
      `Phone` varchar(100) DEFAULT NULL COMMENT '买家联系方式',
      `FinancialStatus` varchar(50) DEFAULT NULL COMMENT '支付状态',
      `FulfillmentStatus` varchar(50) DEFAULT NULL COMMENT '发货状态',
      `Fulfillments` text COMMENT '包裹信息',
      `OrderName` varchar(100) DEFAULT NULL COMMENT '自定义单号(会变化)',
      `Note` varchar(2000) DEFAULT NULL COMMENT '商家备注内容,多个以逗号分隔',
      `NoteAttributes` text COMMENT '商家备注日志,日期内容',
      `PaymentGatewayNames` varchar(200) DEFAULT NULL COMMENT '付款方式列表,该订单所用到的付款方式列表',
      `PresentmentCurrency` varchar(50) DEFAULT NULL COMMENT '买家侧币种',
      `Refunds` text COMMENT '退款列表',
      `ShippingAddressAddress1` varchar(250) DEFAULT NULL COMMENT '收货地址:详细地址1',
      `ShippingAddressAddress2` varchar(250) DEFAULT NULL COMMENT '收货地址:详细地址2',
      `ShippingAddressCity` varchar(100) DEFAULT NULL COMMENT '收货地址:城市',
      `ShippingAddressCountry` varchar(100) DEFAULT NULL COMMENT '收货地址:国家',
      `ShippingAddressCountryCode` varchar(100) DEFAULT NULL COMMENT '收货地址:国家码',
      `ShippingAddressFirstName` varchar(100) DEFAULT NULL COMMENT '收货地址:姓',
      `ShippingAddressLastName` varchar(100) DEFAULT NULL COMMENT '收货地址:名',
      `ShippingAddressName` varchar(150) DEFAULT NULL COMMENT '收货地址:全名',
      `ShippingAddressPhone` varchar(100) DEFAULT NULL COMMENT '收货地址:电话',
      `ShippingAddressProvince` varchar(100) DEFAULT NULL COMMENT '收货地址:省份',
      `ShippingAddressProvinceCode` varchar(100) DEFAULT NULL COMMENT '收货地址:省份码',
      `ShippingAddressZip` varchar(100) DEFAULT NULL COMMENT '收货地址:邮编',
      `ShippingLines` text COMMENT '物流信息',
      `SubtotalPrice` decimal(18,4) DEFAULT NULL COMMENT '商品折后价总和',
      `SubtotalPriceSet` text COMMENT '商品折后价总和多币种信息',
      `Tags` varchar(300) DEFAULT NULL COMMENT '订单标签',
      `TaxLines` text COMMENT '税费',
      `TaxesIncluded` bit(1) DEFAULT NULL COMMENT '总计额是否包含税额',
      `TotalDiscounts` decimal(18,4) DEFAULT NULL COMMENT '折扣总额',
      `TotalDiscountsSet` text COMMENT '折扣总额多币种信息',
      `TotalLineItemsPrice` decimal(18,4) DEFAULT NULL COMMENT '商品原价总和',
      `TotalLineItemsPriceSet` text COMMENT '商品原价总和,多币种信息',
      `TotalOutstanding` decimal(18,4) DEFAULT NULL COMMENT '未付款金额总和',
      `TotalShippingPriceSet` text COMMENT '订单运费总和,多币种信息',
      `TotalTax` decimal(18,4) DEFAULT NULL COMMENT '税费总和',
      `TotalTaxSet` text COMMENT '税费总和,多币种信息',
      `TotalTipReceived` decimal(18,4) DEFAULT NULL COMMENT '小费',
      `TotalWeight` decimal(18,4) DEFAULT NULL COMMENT '商品总重量(g)',
      `UpdatedAt` varchar(50) DEFAULT NULL COMMENT '订单更新时间',
      `UserId` varchar(100) DEFAULT NULL COMMENT '买家id',
      `OrderStatusUrl` varchar(300) DEFAULT NULL COMMENT '订单状态页url',
      `TaxNumber` varchar(200) DEFAULT NULL COMMENT '税号',
      `TaxType` varchar(100) DEFAULT NULL COMMENT '税号类型',
      `PaymentDetails` text COMMENT '支付单信息',
      `CreatorId` int(11) DEFAULT NULL COMMENT '创建人ID',
      `Creator` varchar(50) DEFAULT NULL COMMENT '创建人',
      `CreationTime` datetime DEFAULT NULL COMMENT '创建时间',
      `LastModifierId` int(11) DEFAULT NULL COMMENT '修改人ID',
      `LastModifier` varchar(50) DEFAULT NULL COMMENT '修改人',
      `LastModificationTime` datetime DEFAULT NULL COMMENT '修改时间',
      PRIMARY KEY (`Id`),
      UNIQUE KEY `UNIQUE_customerid_ordersourceid_orderid` (`CustomerID`,`OrderSourceID`,`OrderID`),
      KEY `isprocess_lastModificationTime` (`IsProcess`,`LastModificationTime`),
      KEY `customerid_ordersourceid_orderid` (`CustomerID`,`OrderSourceID`,`OrderID`)
    ) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4;



    CREATE TABLE `rb_shopline_orderlist` (
      `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
      `CustomerID` int(11) NOT NULL COMMENT '商户号',
      `OrderSourceID` int(11) NOT NULL COMMENT '来源渠道',
      `OrderID` varchar(100) NOT NULL COMMENT '平台单号',
      `ProductOrderID` varchar(100) DEFAULT NULL COMMENT '商品快照表的id,系统生成,与订单号唯一确认一个商品',
      `FulfillableQuantity` int(11) DEFAULT NULL COMMENT '可发货数量',
      `FulfillmentService` varchar(500) DEFAULT NULL COMMENT '物流商名称,如果一种商品有多个不同的发货服务商,则以逗号分隔',
      `FulfillmentStatus` varchar(100) DEFAULT NULL COMMENT '商品的发货状态',
      `Grams` decimal(18,4) DEFAULT NULL COMMENT '重量(克)',
      `Price` decimal(18,4) DEFAULT NULL COMMENT '商品售价',
      `ProductId` varchar(100) DEFAULT NULL COMMENT 'spu序列号',
      `Quantity` int(11) DEFAULT NULL COMMENT '订单中的商品数量',
      `RequiresShipping` bit(1) DEFAULT NULL COMMENT '是否需要发货',
      `Sku` varchar(100) DEFAULT NULL COMMENT '商品码',
      `Title` varchar(300) DEFAULT NULL COMMENT '商品标题',
      `VariantId` varchar(100) DEFAULT NULL COMMENT '商品sku序列号',
      `VariantTitle` varchar(500) DEFAULT NULL COMMENT '商品属性值',
      `Vendor` varchar(200) DEFAULT NULL COMMENT '供应商',
      `Name` varchar(300) DEFAULT NULL COMMENT 'sku标题 与title保持一致',
      `Taxable` bit(1) DEFAULT NULL COMMENT '是否收税',
      `TaxLines` text COMMENT '税费信息',
      `CreatorId` int(11) DEFAULT NULL COMMENT '创建人ID',
      `Creator` varchar(50) DEFAULT NULL COMMENT '创建人',
      `CreationTime` datetime DEFAULT NULL COMMENT '创建时间',
      `LastModifierId` int(11) DEFAULT NULL COMMENT '修改人ID',
      `LastModifier` varchar(50) DEFAULT NULL COMMENT '修改人',
      `LastModificationTime` datetime DEFAULT NULL COMMENT '修改时间',
      PRIMARY KEY (`Id`),
      KEY `IX_CustomerID_OrderSourceID_OrderID` (`CustomerID`,`OrderSourceID`,`OrderID`)
    ) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8mb4;

  7. 2021-10-26 16:29:26, 由 fangdahua 添加备注。



    新销售平台订单下载、订单标记服务执行脚本:(上线之前由毛金强配置即可)


     INSERT INTO `schedule` (jobname, jobgroup,jobstatus,cron,assemblyname,classname,remark,runtimes,begintime,endtime,triggertype,intervalsecond,url,createtime,updatetime,valid)
    VALUES('ShopLineOrderDownloadForInsertTaskJob','sale',1,'0 0/1 * * * ?','IrobotBox.Sale.Tasks.Async','IrobotBox.Sale.Tasks.Async.Tasks.ShopLine.ShopLineOrderDownloadForInsertTaskJob',
    '',0,'2021-03-04 17:33:27','2030-08-14 17:03:47',1,0,NULL,'2021-03-04 17:33:27','2021-03-04 17:33:27',1);

    INSERT INTO `schedule` (jobname, jobgroup,jobstatus,cron,assemblyname,classname,remark,runtimes,begintime,endtime,triggertype,intervalsecond,url,createtime,updatetime,valid)
    VALUES('ShopLineOrderDownloadForSendMqMessageJob','sale',1,'0 0/1 * * * ?','IrobotBox.Sale.Tasks.Async','IrobotBox.Sale.Tasks.Async.Tasks.ShopLine.ShopLineOrderDownloadForSendMqMessageJob',
    '',0,'2021-03-04 17:33:27','2030-08-14 17:03:47',1,0,NULL,'2021-03-04 17:33:27','2021-03-04 17:33:27',1);

    INSERT INTO `schedule` (jobname, jobgroup,jobstatus,cron,assemblyname,classname,remark,runtimes,begintime,endtime,triggertype,intervalsecond,url,createtime,updatetime,valid)
    VALUES('ShopLineOrderMarkeDeliveryForSendMqMessageJob','sale',1,'0 0/1 * * * ?','IrobotBox.Sale.Tasks.Async','IrobotBox.Sale.Tasks.Async.Tasks.ShopLine.ShopLineOrderMarkeDeliveryForSendMqMessageJob',
    '',0,'2021-03-04 17:33:27','2030-08-14 17:03:47',1,0,NULL,'2021-03-04 17:33:27','2021-03-04 17:33:27',1);


  8. 2021-10-26 16:40:43, 由 fangdahua 添加备注。

    订单下载规则


    获取接口规则

    1.初次授权,获取接口最近5天内,所有状态(Status=any)且发货状态为未发货(FulfillmentStatus=unshipped)的订单。

    2.非初次授权,按队列时间范围内获取接口所有状态(Status=any)的订单,每隔6小时获取接口最近1天内所有状态(Status=any)的订单。


    拉取到系统的规则

    1.新订单。如已取消,已退款refunded、已部分退款partially_refunded、已发货fulfilled、已部分发货partial订单不同步。

    2.已存在订单。取消时间CancelledAt && 支付状态FinancialStatus && 发货状态FulfillmentStatus && Name自定义单号发生变更则更新中间表数据


  9. 2021-10-26 19:07:13, 由 fangdahua 添加备注。

    中间表映射

    ERP ==》 中间表
    订单维度
    1.平台单号ClientOrderCode =》OrderID
    2.买家单号SellerOrderId =》OrderName
    3.ClientUserAccount =》StoreId
    4.税号PromotionIdAll =》TaxNumber
    5.发货状态OrderState=》默认未发货,如fulfillmentstatus=fulfilled则全部发货,fulfillmentstatus=partial则部分发货
    6.订单状态OrderStatus=》默认正常,如financialstatus=refunded则作废,如financialstatus为partially_refunded、pending、partially_paid则待审核
    7.标记发货状态MarkDeliveryState=》默认等待处理,如fulfillmentstatus=fulfilled则标记成功,fulfillmentstatus=partial则继续标记
    8.币种Currency=》Currency
    9.是否支付IsPay=》默认未支付,如financialstatus为paid、partially_refunded为已支付
    10.支付时间PayTime=》CreatedAt
    11.订单金额TotalPrice=》CurrentTotalPrice
    12.订单运费TransportPay=》totalShippingPriceSet节点下ShopMoney.Amount值
    13.如果中间表PaymentGatewayNames值含有codPay,则添加订单问题日志和备注,内容:此订单为COD货到付款订单,请留意!
    支付状态为【货到付款】,IsPay为已支付
    14.Email =》Email
    15.FirstName =》ShippingAddressFirstName
    16.LastName =》 ShippingAddressLastName
    17.Country =》 ShippingAddressCountryCode
    18.Province =》ShippingAddressProvince
    19.City =》ShippingAddressCity
    20.PostCode =》ShippingAddressZip
    21.Telephone =》ShippingAddressPhone
    22.Address1,Address2 =》ShippingAddressAddress1,ShippingAddressAddress2
    23.如中间表Note不为空,则追加订单备注内容
    24.如中间表CancelledAt不为空或CancelReason不为空,则添加订单日志问题和备注,内容:检测到平台订单取消-取消原因:{xxx},订单状态待审核
    25.如中间表Refunds不为空,且是按正常接口json格式,则添加订单日志问题和备注,内容:检测到平台订单有退款,订单状态待审核
    26.订单产品金额ProductTotalPrice=》该订单产品维度下Quantity*Price之和
    产品维度
    1.渠道SellerSKU=》Sku
    2.OrderItemId=》ProductId
    3.ASIN=》ProductOrderID
    4.ItemTitle=》Title
    5.ProductNum=》Quantity
    6.ProductPrice=》Price
    7.Marks=》VariantTitle

  10. 2021-10-27 14:13:57, 由 fangdahua 完成。
    修改了 总计消耗,旧值为 "0",新值为 "12"。
    修改了 指派给 ,旧值为 "fangdahua",新值为 "maojinqiang"。
    修改了 实际完成,旧值为 "",新值为 "2021-10-27 14:09:59"。
    修改了 任务状态,旧值为 "wait",新值为 "done"。
    修改了 实际开始,旧值为 "0000-00-00 00:00:00",新值为 "2021-10-27 14:13:57"。
    修改了 预计剩余,旧值为 "12",新值为 "0"。
    修改了 由谁完成,旧值为 "",新值为 "fangdahua"。

    自测截图


    订单下载到中间表


    执行中间表 关键数据映射对比



    备注,cod等逻辑

  11. 2021-11-02 21:54:16, 由 maojinqiang 关闭。
    修改了 任务状态,旧值为 "done",新值为 "closed"。
    修改了 指派给 ,旧值为 "maojinqiang",新值为 "closed"。
    修改了 由谁关闭,旧值为 "",新值为 "maojinqiang"。
    修改了 关闭时间,旧值为 "0000-00-00 00:00:00",新值为 "2021-11-02 21:54:16"。
    修改了 关闭原因,旧值为 "",新值为 "done"。
  12. 2021-11-08 15:56:21, 由 田子豪 确认需求变动,最新版本为#8。
所属迭代 【主干】产品中心11月第一个版本(2021年)
所属模块 赛盒科技  赛盒ERP管理系统   物流发货组
相关需求 【订单&物流】新平台-shopline对接
指派给 Closed 于 2021-11-02 21:54:16
任务类型 后端
任务标签 初始
开发组
任务状态 已关闭
进度 100%
优先级 P2
关键词
抄送给
由谁创建 maojinqiang 于 2021-10-18 10:50:50
由谁完成 fangdahua 于 2021-10-27 14:09:59
由谁取消 暂无
由谁关闭 maojinqiang 于 2021-11-02 21:54:16
关闭原因 已完成
最后编辑 maojinqiang 于 2021-11-02 21:54:16
团队 最初预计 总计消耗 预计剩余
工时信息
最初预计 12工时
总计消耗 12工时
预计剩余 0工时
预计开始 0000-00-00
实际开始 2021-10-27
截止日期 0000-00-00