Webhooks
Integrera till Vendre och få reda på när ex. order & kunder tillkommer eller ändras
Integrera till Vendre och få reda på när ex. order & kunder tillkommer eller ändras
Vendres Webhooks-system låter dig i realtid få veta när ett event har skett i Vendre. Detta kan exempelvis vara om en order har inkommit.
Webhooken skickar med grundläggande information om det event som är aktuellt.
Event | Triggas när | Data som skickas med |
---|---|---|
new_customer | Kund skapas | API enligt GET på kund |
updated_customer | Kund uppdateras | API enligt GET på kund |
new_order | Ny order | API enligt GET på order |
deleted_customer | Kund borttagen | API enligt GET på kund |
Varukorg ändrad | Inloggad kund lägger till, tar bort eller ändrar på produkt i varukorgen. |
Se nedan. |
Fält | Data |
---|---|
customer | API enligt GET på kund |
customer_extra.group_name | Namn på kundens kundgrupp/prislista. |
customer_extra.language_code | Språkkod för kundens valda språk. |
products[].id_string | Produktens id-nummer samt attribut och annat. |
products[].id | Produktens id-nummer. |
products[].image_id | Produktens huvudbilds id. |
products[].image_path | Sökväg till bilden, domännamn tas inte med. |
products[].quantity | Antal av produkten på den här produktraden i varukorgen. |
products[].model | Produktens artikelnummer. |
products[].name | Produktens namn. |
products[].price | Produktens pris innan vissa rabatter och attributvärden. |
products[].final_price | Produktens pris. |
products[].tax | Produktens moms i procent. |
products[].tax_class_id | Produktens momsklassid. |
products[].weight | Produktens vikt i kg. |
products[].package_content | Antal enheter per styck i enhetsfunktionen. |
products[].unit | Förkortning av produktens enhet i enhetsfunktionen. |
Du kan aktivera och arbeta med webhooks direkt i Vendres administration. Gå till Appar & Integration > Webhooks för att hitta dem.
Du kan:
Tar du bort en webhook-länk, eller en webhook-typ, så tas alla loggar bort som tillhör den länken/typen också.
Till den URL du anger i admin skickas en webhook strax efter att eventet har triggats i Vendre. Webhooken skickas en gång och skickas inte om vid fel.
Anropet skickas alltid som ett GET request när vi skickar anrop utan data, annars skickas det alltid med ett POST-request med JSON-data tillhörande eventet.
Vi skickar med en extra header vid våra webhook anrop.
Denna header heter "vendre-webhook-event" som innehåller namnet på händelsen kopplat till webhooken, t.ex "customer created".
Genom att slå på Skicka med data kan man välja om webhooken man sätter upp ska skicka med relevant data eller inte.
Data skickas alltid i JSON format i ett POST-request och följer samma datastruktur och information som vårt API, med undantaget att vi skickar med en parameter som heter "webhook_event", som innehåller namnet på händelsen, t.ex "webhook_event":"customer created".
T.ex, ställer du in en webhook mot 'updated_customer'-eventet, så kommer vi att skicka med samma information som man får som respons vid anrop mot vårt kund-API(t.ex api/customers/13).
För vissa webhooks har ni möjlighet att skicka med utökad data. Detta rör generellt data som inte alltid är nödvändig och som ökar både belastningen på servern samt datamängden som skickas tillbaka. Oftast är det inget problem så länge det inte rör sig om onormalt stora mängder anrop eller onormalt stora datamängder, men de bör aldrig aktiveras slentrianmässigt.
När en webhook har stöd för utökad data så finns det ett eller flera alternativ i kolumnen "Utökad data" som man kan aktivera. Varje alternativ lägger till ett fält med utökad data på det sätt som anges. Namnet på alternativet anger både namn på fältet och även eventuell path. Om man t.ex. aktiverar "products/tags" för order-webhooken så läggs det utökade data-fältet "tags" till för varje orderrad i "products"-listan.
Den data som läggs till på respektive ställe följer systemstandard för respektive objekt i API:et. Se nedan för de vanligaste utökad data-fälten för order-webhooken.
[
{
"customer_groups": [
{
"id": 0,
"status": true
}
],
"description": {
"sv": "string",
"en": "string"
},
"external_id": 0,
"extra": {
"1": "string",
"2": "string",
"3": "string",
"4": {
"sv": "string",
"en": "string"
},
"5": {
"sv": "string",
"en": "string"
}
},
"filters": [
{
"id": 0,
"type": 0,
"names": {
"sv": "string",
"en": "string"
}
}
],
"google_product_category": 0,
"icon_image_id": 0,
"icon_image_url": "string",
"id": 0,
"image_id": 0,
"image_url": "string",
"meta_description": {
"sv": "string",
"en": "string"
},
"meta_keywords": {
"sv": "string",
"en": "string"
},
"meta_title": {
"sv": "string",
"en": "string"
},
"name": {
"sv": "string",
"en": "string"
},
"parent_external_id": "string",
"parent_id": 0,
"seo_link": {
"sv": "string",
"en": "string"
},
"seo_text": {
"sv": "string",
"en": "string"
},
"seo_title": {
"sv": "string",
"en": "string"
},
"show_in_listing": true,
"show_sub_categories": true,
"sort_order": 0,
"status": true
}
]
{
"generic": [
{
"id": 0,
"value": "string"
}
],
"value": [
{
"id": 0,
"value": "string"
}
],
"text": [
{
"id": 0,
"value": {
"sv": "string",
"en": "string"
},
"short_value": {
"sv": "string",
"en": "string"
}
}
]
}
[
{
"description": {
"sv": "string",
"en": "string"
},
"external_id": 0,
"image_id": 0,
"image_url": "string",
"meta_description": {
"sv": "string",
"en": "string"
},
"meta_keywords": {
"sv": "string",
"en": "string"
},
"meta_title": {
"sv": "string",
"en": "string"
},
"name": {
"sv": "string",
"en": "string"
},
"parent_id": 0,
"seo_text": {
"sv": "string",
"en": "string"
},
"seo_title": {
"sv": "string",
"en": "string"
},
"sort_order": 0,
"status": true
}
]
Vi rekommenderar att man inte förlitar sig enbart på webhooks för att hålla sig synkad med Vendre. Synka även upp mot vårt API regelbundet.
Det är viktigt att tänka på att om ditt affärssystem gör importer av kunder och du gör en import av många kunder samtidigt med uppdaterad information kan detta skapa en loop som triggar många webhooks samtidigt. Detta behöver du ta hänsyn till vid din integration och att du kan ta emot många anrop på uppdaterade och nya kunder.