March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now
Hi,
I'm trying to connect a Shopify store to Power BI but I'm having difficulties with pagination after reviewing every single forum and documentation.
this is the M code I made:
let
// Base URL for the initial request
BaseUrl = "https://{my_store_name}.myshopify.com/admin/api/2024-04/products.json?limit=250",
// Function to recursively fetch all pages of data
GetAllPages = (url as text) as table =>
let
// Perform the web request
Response = Web.Contents(url, [Headers=[#"X-Shopify-Access-Token"={AccessTokenParameter}]]),
Source = Json.Document(Response),
// Extract the products data
Data = Source[products],
// Convert the data list to a table
CurrentPage = if List.IsEmpty(Data) then Table.FromRecords({}) else Table.FromList(Data, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
// Retrieve the response headers
ResponseHeaders = Value.Metadata(Response)[Headers],
// Check for the presence of a next page link in the headers
LinkHeader = if Record.HasFields(ResponseHeaders, "Link") then ResponseHeaders[Link] else null,
// Parse the next page link if it exists
NextLink = if LinkHeader <> null and Text.Contains(LinkHeader, "rel="&"\""next\""") then Text.BetweenDelimiters(LinkHeader, "<", ">") else null,
// Recursively fetch the next page if a next link is present
NextPage = if NextLink <> null then GetAllPages(NextLink) else null,
// Combine the current page data with the next page data
Output = if NextPage <> null then Table.Combine({CurrentPage, NextPage}) else CurrentPage
in
Output,
// Initial call to the function with the base URL
Result = GetAllPages(BaseUrl)
in
Result
I would greatly appreciate the help of community members to understand what is wrong with PAGINATION.
thank you
https://learn.microsoft.com/en-us/power-query/handling-paging
Also, please use Web.Contents correctly. Use RelativePath and Query parameters. https://learn.microsoft.com/en-us/powerquery-m/web-contents#example-1