fix(shopify): Get the next URL in pagination instead of previous one #12902
+7
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Shopify pagination in the REST API is handled by providing the next page URL in the
link
HTTP header. The next URL should be parsed from a string with the following format.The formula used to retrieve the URL was
url.split('; ')[0].replace(...)
, which is OK in the above example.The issue is that starting page 2, the header contains several links (a
previous
and anext
one), with the following format:With such value and by using the previous formula, the previous URL is retrieved instead of the next one, creating an infinite loop: on page 2, the next request will fetch information from page 1, then retrieve the next URL of page 2, only to re-return on page 1.
The proposed fix is to split the
link
header with,
and filter on the links containing "next", and only after that, apply the formula.Review / Merge checklist
release/backport
(if the PR is an urgent fix that needs to be backported)