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

PrestaShop Webservice: ασφαλέστερο workflow για product updates

Controlled product updates from external systems
HTTP
GET /api/products/42

CHANGE ONLY KNOWN DATA

PUT /api/products/42

GET + VERIFY
Webservices & API
Intermediate
PrestaHacks 3 min read

Το να διαβάσεις product data είναι το εύκολο μέρος. Το να τα γράψεις πίσω με ασφάλεια είναι το σημείο όπου ένα integration χρειάζεται πραγματικούς κανόνες.

Ένα product update δεν πρέπει να σημαίνει «στείλε ό,τι έδωσε ο supplier και βλέπουμε».

1. Ξεκίνα πάντα με read

Πριν αλλάξεις ένα resource, διάβασε την τρέχουσα κατάστασή του και επιβεβαίωσε ότι βρήκες το σωστό id_product.

TEXT
EXTERNAL SKU
    ↓
filter[reference]
    ↓
id_product
    ↓
GET current product

2. Δούλεψε με το Webservice schema

Το payload πρέπει να ακολουθεί τη δομή που περιμένει το product resource. Μην μετατρέπεις αυθαίρετα spreadsheet columns σε PrestaShop fields.

3. Χώρισε source data και update rules

Ο supplier μπορεί να δίνει:

TEXT
supplier_price
supplier_name
supplier_stock
supplier_category

Οι δικοί σου business rules αποφασίζουν τι επιτρέπεται να αλλάξει.

TEXT
supplier_price → update
supplier_name  → keep shop value
supplier_stock → separate stock workflow
category       → map before update

4. Το stock δεν είναι product field

Product data και stock update πρέπει να είναι ξεχωριστά, ελέγξιμα βήματα.

5. Προστάτευσε τα identifiers

Αν το reference είναι το join key σου, μην επιτρέπεις σε ένα feed να το αντικαθιστά σιωπηλά.

TEXT
READ BY reference
UPDATE matched id_product
VERIFY same reference

6. Validate πριν από το PUT

Έλεγξε τουλάχιστον:

  • ότι υπάρχει το product,
  • ότι υπάρχει ένα και μόνο match,
  • required values,
  • numeric fields,
  • mapped IDs,
  • language context,
  • whitelist των fields που επιτρέπεται να αλλάξουν.

7. Κράτα update log

TEXT
timestamp
source identifier
id_product
fields changed
old values
new values
HTTP status
verification status

8. Test με ένα product

Άλλαξε ένα μόνο field σε προϊόν που γνωρίζεις, κάνε read ξανά και επιβεβαίωσε το αποτέλεσμα.

Μετά δοκίμασε simple product, product με combinations, multilingual product και ένα deliberately invalid payload.

9. Τα batch updates θέλουν stop conditions

Αν το ίδιο validation error επαναλαμβάνεται, μη συνεχίσεις σε 5.000 products.

TEXT
ERROR RATE > THRESHOLD
        ↓
STOP
        ↓
REVIEW

10. Production pattern

TEXT
FETCH
  ↓
MATCH
  ↓
VALIDATE
  ↓
TRANSFORM
  ↓
WRITE
  ↓
READ BACK
  ↓
VERIFY
  ↓
LOG

Το ασφαλέστερο update δεν είναι αυτό με το περισσότερο automation. Είναι αυτό στο οποίο κάθε transformation είναι explicit και κάθε write μπορεί να επαληθευτεί.

Official references

  • https://devdocs.prestashop-project.org/9/webservice/
  • https://devdocs.prestashop-project.org/9/webservice/resources/products/
  • https://devdocs.prestashop-project.org/9/webservice/tutorials/create-product-az/

Επόμενο βήμα

Αν το authentication ή το resource discovery δεν είναι ακόμη repeatable, σταθεροποίησε το πρώτο Webservice request πριν από οποιοδήποτε write. Έπειτα επιβεβαίωσε ότι κάθε payload σέβεται το μοντέλο products, combinations και stock και κάνε πάντα re-read το resource μετά το update.

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

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

ΑΝΕΝΕΡΓΟ