Webhooks
Bu makalede, uygulamanızı Labs ile entegre etmek için Webhook kurulumunun nasıl yapılacağı ve Webhook bildirimlerinin çalışma mantığı anlatılmıştır.
Webhook bildirimleri aracılığı ile Labs platformundaki etkinlerden anında haberdar olabilirsiniz. Örneğin yeni bir sipariş oluşturulduğunda, kendi uygulamanıza yeni oluşturulan siparişin bilgilerini saniyeler içerisinde gönderilmesini sağlayabilirsiniz.
Kurulum
Yeni bir webhook tanımlaması yapabilmek için öncelikle hesabınızın Webhook özelliğini aktif etmeniz gerekmektedir. Webhook API'yı aktif hale getirebilmek için, Labs hesabınızın sağ üstte yer alan menüsünden Webhooks Ayarları sayfasına ulaşabilirsiniz.
Ardından sayfanın sağ üst köşesinde bulunan buton yardımıyla Webhook servisini aktif ediniz.
Bir webhook bildirimi için, uygulamanızda Labs'ın istek gönderebileceği bir URL'e sahip olmanız gerekir. Her yeni bir webhook bildiriminde, Labs uygulaması, sizin uygulamanıza bir POST
isteği gönderecektir.
Kimlik Doğrulama
Uygulamanıza gönderilen isteklerin doğrulanmasını isteyebilirsiniz. Bunun için Basic Authentication ve Bearer Token kimlik doğrulaması yöntemlerini kullanabilirsiniz. Eğer isterseniz, doğrulama olmadan istek gönderilmesini de sağlayabilirsiniz.
Bunun için Webhook Ayarları sayfasındaki Auth Header kısmından doğrulama yönteminizi seçiniz ve ardından uygulamanıza ait kimlik bilgilerini giriniz.
Webhook bildirimi almak istediğiniz scope'u seçerek sadece ihtiyacınız olan bildirimleri almayı tercih edebilirsiniz.
Tüm bu işlemleri tamamladığınızda, artık Labs platformundan webhook bildirimleri almaya hazırsınız demektir. Aşağıdaki bölümde, uygulamanıza bir webhook bildirimi yapıldığında gönderilen isteğin nasıl bir veri içerdiğini gözlemleyebilirsiniz.
Payload İçeriği
Uygulamanız Labs platformundan bir webhook isteği aldığında buna hangi olayın neden olduğunu görmek için type
özelliğini kontrol edebilirsiniz. type
parametresi size gönderilen payload'un türü hakkında bir bilgi verecektir (örneğin sipariş, ürün vb.).
Örnek webhook isteği
{
"type": "order.created",
"payload": {
"id": "WAz8eIbvDR60rouK"
// ...
}
}
Yukarıdaki örnekte yeni bir sipariş alındığında gönderilen type
'ı görebilirsiniz.
Etkinlik Türleri
Yeni Sipariş Bildirimleri
- Name
order.created
- Type
- Description
Yeni bir sipariş oluşturulduğunda iletilir.
Örnek payload
{
"type": "order.created",
"payload": {
"id": 1163207,
"packageId": "1315156650",
"managerId": null,
"currency": "TRY",
"source": "TRENDYOL",
"orderStatus": "IN_RETURN",
"marketplaceId": "1802105722",
"managerNote": null,
"createdAt": "13/01/2023 10:31:06",
"isTransfered": 1,
"isCorporate": false,
"shipmentAddress": {
"addressName": "Otomatik Oluşturulan",
"invoiceType": "personal",
"identifier": {
"customerName": "Hatice Kıran",
"phoneNumber": "",
"identity": 11111111111
},
"addressDetail": {
"countryCode": "TR",
"city": "Niğde",
"district": "Merkez",
"town": "",
"state": "",
"address": "Kültür Mah 123 Sk. No 55",
"postalCode": ""
},
"isDefault": 1,
"company": {
"companyName": "",
"taxNumber": "",
"taxOffice": ""
}
},
"invoiceAddress": {
"addressName": "Otomatik Oluşturulan",
"invoiceType": "personal",
"identifier": {
"customerName": "Hatice Özişçi",
"phoneNumber": "",
"identity": "11111111111"
},
"addressDetail": {
"countryCode": "TR",
"city": "Niğde",
"district": "Merkez",
"town": "",
"state": "",
"address": "Kültür Mah 123 Sk. No 55",
"postalCode": ""
},
"isDefault": 1,
"company": {
"companyName": "",
"taxNumber": "",
"taxOffice": ""
}
},
"warehouseId": 1,
"totalProductQty": 4,
"customer": {
"custumerName": "Hatice Kıran",
"custumerEmail": "example@mail.com",
"custumerPhoneNumber": "",
"custumerIdentity": "11111111111"
},
"payment": {
"paymentId": null,
"paymentMethod": "MARKETPLACE",
"paymentStatus": "SUCCESS"
},
"shipment": {
"dispatchStatus": false,
"dispatchDescription": "",
"cargoCompany": "TEX",
"barcodeId": "7260006545259384",
"trackingId": "3035870476411",
"trackingUrl": "https://kargotakip.mngkargo.com.tr/?takipNo=586349659300",
"shippingFee": 0
},
"lines": [
{
"id": 5969779,
"barcodeId": "8682417087434",
"status": "RETURNED",
"qty": "1.00",
"requestedQty": "1.00",
"cancelledQty": 0,
"price": "282.1000",
"currency": "TRY",
"modelId": "15135",
"attributes": [
{
"attributeType": "size",
"attributeValue": "M",
"attributeLabel": "M"
},
{
"attributeType": "color",
"attributeValue": "R02_002",
"attributeLabel": "GriMelanj"
}
],
"lineDescription": "Erkek Dokuma Sporcu Eşofmant Altı 15135, M",
"thumbnail": "https://static-labs.s3.eu-central-1.amazonaws.com/products/1/15135/small/8682417087434_1.JPG"
},
{
"id": 5969783,
"barcodeId": "8682417056102",
"status": "COMPLETED",
"qty": "1.00",
"requestedQty": "1.00",
"cancelledQty": 0,
"price": "282.1000",
"currency": "TRY",
"modelId": "15135",
"attributes": [
{
"attributeType": "size",
"attributeValue": "L",
"attributeLabel": "L"
},
{
"attributeType": "color",
"attributeValue": "R11_001",
"attributeLabel": "Siyah"
}
],
"lineDescription": "Erkek Siyah Dokuma Sporcu Eşofmant Altı 15135, L",
"thumbnail": "https://static-labs.s3.eu-central-1.amazonaws.com/products/1/15135/small/8682417056096_1.JPG"
}
]
}
}