设置
我有一个Shopify商店,其中有一个未履行的订单,并且可以访问该商店的REST API。
订单已经发货,我有它的tracking_number
,tracking_url
和transport_company
。
我想使用REST API来设置订单,并将tracking_number
、tracking_url
和transport_company
信息发送给客户。
验证码
我在Shopify中有订单的ID,order_id
,这样我就可以获得订单的fulfillment_orders
项目,然后从那里获得fulfillment_id
和location_id
,就像这样,
fulfillment_orders = requests.get(shop_url + '/orders/'+ order_id +'/fulfillment_orders.json').json()
fulfillment_id = str(fulfillment_orders['fulfillment_orders'][0]['id'])
location_id = requests.get(shop_url + '/locations.json').json()['locations'][0]['id']
字符串
其中shop_url
是连接到商店所需的URL。
到目前为止,代码工作。
然后我设置了有效载荷
payload = {
"fulfillment":
{
"notify_customer": 'false',
"location_id": location_id,
"tracking_info":{
"tracking_url": tracking_url,
"tracking_company": transport_company,
"tracking_number": tracking_number,
}
}
}
型
其中location_id
是整数,其他变量是字符串。
当我随后运行以下请求将信息插入订单时,
r = requests.post(shop_url + '/fulfillments/' + fulfillment_id + '/update_tracking.json',
json=payload,headers=headers)
型
我得到一个<Response [400]>
。
问题
我做错了什么?
2条答案
按热度按时间dzhpxtsq1#
正确的方法是discussed here。
假设你有shopify订单id
order_id
和shop_url
,下面的代码会将订单设置为已完成,字符串
332nm8kg2#
对我来说,这是一个混合的解决方案,公认的答案可悲的是没有立即为我工作。
首先,你需要完成给定的订单-这是终点:
字符串
请注意,每个订单可能有多个履行。我建议使用status=open标志。否则,您也会获得以前关闭的履行,例如,如果您早些时候履行了它,并将其设置为未履行。由于它们已关闭,我不会请求它们。Funfact,您无法通过Firefox打开此端点,请使用Chrome或真实的API平台。
型
您从此端点获取位置ID。
接下来是下一个pitfal。对我来说,简单地调用
api/orders/fulfillments.json
是不够的。我必须像第一次调用一样再次提供ORDER-ID
。型
这是有效载荷:
型