Shopify Graphql获取订单列表

时间:2017-12-20 16:49:45

标签: shopify graphql

如何从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或其他东西进行查询而不是使用哈希?

2 个答案:

答案 0 :(得分:0)

我使用GraphQL shopify apis创建了我的项目,用于获取与电子邮件相关的订单。将customers / search.json与客户电子邮件一起使用以获取客户ID,然后使用orders.json获取与该客户ID相关的所有订单列表。

https://help.shopify.com/api/reference/order

答案 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中返回用户的订单列表,希望它能为您效劳。