提问者:小点点

Shopify事件api-不返回订单时间线事件


我正在尝试为我的shopify应用程序获取商店的所有订单事件。最好的可扩展方式是什么?

我已经尝试了Events API,Events API的留档说使用GET /admin/events.json检索商店的所有事件列表,但它不返回所有订单事件,只返回订单确认事件。

我可以通过使用GET/admin/orders/{order\u id}/events查看与订单关联的所有事件。json,但此解决方案可能不适用于我的用例。有了这个endpoint,我需要首先获取所有订单的列表,然后迭代这些订单ID以获取这些订单的事件。对于我来说,它在订单ID级别是不可伸缩的,如果我可以通过事件级别的一个endpoint获得所有订单事件,那就太完美了。

有人知道解决这个问题的最佳方法吗?


共2个答案

匿名用户

有一个办法。我会这样做:

  • 下载所有订单

现在,如果您的商户客户希望查看与订单相关的事件,并且他们不方便直接导航到订单,则使用订单ID调用您的应用程序可以在您保存事件时快速报告事件。

如果您监听订单更新,您可以扫描添加的新事件。

所以你的缩放问题并不是一个真正的问题,因为你只需要抓取一次旧订单。向前移动,只是听命令/更新将保持事情更新,而没有太多的开销。

匿名用户

如果您专门寻找订单时间线事件,可以使用Shopify GraphQL管理API获得此消息。这样的查询将按特定顺序返回前100个事件。

# simple query to get top 10 messages from order timeline
query {
  order(id: "gid://shopify/Order/618806837270") {
    events(first: 100) {
      edges {
        node {
          __typename message
          createdAt
          id
        }
      }
    }
  }
}

这将返回如下结果

[
  {
    "order": {
      "events": {
        "edges": [
          {
            "node": {
              "__typename": "BasicEvent",
              "message": "Order was placed on XXXXXXX.",
              "createdAt": "2018-11-08T22:16:54Z",
              "id": "gid://shopify/BasicEvent/9349083824150"
            }
          },
          {
            "node": {
              "__typename": "BasicEvent",
              "message": "Received new order <a href=\"https://XXXXXXX.myshopify.com/admin/orders/618806837270\">#1183</a>.",
              "createdAt": "2018-11-08T22:16:55Z",
              "id": "gid://shopify/BasicEvent/9349083856918"
            }
          },
          {
            "node": {
              "__typename": "BasicEvent",
              "message": "XXXXXXX fulfilled 1 item from Shopify.",
              "createdAt": "2019-02-04T17:26:00Z",
              "id": "gid://shopify/BasicEvent/14072023547926"
            }
          },
          {
            "node": {
              "__typename": "BasicEvent",
              "message": "This order was archived.",
              "createdAt": "2019-02-04T17:26:00Z",
              "id": "gid://shopify/BasicEvent/14072023580694"
            }
          },
          {
            "node": {
              "__typename": "CommentEvent",
              "message": "this is a comment",
              "createdAt": "2019-02-04T17:26:15Z",
              "id": "gid://shopify/CommentEvent/14072023875606"
            }
          }
        ]
      }
    }
  },
  {
    "cost": {
      "requestedQueryCost": 103,
      "actualQueryCost": 8,
      "throttleStatus": {
        "maximumAvailable": 1000,
        "currentlyAvailable": 992,
        "restoreRate": 50
      }
    }
  }
]