1. 需求概述
1.1. 背景
新平台,阿里巴巴国际站对接
2. 功能设计
2.1. 来源渠道授权
2.1.1 需求说明
国际站使用OAuth2.0标准协议作为用户身份验证与授权协议,流程如下:
1、点击授权按钮,弹出国际站登录界面;
2、用户输入用户名和密码,点击登录,进入授权页面;
3、点击授权,即可授权成功


2.2. 订单下载
2.2.1 需求说明
获取订单列表
方法:alibaba.seller.order.list
接口地址:https://open.taobao.com/api.htm?docId=41047&docType=2&scopeId=15989
获取订单详情
方法:alibaba.seller.order.get
接口地址:https://developer.alibaba.com/doc.htm?spm=0.0.0.0.o1YyAq#?treeId=450&platformId=62&docType=2&docId=41148
请求以下类型的订单:
状态:undeliver(待卖家发货)
费用相关:
这里和方达华确认下,如果接口既可以通过订单下载时间同步,也可以根据订单修改时间同步,那订单下载是以下哪种逻辑:
1、首次下载和更新都通过订单更新时间同步;
2、首次下载通过下单时间同步,更新通过更新时间同步;
2.3. 订单更新
2.3.1 需求说明
获取订单列表
方法:alibaba.seller.order.list
接口地址:https://open.taobao.com/api.htm?docId=41047&docType=2&scopeId=15989
获取订单详情
获取订单详情
方法:alibaba.seller.order.get
接口地址:https://developer.alibaba.com/doc.htm?spm=0.0.0.0.o1YyAq#?treeId=450&platformId=62&docType=2&docId=41148
更新订单使用服务进行请求,通过订单修改时间获取,当检测到订单状态改变时,重新同步订单信息
2.4. 平台运输方式管理
2.4.1 需求说明
获取承运商列表接口
方法:alibaba.seller.order.shipping.channels
接口地址:https://developer.alibaba.com/doc.htm?spm=0.0.0.0.o1YyAq#?treeId=450&platformId=62&docType=2&docId=47280
请求接口后,分别保存物流商code和type

2.5. 平台标记发货规则
2.5.1 需求说明
操作位置:销售管理->通用订单设置->平台标记发货规则->设置->添加特殊规则
满足标发条件后,只显示【上传真实追踪号】和【自动标记发货_ERP不操作】两个选项
标记发货
方法:alibaba.seller.order.shipping
接口地址:https://developer.alibaba.com/doc.htm?spm=0.0.0.0.o1YyAq#?treeId=450&platformId=62&docType=2&docId=47112
通过获取承运商接口返回的code和type,以及追踪号进行标发

阿里巴巴国际站订单同步
获取接口规则 (平台后台显示的是北美太平洋时间,距离北京时间16h左右时差)
1.初次授权,获取最近5天内,订单状态为【undeliver】未发货的订单
2.每隔6小时同步最近2天内订单
同步到ERP规则
1.新订单,只同步订单状态是未发货订单【undeliver】
2.已存在订单,如果平台订单状态发生变化则更新
新增表结构创建脚本:
CREATE TABLE IF NOT EXISTS `rb_alibabainternational_orderinfo` (
`Id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`CustomerID` int(11) NOT NULL COMMENT '商户号',
`OrderSourceID` int(11) NOT NULL COMMENT '来源渠道',
`TradeId` varchar(50) NOT NULL COMMENT '平台单号',
`IsProcess` bit(1) NOT NULL COMMENT '是否处理',
`ProcessTime` datetime DEFAULT NULL COMMENT '处理时间',
`LastModificationTimeTimestamp` bigint(20) NOT NULL COMMENT '时间戳',
`BuyerCountry` varchar(50) DEFAULT NULL COMMENT '买家信息-国家',
`BuyerFullName` varchar(200) DEFAULT NULL COMMENT '买家信息-全名',
`BuyerEaccountid` varchar(100) DEFAULT NULL COMMENT '买家信息-加密accountId',
`BuyerImmutableEid` varchar(100) DEFAULT NULL COMMENT '买家信息-同一买家账号不变的加密id',
`CreateDateFormatdate` varchar(50) DEFAULT NULL COMMENT '订单创建时间-格式化后的时间',
`CreateDateTimestamp` bigint(20) DEFAULT NULL COMMENT '订单创建时间-时间戳',
`ExportServiceType` varchar(200) DEFAULT NULL COMMENT '出口方式(一达通出口onetouch_service,非一达通出口self_run_service)',
`InspectionServiceAmount` decimal(18,4) DEFAULT NULL COMMENT '验货费',
`InspectionServiceAmountCurrency` varchar(20) DEFAULT NULL COMMENT '验货费币种',
`ProductTotalAmount` decimal(18,4) DEFAULT NULL COMMENT '产品总价',
`ProductTotalAmountCurrency` varchar(20) DEFAULT NULL COMMENT '产品总价币种',
`Remark` varchar(1000) DEFAULT NULL COMMENT '订单备注',
`SellerFullName` varchar(200) DEFAULT NULL COMMENT '卖家信息-全名',
`SellerLoginId` varchar(100) DEFAULT NULL COMMENT '卖家信息-登录账号',
`SellerIsAdmin` bit(1) DEFAULT NULL COMMENT '卖家信息-是否是主账号',
`SellerEmail` varchar(100) DEFAULT NULL COMMENT '卖家信息-卖家邮箱',
`SellerEaccountId` varchar(100) DEFAULT NULL COMMENT '卖家信息-加密accountId',
`SellerImmutableEid` varchar(100) DEFAULT NULL COMMENT '卖家信息-同一卖家账号不变的加密id',
`ShipmentFeeAmount` decimal(18,4) DEFAULT NULL COMMENT '运费',
`ShipmentFeeCurrency` varchar(20) DEFAULT NULL COMMENT '运费币种',
`ShipmentMethod` varchar(100) DEFAULT NULL COMMENT '运输方式 the shipment method',
`ShippingAddressAddress` varchar(400) DEFAULT NULL COMMENT '收货地址-具体地址',
`ShippingAddressAlternateAddress` varchar(400) DEFAULT NULL COMMENT '收货地址-备用地址',
`ShippingAddressCity` varchar(100) DEFAULT NULL COMMENT '收货地址-城市',
`ShippingAddressContactPerson` varchar(200) DEFAULT NULL COMMENT '收货地址-联系人',
`ShippingAddressCountry` varchar(200) DEFAULT NULL COMMENT '收货地址-国家',
`ShippingAddressFaxArea` varchar(50) DEFAULT NULL COMMENT '收货地址-传真区号',
`ShippingAddressFaxCountry` varchar(50) DEFAULT NULL COMMENT '收货地址-传真国家',
`ShippingAddressFaxNumber` varchar(100) DEFAULT NULL COMMENT '收货地址-传真号码',
`ShippingAddressMobileArea` varchar(50) DEFAULT NULL COMMENT '收货地址-移动电话区号',
`ShippingAddressMobileCountry` varchar(50) DEFAULT NULL COMMENT '收货地址-移动电话国家',
`ShippingAddressMobileNumber` varchar(100) DEFAULT NULL COMMENT '收货地址-移动电话号码',
`ShippingAddressPort` varchar(100) DEFAULT NULL COMMENT '收货地址-港口',
`ShippingAddressProvince` varchar(100) DEFAULT NULL COMMENT '收货地址-省份地址',
`ShippingAddressTelephoneArea` varchar(50) DEFAULT NULL COMMENT '收货地址-电话区号',
`ShippingAddressTelephoneCountry` varchar(50) DEFAULT NULL COMMENT '收货地址-电话国家',
`ShippingAddressTelephoneNumber` varchar(100) DEFAULT NULL COMMENT '收货地址-电话号码',
`ShippingAddressZip` varchar(100) DEFAULT NULL COMMENT '收货地址-邮编',
`ShippingAddressCountryCode` varchar(50) DEFAULT NULL COMMENT '收货地址-国家code',
`ShippingAddressPortCode` varchar(100) DEFAULT NULL COMMENT '收货地址-港口code',
`ShippingAddressProvinceCode` varchar(100) DEFAULT NULL COMMENT '收货地址-省份编号',
`ShippingAddressCityCode` varchar(100) DEFAULT NULL COMMENT '收货地址-cityCode',
`TotalAmount` decimal(18,4) DEFAULT NULL COMMENT '订单总价',
`TotalAmountCurrency` varchar(20) DEFAULT NULL COMMENT '订单总价币种',
`TradeStatus` varchar(50) DEFAULT NULL COMMENT '订单状态',
`ContractVersion` varchar(100) DEFAULT NULL COMMENT '合同版本号',
`StatusActionJson` text COMMENT '实时状态',
`StatusActionStatus` varchar(100) DEFAULT NULL COMMENT '实时状态 和 action,参考 trade_status 字段注释',
`ShipmentInsuranceFeeCurrency` varchar(20) DEFAULT NULL COMMENT '物流保险费币种',
`ShipmentInsuranceFeeAmount` decimal(18,4) DEFAULT NULL COMMENT '物流保险费金额',
`TradeTerm` varchar(200) DEFAULT NULL COMMENT '贸易术语',
`ShipmentDateType` varchar(100) DEFAULT NULL COMMENT '发货时间-类型',
`ShipmentDateDuration` int(11) DEFAULT NULL COMMENT '发货时间-时间间隔 天',
`ShipmentDateFormatDate` varchar(50) DEFAULT NULL COMMENT '发货时间-格式化后的时间',
`ShipmentDateTimestamp` bigint(20) DEFAULT NULL COMMENT '发货时间-时间戳',
`AdvanceAmount` decimal(18,4) DEFAULT NULL COMMENT '预付款',
`AdvanceAmountCurrency` varchar(20) DEFAULT NULL COMMENT '预付款币种',
`BalanceAmount` decimal(18,4) DEFAULT NULL COMMENT '尾款',
`BalanceAmountCurrency` varchar(20) DEFAULT NULL COMMENT '尾款币种',
`FulfillmentChannel` varchar(200) DEFAULT NULL COMMENT '履约通道',
`ListRemark` varchar(500) DEFAULT NULL COMMENT '列表上的备注',
`CarrierCode` varchar(100) DEFAULT NULL COMMENT '承运商code 是 粗粒度的',
`CarrierName` varchar(150) DEFAULT NULL COMMENT '承运商名称,不一定能和订单详情匹配',
`PayStep` varchar(50) DEFAULT NULL COMMENT '支付阶段',
`AdjustAmount` decimal(18,4) DEFAULT NULL COMMENT '调整价',
`AdjustAmountCurrency` varchar(20) DEFAULT NULL COMMENT '调整价币种',
`DiscountAmount` decimal(18,4) DEFAULT NULL COMMENT '折扣金额(非负值)',
`DiscountAmountCurrency` varchar(20) DEFAULT NULL COMMENT '折扣金额币种',
`BizCode` varchar(100) DEFAULT NULL COMMENT '业务身份',
`ChannelReferId` varchar(100) DEFAULT NULL COMMENT '开放场景来源id',
`DraftRole` varchar(100) DEFAULT NULL COMMENT '订单起草角色 seller 或 buyer',
`ItemStatus` varchar(100) DEFAULT NULL COMMENT 'normal,//正常使用中 delete; //列表中删除',
`Source` varchar(200) DEFAULT NULL COMMENT '订单来源',
`Dropshipping` bit(1) DEFAULT NULL COMMENT 'true 是,false 不是',
`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_tradeID` (`CustomerID`,`OrderSourceID`,`TradeId`),
KEY `customerid_ordersourceid_tradeID` (`CustomerID`,`OrderSourceID`,`TradeId`),
KEY `isprocess_lastModificationTime_ItemStatus` (`IsProcess`,`LastModificationTime`,`ItemStatus`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `rb_alibabainternational_orderlist` (
`Id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`CustomerID` int(11) NOT NULL COMMENT '商户号',
`OrderSourceID` int(11) NOT NULL COMMENT '来源渠道',
`TradeId` varchar(50) NOT NULL COMMENT '平台单号',
`OrderProductNmae` varchar(500) DEFAULT NULL COMMENT '产品名称',
`ProductImage` varchar(500) DEFAULT NULL COMMENT '产品图片',
`Quantity` varchar(50) DEFAULT NULL COMMENT '产品数量',
`SkuAttributesJson` text COMMENT 'sku属性Json(名称:值)',
`SkuId` varchar(200) DEFAULT NULL COMMENT 'sku编号',
`ProductId` varchar(200) DEFAULT NULL COMMENT '商品id',
`Unit` varchar(200) DEFAULT NULL COMMENT '产品单位',
`UnitPriceAmount` decimal(18,4) DEFAULT NULL COMMENT '产品单价金额',
`UnitPriceCurrency` varchar(20) DEFAULT NULL COMMENT '产品单价币种',
`SkuCode` varchar(200) DEFAULT NULL COMMENT '用户自定义skucode',
`ModelNumber` varchar(200) DEFAULT NULL 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_TradeId` (`CustomerID`,`OrderSourceID`,`TradeId`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
自测截图
同步中间订单表 rb_alibabainternational_orderinfo
同步中间订单产品表 rb_alibabainternational_orderlist