Shopify回传订单

通过该接口获取到shopify平台订单,如果我再次获取还会获取到相同的单子,如何回传订单状态,让已经获取到的单子无法获取到

你如果通过fulfillment接口完成了订单,如果再次获取订单可以筛选出已经完成的订单

https://shopify.dev/api/admin-rest/2021-10/resources/order#[get]/admin/api/2021-10/orders.json

看fulfillment_status

1 Like

你好,请问如何称呼你

我的需求是这样的,我想通过接口获取shopify平台店铺的订单,然后通过我们系统提交出库发货获取面单后回传订单的状态,请问调用接口的具体顺序是什么?

我的理解是这样的:

1、获取草稿订单

url:https://8f212ed52efaced7890be4100cef075f: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@2248023813.myshopify.com/admin/api/2021-07/draft_orders.json?limit=1

resp body

{
“draft_orders”: [
{
“id”: 988427682025,
“note”: “shopify测试”,
“email”: “2248023813@qq.com”,
“taxes_included”: false,
“currency”: “USD”,
“invoice_sent_at”: null,
“created_at”: “2021-10-08T10:39:08+08:00”,
“updated_at”: “2021-10-08T10:39:08+08:00”,
“tax_exempt”: true,
“completed_at”: null,
“name”: “#D3”,
“status”: “open”,
“line_items”: [
{
“id”: 57711735996649,
“variant_id”: 39466176053481,
“product_id”: 6635917770985,
“title”: “SHIRT”,
“variant_title”: “10”,
“sku”: “SHIRT”,
“vendor”: “2248023813”,
“quantity”: 1,
“requires_shipping”: true,
“taxable”: true,
“gift_card”: false,
“fulfillment_service”: “manual”,
“grams”: 454,
“tax_lines”: ,
“applied_discount”: null,
“name”: “SHIRT - 10”,
“properties”: ,
“custom”: false,
“price”: “0.00”,
“admin_graphql_api_id”: “gid://shopify/DraftOrderLineItem/57711735996649”
}
],
“shipping_address”: {
“first_name”: “hat”,
“address1”: “32801 Ecorse Road”,
“phone”: “+11234567890”,
“city”: “Romulus”,
“zip”: “48174”,
“province”: “Michigan”,
“country”: “United States”,
“last_name”: “liu”,
“address2”: “”,
“company”: “hat”,
“latitude”: 42.2505224,
“longitude”: -83.3622427,
“name”: “hat liu”,
“country_code”: “US”,
“province_code”: “MI”
},
“billing_address”: {
“first_name”: “hat”,
“address1”: “32801 Ecorse Road”,
“phone”: “+11234567890”,
“city”: “Romulus”,
“zip”: “48174”,
“province”: “Michigan”,
“country”: “United States”,
“last_name”: “liu”,
“address2”: “”,
“company”: “hat”,
“latitude”: 42.2505224,
“longitude”: -83.3622427,
“name”: “hat liu”,
“country_code”: “US”,
“province_code”: “MI”
},
“invoice_url”: “https://2248023813.myshopify.com/54997123305/invoices/756b15cef05703e287b19d80d931441e”,
“applied_discount”: null,
“order_id”: null,
“shipping_line”: null,
“tax_lines”: ,
“tags”: “紧急”,
“note_attributes”: ,
“total_price”: “0.00”,
“subtotal_price”: “0.00”,
“total_tax”: “0.00”,
“admin_graphql_api_id”: “gid://shopify/DraftOrder/988427682025”,
“customer”: {
“id”: 5244566962409,
“email”: “2248023813@qq.com”,
“accepts_marketing”: true,
“created_at”: “2021-09-28T09:07:44+08:00”,
“updated_at”: “2021-09-28T09:07:44+08:00”,
“first_name”: “hat”,
“last_name”: “liu”,
“orders_count”: 0,
“state”: “disabled”,
“total_spent”: “0.00”,
“last_order_id”: null,
“note”: null,
“verified_email”: true,
“multipass_identifier”: null,
“tax_exempt”: true,
“phone”: null,
“tags”: “”,
“last_order_name”: null,
“currency”: “USD”,
“accepts_marketing_updated_at”: “2021-09-28T09:07:44+08:00”,
“marketing_opt_in_level”: “single_opt_in”,
“tax_exemptions”: ,
“admin_graphql_api_id”: “gid://shopify/Customer/5244566962409”,
“default_address”: {
“id”: 6433503346921,
“customer_id”: 5244566962409,
“first_name”: “hat”,
“last_name”: “liu”,
“company”: “hat”,
“address1”: “32801 Ecorse Road”,
“address2”: “”,
“city”: “Romulus”,
“province”: “Michigan”,
“country”: “United States”,
“zip”: “48174”,
“phone”: “+11234567890”,
“name”: “hat liu”,
“province_code”: “MI”,
“country_code”: “US”,
“country_name”: “United States”,
“default”: true
}
}
}
]
}
2、回传订单状态 此接口未调通
url:https://8f212ed52efaced7890be4100cef075f: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@2248023813.myshopify.com/admin/api/2021-10/draft_orders/988427682025/complete.json
resp body:

{
“errors”: “Change your plan to allow customers to checkout and to create orders.”
}

针对我目前的需求,请问调用的接口是否正确?
希望得到您的答复,谢谢

我的问题还没有问,方便回复我后面的疑问吗?

  1. 你看的这块API是处理draft order,也就是定制订单,是商家自己创建的订单,不是客户下单的

  2. 用的接口没有错,但因为是测试店铺,不是付费店铺,所以会出现这个错误

1 Like

听起来你对这块业务很了解,感谢你的回复!

我还有个问题,请问这两个接口有何区别。针对我的业务需求,我应该调哪一个接口,谢谢

特别感谢

https://shopify.dev/api/admin-rest/2021-10/resources/order#[get]/admin/api/2021-10/orders.json

https://3ae227a45e2e8f939fac5e52c1a49eb0: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@3092237819.myshopify.com/admin/api/2021-10/draft_orders/993913503987/complete.json?payment_pending=true

看到你们在另一个帖子的需求,你们应该用第一个接口:

https://shopify.dev/api/admin-rest/2021-10/resources/order#[get]/admin/api/2021-10/orders.json

你们有两个途径可以走:

第一个:

  1. 获取订单:https://shopify.dev/api/admin-rest/2021-10/resources/order#[get]/admin/api/2021-10/orders.json

  2. 内部处理完订单去关闭所处理的订单:https://shopify.dev/api/admin-rest/2021-10/resources/order#[post]/admin/api/2021-10/orders/{order_id}/close.json

  3. 再次获取订单的时候已关闭的订单默认不会被拉取到

第二个:

  1. 获取订单:https://shopify.dev/api/admin-rest/2021-10/resources/order#[get]/admin/api/2021-10/orders.json

  2. 去发货,给订单添加物流信息:https://shopify.dev/api/admin-rest/2021-10/resources/fulfillment#[post]/admin/api/2021-10/fulfillments.json

  3. 再次获取订单的时候,要传去fulfillment_status=shipped

我认为您提供的第二种方案符合我们的业务需求

我再简单解释一下

我们先获取到shopify平台店铺已创建的草稿订单。获取完成之后,我们会提交出库发货,会获取到每个订单的追踪号和与之对应的面单。这时,我们需要把订单回传回传到shopify平台店铺,当再次获取时就获取不到已发货的单子,我想问下面这种方案是否满足我的业务需求?这样就不需要调Complete a fulfillment接口了?

  1. 获取订单:https://shopify.dev/api/admin-rest/2021-10/resources/order#[get]/admin/api/2021-10/orders.json

  2. 去发货,给订单添加物流信息:https://shopify.dev/api/admin-rest/2021-10/resources/fulfillment#[post]/admin/api/2021-10/fulfillmen

  3. 再次获取订单的时候,要传去fulfillment_status=shipped

是的,没错,不需要调Complete a fulfillment接口了

非常感谢,我明白了

周末愉快,有个问题想请教一下您

API文档中提供的header体是不是非必要的:因为我不需要此header体同样也可以调通接口

H “X-Shopify-Access-Token: {access_token}”

你好,现在又遇到了一个新问题

Creates a fulfillment for one or many fulfillment orders 该接口返回:“errors”: “Not Found”

请问是这两个参数传的问题吗?

fulfillment_order_id,id 如果是,我该如何传才正确
下面示例截图中说明了我怎么传的
请帮我看一下,谢谢

下面展示的事请求示例

1、Retrieves a list of draft orders

https://3ae227a45e2e8f939fac5e52c1a49eb0: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@3092237819.myshopify.com/admin/api/2021-07/draft_orders.json?limit=1

2、Creates a fulfillment for one or many fulfillment orders

https://3ae227a45e2e8f939fac5e52c1a49eb0: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@3092237819.myshopify.com/admin/api/2021-10/fulfillments.json

{

“fulfillment”:{
“message”:“The package was shipped this morning.”,
“notify_customer”:false,
“tracking_info”:{
“number”:993913503987,
“url”:“https://www.my-shipping-company.com”,
“company”:“my-shipping-company”
},
“line_items_by_fulfillment_order”:[
{
“fulfillment_order_id”:993913503987,
“fulfillment_order_line_items”:[
{
“id”:57717325005043,
“quantity”:1
}
]
}
]
}
}

你不能给draft order创建fulfillment,要用普通order

你如果要创建测试订单,好像只能用前台手动下单:

https://help.shopify.com/en/manual/checkout-settings/test-orders

你看我理解的是否正确,

1、你所说的前台手动手动下单是指通过按钮在shopify官网实现fulfillment接口的功能。

但是有点说不通,shopify官方对于草稿订单是提供fulfillment接口的

2、但问题来了,如果需要调普通order的接口,是不是意味着要购买套餐

注:我再次描述一下我的需求,客户在shopify创建订单,在我的理解里,创建的应该是草稿订单,也就是没有产生运单号和面单的订单,然后我们第三方海外仓系统获取到shopify平台中的订单,提交发货出库后,获取到面单以及运单号,然后回传到shopify平台,当我们再次拉取时,就拉取不到之前的单子

你的理解不太正确

  1. 草稿订单是商家创建的订单,一般用于商家创建定制订单,有单独折扣或者是特意派送要求等。一般shopify店铺很少用到草稿订单。

  2. 我说的到前台下单是指到店铺前台去购买商品,模拟客户正常操作下的单

3.不需要购买套餐,可以下测试订单,请看我上面提供的链接: https://help.shopify.com/en/manual/checkout-settings/test-orders

你们可以完全忽略DraftOrder接口,如果我理解对了你们的需求你们用不到它

请问这样设置就可以了吗?请看我如图所示,但是我在创建正常订单时也需要购买套餐

请问有没有看我上面的链接?

不要通过api去创建订单,去店铺前台(xxx.myshopify.com)手动下单

我看到这个链接了,但是我不会设置 https://help.shopify.com/en/manual/checkout-settings/test-orders

我没有通过api去创建订单,我是通过图形化界面去下单的,但是需要选择套餐。

您讲的手动下单是不是要有某种设置,就如你上述文档中提的这样。

如果你能帮我设置一下,我将不胜感谢

1、现在创建不了正常订单就没办法调接口获取和回传状态,你帮我看一下如何把设置才能正常图形化界面创建

账号:3092237819@qq.com

密码:jiale654321

官方是这样描述的,请看如下文档

给你们添加了虚拟网关,但前台还是不让我结账。查看了下英文帖子,有可能现在shopify做了些限制,建议联系shopify客户打开结账功能

再次感谢您对我的提问做出来建设性的回答

以下是shopify官方客户为我做出的解答,那请问我的需求属于开发商店吗?我觉得应该不是

对于客户人员的这句话我不是很理解"除非,您是使用开发商店"

那现在我只有两种方案了

其一:购买套餐

其二:使用开发商店

你认为我能用第二种方案吗?

请问您对于第二种方案有了解吗,方便告诉我吗?