Εισαγωγή δεδομένων μέσω webhook

Για να στείλετε webhook notifications, πρέπει να κάνετε μία κλήση POST στο endpoint https://app.sebastien.gr/project/:id/webhook.
Το :id είναι το ID του project που θα σας δοθεί.
Το body της κλήσης πρέπει να είναι σε μορφή application/x-www-form-urlencoded ή application/json.
Τα headers πρέπει να περιλαμβάνουν το Authorization header.
Το authentication scheme είναι Basic και τα credentials αποτελούνται από ένα username και ένα password χωρισμένα με άνω και κάτω τελεία (:), κωδικοποιημένα σε base64.

type string απαραίτητο

Το πεδίο type πρέπει να έχει μία από τις αποδεκτές τιμές products, prices, stocks, order.updated.

payload object απαραίτητο

Το πεδίο payload είναι ένα αντικείμενο που περιέχει ζευγάρια ονομάτων/τιμών ανάλογα με το πεδίο type:

products Δείτε τις προδιαγραφές εισαγωγής προϊόντων.
prices Δείτε τις προδιαγραφές εισαγωγής τιμών.
stocks Δείτε τις προδιαγραφές εισαγωγής αποθεμάτων.
order.updated Το πεδίο id της παραγγελίας.
Το πεδίο status της παραγγελίας, το οποίο είναι απαραίτητο. Οι αποδεκτές τιμές είναι completed και cancelled.
Ένα προαιρετικό αντικείμενο meta_data.
Έναν προαιρετικό πίνακα shipping_lines, ο οποίος περιέχει αντικείμενα με τα ακόλουθα κλειδιά: method_id και method_title.

HTTP status codes

Οι απαντήσεις είναι πάντα σε μορφή application/json.

200 Το webhook έγινε δεκτό και μπαίνει σε ουρά (queue) για επεξεργασία. Το body είναι {}.
Η απάντηση δεν σημαίνει ότι η ενημέρωση ολοκληρώθηκε, καθώς το αποτέλεσμα καταγράφεται στα Activity logs του Sébastien.
401 Το Authorization header λείπει ή τα credentials είναι λανθασμένα.
403 Ο λογαριασμός είναι μπλοκαρισμένος ή τα webhooks δεν είναι ενεργοποιημένα για το project.
404 Το project δεν βρέθηκε, ή η παραγγελία δεν βρέθηκε στα events order.*.
422 Τα δεδομένα δεν είναι έγκυρα, π.χ. μη αποδεκτή τιμή στο πεδίο type, λείπει το πεδίο payload, ή λείπει το πεδίο status στο order.updated. Το body περιέχει τα πεδία message και errors με την περιγραφή των σφαλμάτων.

Παράδειγμα webhook προϊόντος

REQUEST

{
  "type": "products",
  "payload": {
    "code": "CHAMP",
    "sku": "CHAMP-S"
  }
}

Παράδειγμα webhook τιμής

REQUEST

{
  "type": "prices",
  "payload": {
    "regular_price": 25.00,
    "sku": "CHAMP-S"
  }
}

Παράδειγμα webhook αποθέματος

REQUEST

{
  "type": "stocks",
  "payload": {
    "stock_quantity": 100,
    "sku": "CHAMP-S"
  }
}

Παράδειγμα webhook ολοκλήρωσης παραγγελίας

REQUEST

{
  "type": "order.updated",
  "payload": {
    "id": 123456,
    "status": "completed",
    "meta_data": {
      "tracking_number": "123456"
    },
    "shipping_lines": [
      {"method_id": "acs", "method_title": "ACS"}
    ]
  }
}

Παράδειγμα webhook ακύρωσης παραγγελίας

REQUEST

{
  "type": "order.updated",
  "payload": {
    "id": 123456,
    "status": "cancelled"
  }
}

Παράδειγμα απάντησης 422

RESPONSE

{
  "message": "The selected type is invalid.",
  "errors": {
    "type": ["The selected type is invalid."]
  }
}