Για να στείλετε 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 πρέπει να έχει μία από τις αποδεκτές τιμές products, prices, stocks, order.invoiced, order.shipped, order.complete, order.canceled.
Το πεδίο payload είναι ένα αντικείμενο που περιέχει ζευγάρια ονομάτων/τιμών ανάλογα με το πεδίο type:
| products | Δείτε τις προδιαγραφές εισαγωγής προϊόντων. |
|---|---|
| prices | Δείτε τις προδιαγραφές εισαγωγής τιμών. |
| stocks | Δείτε τις προδιαγραφές εισαγωγής αποθεμάτων. |
| order.invoiced |
Το πεδίο id ή increment_id της παραγγελίας. Ένα προαιρετικό πεδίο boolean notify_invoice. |
| order.shipped |
Το πεδίο id ή increment_id της παραγγελίας. Το αντικείμενο shipment περιέχει έναν πίνακα tracks, ο οποίος περιέχει αντικείμενα με τα ακόλουθα κλειδιά: carrier_code, title και track_number. Ένα προαιρετικό πεδίο boolean notify_shipment. Ένα προαιρετικό αντικείμενο extension_attributes. |
| order.complete |
Το πεδίο id ή increment_id της παραγγελίας. Το αντικείμενο shipment περιέχει έναν πίνακα tracks, ο οποίος περιέχει αντικείμενα με τα ακόλουθα κλειδιά: carrier_code, title και track_number. Ένα προαιρετικό πεδίο boolean notify_invoice. Ένα προαιρετικό πεδίο boolean notify_shipment. Ένα προαιρετικό αντικείμενο extension_attributes. |
| order.canceled | Το πεδίο id ή increment_id της παραγγελίας. |
Οι απαντήσεις είναι πάντα σε μορφή application/json.
| 200 | Το webhook έγινε δεκτό και μπαίνει σε ουρά (queue) για επεξεργασία. Το body είναι {}. Η απάντηση δεν σημαίνει ότι η ενημέρωση ολοκληρώθηκε, καθώς το αποτέλεσμα καταγράφεται στα Activity logs του Sébastien. |
|---|---|
| 401 | Το Authorization header λείπει ή τα credentials είναι λανθασμένα. |
| 403 | Ο λογαριασμός είναι μπλοκαρισμένος ή τα webhooks δεν είναι ενεργοποιημένα για το project. |
| 404 | Το project δεν βρέθηκε, ή η παραγγελία δεν βρέθηκε στα events order.*. |
| 422 | Τα δεδομένα δεν είναι έγκυρα, π.χ. μη αποδεκτή τιμή στο πεδίο type, λείπει το πεδίο payload, ή το event order.updated που δεν υποστηρίζεται στο Magento. Το body περιέχει τα πεδία message και errors με την περιγραφή των σφαλμάτων. |
{
"type": "products",
"payload": {
"code": "CHAMP",
"sku": "CHAMP-S"
}
}
{
"type": "prices",
"payload": {
"price": 25.00,
"sku": "CHAMP-S"
}
}
{
"type": "stocks",
"payload": {
"quantity": 100,
"sku": "CHAMP-S"
}
}
{
"type": "order.invoiced",
"payload": {
"id": 123456,
"notify_invoice": true
}
}
{
"type": "order.shipped",
"payload": {
"id": 123456,
"shipment": {
"tracks": [
{"carrier_code": "acs", "title": "ACS", "track_number": "123456"}
],
"extension_attributes": {
"invoice_url": "https://example.com/invoice.pdf"
}
},
"notify_shipment": true
}
}
{
"type": "order.complete",
"payload": {
"id": 123456,
"shipment": {
"tracks": [
{"carrier_code": "acs", "title": "ACS", "track_number": "123456"}
],
"extension_attributes": {
"invoice_url": "https://example.com/invoice.pdf"
}
},
"notify_invoice": true,
"notify_shipment": false
}
}
{
"type": "order.canceled",
"payload": {
"id": 123456
}
}
{
"message": "The selected type is invalid.",
"errors": {
"type": ["The selected type is invalid."]
}
}