Μετάβαση στο περιεχόμενο
Πίσω στα Άρθρα

PrestaShop Webservice API: το πρώτο σου πραγματικό request

External integrations
HTTP
GET /api/products
?display=[id,reference,price]
&output_format=JSON

200 OK
{
  "id": 42,
  "reference": "ABC-001"
}
Webservices & API
Beginner
PrestaHacks 3 min read

Θέλεις μια εξωτερική εφαρμογή να διαβάζει προϊόντα από το PrestaShop χωρίς να της δώσεις database credentials;

Το native PrestaShop Webservice είναι το πρώτο εργαλείο που πρέπει να γνωρίζεις.

Σε αυτό το tutorial θα κάνουμε πραγματικό read-only request και θα πάρουμε Product ID, Reference/SKU και Price από το /api/products resource.

Τι θα φτιάξουμε

TEXT
PRESTASHOP
    ↓
Webservice key
    ↓
/api/products
    ↓
HTTP GET
    ↓
Product data
    ↓
External application

1. Δημιούργησε Webservice access

Από το PrestaShop Back Office ενεργοποίησε το Webservice και δημιούργησε access key.

Για το πρώτο test αρκεί read access στο products resource.

Screenshot Placeholder 01 MEDIA TO ADD

Back Office → Webservice configuration / access keys. Να μη φαίνεται πραγματικό production key.

Tip

Μην ενεργοποιείς όλα τα permissions. Ξεκίνα από το minimum access που χρειάζεται το integration.

2. Το API endpoint

TEXT
https://shop.example/api/

Για products:

TEXT
https://shop.example/api/products

3. Authentication

BASH
curl \
  -u "YOUR_WEBSERVICE_KEY:" \
  "https://shop.example/api/"

Warning

Μην βάζεις production API keys σε documentation, repositories ή public screenshots.

4. Κάνε το πρώτο request

BASH
curl \
  -u "YOUR_WEBSERVICE_KEY:" \
  "https://shop.example/api/products"
Screenshot Placeholder 02 MEDIA TO ADD

Postman request `GET https://shop.example/api/products` με επιτυχημένο response.

5. Ζήτησε μόνο τα fields που χρειάζεσαι

TEXT
/api/products?display=[id,reference,price]
BASH
curl \
  -u "YOUR_WEBSERVICE_KEY:" \
  "https://shop.example/api/products?display=[id,reference,price]"

6. JSON output

TEXT
/api/products?display=[id,reference,price]&output_format=JSON
Screenshot Placeholder 03 MEDIA TO ADD

JSON response στο Postman με `id`, `reference` και `price`.

7. Filter by reference

TEXT
/api/products?filter[reference]=[ABC-001]&display=[id,reference,price]
TEXT
EXTERNAL SKU
     ↓
Find PrestaShop product
     ↓
Get id_product
     ↓
Read / Update

8. Pagination / limit

TEXT
/api/products?display=[id,reference,price]&limit=0,100

Επόμενο batch:

TEXT
/api/products?display=[id,reference,price]&limit=100,100

9. Products και stock δεν είναι το ίδιο resource

TEXT
/api/stock_availables
TEXT
PRODUCT
   │
   ├── Product data
   │
   └── StockAvailable
           ↓
         Stock

10. Τι γίνεται με combinations;

TEXT
/api/combinations
TEXT
Products
   ↓
Combinations
   ↓
Stock Available
   ↓
Unified dataset

11. Πραγματικό integration scenario

ID SKU Price Stock
21 ABC-001 29.90 14
22 ABC-002 18.50 0
TEXT
PrestaShop
    ↓
Products API
    ↓
Stock Available API
    ↓
Transform / Join
    ↓
Google Apps Script
    ↓
Google Sheets

12. Μην ξεκινήσεις από PUT

TEXT
READ
 ↓
MAP
 ↓
VALIDATE
 ↓
TRANSFORM
 ↓
WRITE
 ↓
VERIFY

Troubleshooting

401

Έλεγξε access key, Basic Auth, Webservice status και Authorization header forwarding.

403

Έλεγξε τα permissions του key.

Empty ή περιορισμένο response

Έλεγξε display, filter, limit και shop context.

Screenshot Placeholder 04 MEDIA TO ADD

Webservice key permissions με READ permission στο `products`.

Official references

  • https://devdocs.prestashop-project.org/9/webservice/
  • https://devdocs.prestashop-project.org/9/webservice/tutorials/testing-access/
  • https://devdocs.prestashop-project.org/9/webservice/tutorials/testing-webservice-postman/
  • https://devdocs.prestashop-project.org/9/webservice/tutorials/advanced-use/additional-list-parameters/

Τι να κάνεις μετά

Όταν το πρώτο request γίνει σταθερό, πρόσθεσε filters, sorting και pagination πριν μεγαλώσεις το extraction. Κράτησε τα writes ξεχωριστά μέχρι να έχεις ασφαλές workflow για product updates με read-before-write validation.

ΜΕΙΝΕ ΕΝΗΜΕΡΩΜΕΝΟΣ

Πρακτικά PrestaShop hacks κατευθείαν στο inbox σου.

ΑΝΕΝΕΡΓΟ