我特别使用shopify graphql管理api来查询订单。
我想搜索一个嵌套的相关字段。
下面是我的问题。
export const orderHistoryQuery = gql`
query Order($productsFirst: Int!, $productsAfter: String, $filterQuery: String) {
orders(first: $productsFirst, after: $productsAfter, reverse: true, query:$filterQuery) {
edges {
cursor
node {
id
name
customer {
id
metafields(first: 10) {
edges {
node {
id
key
value
namespace
}
cursor
}
}
}
totalPriceSet {
shopMoney {
amount
currencyCode
}
}
subtotalPriceSet {
shopMoney {
amount
currencyCode
}
}
totalRefundedSet {
shopMoney {
amount
currencyCode
}
}
currencyCode
email
phone
processedAt
totalShippingPriceSet {
shopMoney {
amount
currencyCode
}
}
totalTaxSet {
shopMoney {
amount
currencyCode
}
}
shippingAddress {
firstName
lastName
address1
address2
city
province
zip
country
}
billingAddress {
firstName
lastName
address1
address2
city
province
zip
country
}
customAttributes {
key
value
}
}
}
}
}
`;我想真正地查询元字段或任何东西,但它似乎不受支持。我不确定我是有错误的查询语法,还是不支持它。shopify搜索语法文档化并没有真正的帮助,这就是我对graphql的知识崩溃的地方。
在graphql中可以这样做吗?我还尝试添加元字段(id:$whateverID),它们的设置不支持元字段。
发布于 2018-11-09 15:12:10
不幸的是,Shopify不支持metafields上的查询过滤器。解决这个问题的最好方法是使用像GraphiQL这样的graphql。如果您转到Apps > Shopify GraphiQL应用程序,Shopify仪表板就内置了这个功能。
使用GraphiQL,您可以看到:



我认为您的选项是按所能进行查询并在得到结果后进行筛选,或者使用客户标记和按标记进行查询。
发布于 2018-11-08 23:00:36
你会通过简化事情来帮助你的事业。我给你的建议是尝试一个简单的查询。你能接到命令吗?由于订单有客户(通常但不总是),您能得到一个与该客户相关的元字段吗?
在试图展示你想做什么的过程中,你遇到了太多的障碍,就好像你想要在调试任何东西时头痛。从GraphQL网站的角度来看,对端点的GraphQL调用已经被很好地记录下来了,而Shopify不过是一个普通的实现,但需要注意的是,它们会根据复杂性向您收费,所以最好是监视您的学分。
所以你试试简单的电话。得到一个产品,这就是Metafield。获取客户记录,然后是Metafield。如果您能够做到这一点,您就不会对文档和GraphQL查询的概念产生太大的挑战。一旦基本all工作,您可以在变量、游标、分页等中工作.但是,在一次性电话给你想要的东西之前,调试应该集中在最简单的调用上,而不是所有的东西和厨房的水槽。
另外,当您搞砸了对端点的调用时,Shopify通常会返回一个响应,其中包含您在哪里出错的详细信息,从而为您提供了第一个可以查看的位置。我们没有看到你的反应,所以没有什么可以继续帮助你。
https://stackoverflow.com/questions/53217252
复制相似问题