PrestaShop Webservice: filters, sorting και pagination χωρίς να κατεβάζεις όλο το catalogue
GET /api/products
?display=[id,reference,name]
&filter[active]=[1]
&sort=[id_DESC]
&limit=0,50
# next page
&limit=50,50
Το /api/products δουλεύει.
Το επόμενο λάθος είναι να ζητήσεις όλο το catalogue, με όλα τα fields, σε κάθε request.
Σε μικρό shop μπορεί να μη φανεί. Σε catalogue με χιλιάδες προϊόντα όμως, το σωστό filtering και pagination γίνεται μέρος του integration design.
1. Μην ξεκινάς με display=full
Για ένα synchronization ίσως χρειάζεσαι μόνο:
id
reference
price
active
date_updΆρα:
/api/products?display=[id,reference,price,active,date_upd]Το dataset γίνεται μικρότερο και πιο ξεκάθαρο.
2. Filter by reference
/api/products?filter[reference]=[ABC-001]Useful flow:
EXTERNAL SKU
↓
filter[reference]
↓
PrestaShop Product ID3. Sorting
Για deterministic exports:
/api/products?display=[id,reference,date_upd]&sort=[id_ASC]ή:
sort=[date_upd_DESC]Tip
Stable sorting κάνει debugging και comparison μεταξύ exports πολύ ευκολότερο.
4. Limit
limit=100ή:
limit=0,1005. Pagination
Παράδειγμα:
0,100
100,100
200,100
300,100
REQUEST 1 → rows 0–99
REQUEST 2 → rows 100–199
REQUEST 3 → rows 200–2996. Batch processing
FETCH
↓
VALIDATE
↓
TRANSFORM
↓
SAVE / SYNC
↓
NEXT OFFSETΜην περιμένεις να ολοκληρωθεί όλο το catalogue πριν αποθηκεύσεις progress.
7. Incremental sync
Πιο χρήσιμο από συνεχές full export:
LAST SUCCESSFUL SYNC
↓
date_upd
↓
ONLY CHANGED PRODUCTS
↓
UPDATE TARGET8. Τι να καταγράφεις
request URL
offset
limit
HTTP status
records returned
started_at
completed_at9. Empty response δεν σημαίνει πάντα error
Μπορεί:
- να τελείωσε το pagination,
- να μην υπάρχουν matches,
- να υπάρχει λάθος filter,
- να βρίσκεσαι σε διαφορετικό shop context.
Production pattern
CONFIG
↓
FILTER
↓
SELECT FIELDS
↓
SORT
↓
PAGINATE
↓
TRANSFORM
↓
STORE
↓
VERIFY[SCREENSHOT PLACEHOLDER 01]
Postman request με
display,filter,sortκαιlimit.[SCREENSHOT PLACEHOLDER 02]
Δύο paginated responses με διαφορετικό offset.
Το API δεν είναι export button
Το σημαντικό δεν είναι απλώς να πάρεις data.
Είναι να ζητήσεις μόνο όσα χρειάζεσαι, deterministic και σε batches που μπορείς να ελέγξεις.
Επόμενο βήμα
Βάλε το paginated read σε ένα Google Sheets reporting workflow, κρατώντας offsets και sync metadata για κάθε batch. Αν το request δεν είναι ακόμη ξεκάθαρο, γύρισε στον οδηγό για το πρώτο Webservice request πριν το αυτοματοποιήσεις.