Skip to content

Commit 0ff12cd

Browse files
committed
2.10.1: don't get item['id'] if id_pagination is False
1 parent cf39065 commit 0ff12cd

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# PyMagento Changelog
22

3+
## 2.10.1 (2025/11/03)
4+
5+
* Don’t try to retrieve the last item ID when `id_pagination` is not set
6+
37
## 2.10.0 (2025/11/03)
48

59
### Breaking changes

magento/client.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1370,6 +1370,9 @@ def get_source_items(self, source_code: Optional[str] = None, sku: Optional[str]
13701370
:param limit: -1 for unlimited.
13711371
:return:
13721372
"""
1373+
assert kwargs.get("id_pagination", False) is False, \
1374+
"ID-based pagination is not supported for source items as they don't have an ID"
1375+
13731376
if source_code is not None or sku is not None or skus is not None:
13741377
filter_groups = []
13751378
if source_code:
@@ -1674,11 +1677,14 @@ def get_paginated(self, path: str, *,
16741677
if count >= limit > 0:
16751678
return
16761679

1677-
# On products the field is named 'id', but we must filter on 'entity_id' instead ('id' doesn't work)
1678-
if id_field in item:
1679-
last_id = item[id_field]
1680-
else:
1681-
last_id = item["id"]
1680+
if id_pagination:
1681+
# On products the field is named 'id', but we must filter on 'entity_id' instead ('id' doesn't work)
1682+
if id_field in item:
1683+
last_id = item[id_field]
1684+
elif "id" in item:
1685+
last_id = item["id"]
1686+
else:
1687+
raise ValueError(f"id_field {id_field} not found in item {item}")
16821688

16831689
if not id_pagination:
16841690
current_page += 1

0 commit comments

Comments
 (0)