如何从shopify Graphql api获取订单列表?我甚至无法弄清楚如何获得单一订单。我最接近的是我的查询应该是这样的:
query{
node(id:$id){
__typename
... on Order{
id
email
}
}
}
根据文档,$id
是“具有支持全局识别的ID的对象”,但不清楚这意味着什么。对于产品,您可以像这样检索ID:
shop {
productByHandle(handle: "red-bicycle") {
id
}
}
然后返回一个哈希值,如下所示:
Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0Lzk4OTUyODE0NzU=
然后,您可以使用节点界面查询产品,如下所示:
node(id: "Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0Lzk4OTUyODE0NzU=") {
id
... on Product {
title
}
}
但是如何为订单做到这一点?有关最近5个订单的列表?你为什么要使用Node接口呢?为什么不通过句柄或ID或其他东西进行查询而不是使用哈希?
答案 0 :(得分:0)
我使用GraphQL shopify apis创建了我的项目,用于获取与电子邮件相关的订单。将customers / search.json与客户电子邮件一起使用以获取客户ID,然后使用orders.json获取与该客户ID相关的所有订单列表。
答案 1 :(得分:0)
您可以使用此查询来获取用户订单列表
let query = Storefront.buildQuery { $0
.customer(customerAccessToken: token) { $0
.orders(first: 20) { $0
.edges { $0
.node { $0
.id()
.orderNumber()
.totalPrice()
.currencyCode()
.customerLocale()
.customerUrl()
.email()
.phone()
.processedAt()
.subtotalPrice()
.totalRefunded()
.totalShippingPrice()
.totalTax()
.shippingAddress( { $0
.address1()
.address2()
.city()
.company()
.country()
.countryCode()
.firstName()
.formatted()
.formattedArea()
.lastName()
.latitude()
.longitude()
.name()
.phone()
.province()
.provinceCode()
.zip()
})
.lineItems(first: 50) { $0
.edges { $0
.cursor()
.node { $0
.quantity()
.title()
.variant{ $0
.id()
.image({ $0
.altText()
.id()
.src()
})
.price()
.sku()
}
.customAttributes{ $0
.key()
.value()
}
}
}
}
}
}
}
}
}
此查询会在iOS中返回用户的订单列表,希望它能为您效劳。