我有没有办法从乐天电子商务中导入订单?
我正在寻找一些API文档,但我没有找到Ruby或其他语言
答案 0 :(得分:1)
简而言之,是的,API文档确实存在,但为了使用API来获取订单,您需要向他们注册(Rakuten),因为所有API请求都需要附带授权令牌。
对于英国,请发送电子邮件至support@rakuten.co.uk并索取API文档,其中包括:订单,操作,产品和库存API。
答案 1 :(得分:0)
一直在寻找发布错误和反复无常的结果的地方。 日本“楽天WEB SERVER” API(特别是使用“ RakutenPayOrderAPI”)的这项工作(有关信息,请参见Rakuten商店https://webservice.rms.rakuten.co.jp/merchant-portal/view?contents=/ja/common/1-1_service_index/rakutenpayorderapi/getorder的所有者)
我发现此CURL脚本(由他们提供)可以正常工作,但是最困难的时间使其在我公司的Rails应用程序中起作用。
对于YOUR_AUTH_HERE,您需要将serviceSecret:licenseKey用作字符串并将其转换为Base64,然后确保转换后没有尾随==符号。然后像我一样,将其放入ENV文件中。
curl -X POST https://apikuten.co.jp/es/2.0/order/searchOrder/ -H 'Authorization: ESA YOUR_AUTH_HERE' -H 'Content-Type: application/json; charset=utf-8' -d '{
"dateType" : 4,
"startDatetime" : "2019-03-29T00:00:00+0900",
"endDatetime" : "2019-03-30T00:00:00+0900",
"PaginationRequestModel" :
{
"requestRecordsAmount" : 30,
"requestPage" : 1,
"SortModelList" : [
{
"sortColumn" : 1,
"sortDirection" : 1
}
]
}
}'
就像我说的那样,经过反复的尝试,这是我使用HTTParty在rails中想到的:
require 'httparty'
require 'json'
authorization = 'ESA ' + ENV['RAKUTEN_API']
get_orders_list = HTTParty.post("https://api.rms.rakuten.co.jp/es/2.0/order/searchOrder/",
:headers => { "Authorization" => authorization,
"Content-Type" => "application/json; charset=utf-8"},
:body => {
"dateType" => 4,
"startDatetime" => "2019-03-31T00:00:00+0900",
"endDatetime" => "2019-03-31T23:59:59+0900",
"PaginationRequestModel" => {
"requestRecordsAmount" => 1000,
"requestPage" => 1,
"SortModelList" => [{
"sortColumn" => 1,
"sortDirection" => 1 }]
}}.to_json)
pp get_orders_list
然后,您可以使用生成的响应订单号来一次请求最多100个订单中的特定订单数据。下面是一个示例,说明如何继续代码以获取该信息:
if get_orders_list['orderNumberList'].length > 100
orders_list_by_100 = get_orders_list['orderNumberList'].each_slice(100).to_a
order_details = Array.new
messages = Array.new
orders_list_by_100.each do |sub_list|
get_order_details = HTTParty.post("https://api.rms.rakuten.co.jp/es/2.0/order/getOrder/",
:headers => { "Authorization" => authorization,
"Content-Type" => "application/json; charset=utf-8"},
:body => {"orderNumberList" => sub_list}.to_json)
order_details << get_order_details["OrderModelList"]
messages << get_order_details["MessageModelList"]
end
else
get_order_details = HTTParty.post("https://api.rms.rakuten.co.jp/es/2.0/order/getOrder/",
:headers => { "Authorization" => authorization,
"Content-Type" => "application/json; charset=utf-8"},
:body => {"orderNumberList" => get_orders_list['orderNumberList']}.to_json)
order_details = get_order_details["OrderModelList"]
messages = get_order_details["MessageModelList"]
end
希望这可以帮助某个人。如果我有更多的时间,我将学习如何制作宝石并使其更易于使用。
答案 2 :(得分:0)
以防万一有人仍然在Rakuten api文档中搜索订单:这是api文档({)上的link,并且可以在Rakuten帐户中生成令牌(无需联系Rakuten支持人员)。