如何通过 Laravel 中的 API 从 Shopify 商店获取所有订单

Posted

技术标签:

【中文标题】如何通过 Laravel 中的 API 从 Shopify 商店获取所有订单【英文标题】:How to get all orders from Shopify Store via API in Laravel 【发布时间】:2021-08-16 01:28:35 【问题描述】:

您好,我创建了一个 Shopify 应用程序,我正在尝试使用 Orders Shopify API 从我的 Shopify 商店获取订单列表。我正在使用 Laravel。我是这个框架的新手,到目前为止我只能通过使用相同的功能来获得产品。

拜托,我在互联网上翻来覆去,却一无所获。我希望有人帮助解决这个问题。如果还有关于如何将订单同步到数据库的建议,那就太好了。谢谢

$array = array();
    $shop = Auth::user();
    $orders = $shop->api()->rest('GET',"/admin/api/2021-04/orders.json", $array);
    $orders = json_decode($orders['response']->getBody(), JSON_PRETTY_PRINT);

【问题讨论】:

【参考方案1】:

对于私有应用,不需要像“所有订单”那样的额外范围。 你可以这样。

$orders = $shop->api()->rest('GET', '/admin/orders.json', array('status' => 'any', 'created_at_min' => "1900-01-01"));

【讨论】:

【参考方案2】:

要获得 Shopify 订单,您可以使用以下文档: https://shopify.dev/docs/admin-api/rest/reference/orders/order

    您需要创建私有应用程序并生成 api 密钥。 确保您已将 read_orders、read_all_orders 访问权限添加到您的私有应用中 然后使用您的 api 密钥发送请求接收订单列表:GET /admin/api/2021-01/orders.json?status=any

注意: 自 2018 年 6 月 6 日起,默认情况下,只能从订单资源访问商店最近 60 天的订单。如果您想访问旧订单,则需要请求访问所有订单。如果您的应用被授予访问权限,那么您可以将 read_all_orders 范围与 read_orders 或 write_orders 一起添加到您的应用中。私有应用不受此更改的影响,并自动获得范围。

【讨论】:

感谢您的回复和建议。我没有添加 read_all_orders 所以我现在试试。 你好@Vitality,我试着听从你的建议,但仍然没有数组 null

以上是关于如何通过 Laravel 中的 API 从 Shopify 商店获取所有订单的主要内容,如果未能解决你的问题,请参考以下文章

如何从 laravel 7 API 中的两个表中选择特定列?

如何从 laravel 5.2 中的网站提取 API? [关闭]

如何从 Laravel 8 中的自定义 Web 路由中删除“api/”前缀?

Vue + Laravel:如果元组数据之一中的表单数组中的数据,如何从api挂载数据

如何通过ajax fetch api响应将从laravel控制器接收到的数据发送到另一个页面

Laravel 5.7 - 如何使用 axios.get 从 API 检索数据?