diff --git a/src/Services/Order.php b/src/Services/Order.php index e8eedab..a5c6f39 100644 --- a/src/Services/Order.php +++ b/src/Services/Order.php @@ -87,6 +87,29 @@ public function getByParams($params) return new Collection($orders); } + /** + * @return Collection + */ + public function getByParamsWithPagination(array $params): Collection + { + $allOrders = []; + $nextPageInfo = ''; + + do { + $orders = $this->client->get('admin/orders.json', $params); + + foreach ($orders['orders'] as $order) { + $allOrders[count($allOrders)] = $this->unserializeModel($order, ShopifyOrder::class); + }; + + $pageInfo = $this->client->getPageInfo(); + $nextPageInfo = $pageInfo->getNext(); + $params['page_info'] = $nextPageInfo; + } while (!empty($nextPageInfo)); + + return new Collection($allOrders); + } + /** * @param array $filter *