Μετάβαση στο περιεχόμενο
ShopentlyLearn

Αλλαγή δεδομένων καταστήματος

Μέσω του API μπορείς να αλλάξεις δεδομένα του καταστήματος, όπως την περιγραφή ή την τιμή ενός προϊόντος.

Άλλαξε συγκεκριμένα πεδία

Για να αλλάξεις την περιγραφή ενός προϊόντος δεν χρειάζεται να στείλεις όλα τα δεδομένα του. Στο αίτημα PATCH, συμπερίλαβε τα πεδία που αλλάζεις και τα υπόλοιπα υποχρεωτικά πεδία της λειτουργίας. Τα άλλα δεδομένα παραμένουν ίδια.

Πεδίο που παραλείπεται
Η τιμή του παραμένει αμετάβλητη.
null
Η αποστολή null διαγράφει την τιμή, εφόσον το πεδίο το επιτρέπει. Έλεγξε την περιγραφή της λειτουργίας.
Κενή συμβολοσειρά
Το "" σημαίνει κενό κείμενο. Διαφέρει από το null και δεν γίνεται δεκτό από κάθε πεδίο.

Σε αυτό το παράδειγμα αφαιρούμε τη γερμανική περιγραφή του προϊόντος. Το όνομα και οι περιγραφές στις άλλες γλώσσες παραμένουν ίδια.

PATCH/api/v1/products/example?locale=de

Αίτημα cURL

curl --disable --globoff --fail-with-body --silent --show-error \
  --proto '=https' --connect-timeout 5 --max-time 30 \
  --request PATCH \
  --url 'https://shop.onshopently.com/api/v1/products/example?locale=de' \
  --header 'Authorization: Bearer EXAMPLE_ACCESS_TOKEN' \
  --header 'Idempotency-Key: example-product-clear-translation' \
  --header 'Content-Type: application/json' \
  --data-raw '{"description":null,"expected_version":1}'

Απόκριση

{
  "data": {
    "deleted": false,
    "id": "example",
    "version": 2
  },
  "meta": {
    "request_id": "example"
  }
}

Αν δεν λάβεις απάντηση

Η απουσία απάντησης δεν σημαίνει απαραίτητα ότι η αλλαγή δεν αποθηκεύτηκε. Η σύνδεση μπορεί να διακόπηκε μετά την αποθήκευση.

Κατά την αποθήκευση δεδομένων, προσθέστε την κεφαλίδα Idempotency-Key με μια μοναδική τιμή. Αν δεν λάβετε απάντηση και επαναλάβετε την ίδια αλλαγή, χρησιμοποιήστε το ίδιο κλειδί, διεύθυνση, μέθοδο και περιεχόμενο αιτήματος.

Αν το API έχει ήδη αποθηκεύσει το αποτέλεσμα αυτού του αιτήματος, το επιστρέφει χωρίς να εκτελέσει ξανά την αλλαγή. Για διαφορετική αλλαγή χρησιμοποιήστε νέο κλειδί.

Η επαναχρησιμοποίηση κλειδιού για διαφορετικό αίτημα παράγει idempotency.key_reused.

Αν κάποιος αλλάξει τα ίδια δεδομένα

Πριν από μια αλλαγή, ανακτήστε τα τρέχοντα δεδομένα. Αν η λειτουργία απαιτεί expected_version, εισαγάγετε την έκδοση που λάβατε σε αυτό το πεδίο.

Αν κάποιος άλλαξε τα δεδομένα στο μεταξύ, το API απορρίπτει την αποθήκευση. Ανακτήστε τα ξανά και ελέγξτε αν η σχεδιασμένη αλλαγή παραμένει κατάλληλη. Μόνο τότε στείλτε νέο αίτημα με την τρέχουσα έκδοση.

Η αλλαγή μιας τιμής μπορεί να απαιτεί και την έκδοση της τιμής, της παραλλαγής ή του τιμοκαταλόγου. Τα απαραίτητα πεδία αναφέρονται στην περιγραφή της λειτουργίας.