API Dokümantasyonu

Genel Bakış

OutsourceOrder ve OutsourceOrderProduct modelleri, dış POS (Point of Sale) şirketlerinin sipariş yönetim sistemleri ile entegre edilmesi için kullanılır. Bu doküman, bu modellerin yapısını ve her bir özelliğin açıklamasını içerir. Amaç, sistemler arasında sipariş detaylarının sorunsuz şekilde paylaşılmasını sağlamaktır.

Key Bilgilerinin Doğrulanması İçin Kullanılacak API

Endpoint

POST https://api.hesapkurye.com/OutSource/check-credential

Açıklama

Bu API restorandan aldığınız ApiKey, ApiSecret ve RestaurantID bilgilerinin doğruluğunu kontrol etmek için kullanılır.

Parametreler

Body Örneği

Aşağıda, POST isteği ile body üzerinden gönderilecek JSON formatı:


{
  "ApiKey": "ABCDEFG1234567",
  "ApiSecret": "XYZSECRET123",
  "RestaurantID": "RESTAURANT123"
}
        

Hata Durumları

Yeni Sipariş Kayıt Fonksiyonu

Endpoint

POST http://api.hesapkurye.com/OutSource/SavePackage

OutsourceOrder Modeli

Özellik Adı Tip Açıklama
ApiKey string ApiKey değeri için Restoran panelinde "Diğer Dış Kaynak POS" alanından bilgileri alabilirsiniz.
ApiSecret string ApiSecret değeri için Restoran panelinde "Diğer Dış Kaynak POS" alanından bilgileri alabilirsiniz.
OutSourceID int POS şirketinin sistemdeki benzersiz ID değeri. Kabul edilen değerler:
5 - AdisyoPOS
6 - Mod POS
7 - DaraPlus POS
8 - Akinsoft POS
9 - Optimus POS
10 - SepetTakip POS
11 - ERP12 POS
12 - Adelsoft POS
13 - FastRest POS
14 - Simpra POS
15 - Vega POS
16 - Extension
17 - Yemek POS
18 - YepPos
19 - TechResta
20 - Ekotek POS
21 - Suitable POS
22 - Yetiş PLUS
23 - ArkaPos
24 - Yemeksoft POS
25 - Siparişmatik
26 - Yemekkent
27 - Quick Order
28 - GoPos
29 - Kerzz POS
30 - ShopIn POS
31 - Possi
32 - Resto Menum
33 - Ohannes Burger
34 - RopNG Pos
35 - HesapPos
36 - İyaş Market
37 - Getir Çarşı
38 - Bk Yemek
39 - Çarşım Park
40 - PosCube
41 - Dinosoft
42 - Restopos
43 - Kardopos
44 - MarketNext
45 - OCR App
46 - Napoli Pizza
47 - MIDP
48 - Yetiş Yemek
49 - Şefim Pos
50 - Advan RPS Pos
Şirketiniz burada yoksa bizimle iletişime geçebilirsiniz.
RestaurantID string Restoranın sistemdeki RestaurantID değeri. Restoran panelinde "Diğer Dış Kaynak POS" alanından bilgileri alabilirsiniz.
RemoteOrderNumber string Siparişin benzersiz ID numarası.
Address string Siparişin teslim edileceği adres.
AddressDetail string Adresle ilgili ek bilgiler.
Latitude string Teslimat yerinin enlem bilgisi.
Longitude string Teslimat yerinin boylam bilgisi.
PackageType string Paketin tipi. Kabul edilen değerler:
"Yemeksepeti", "Trendyol Yemek", "Getir Yemek", "Migros Yemek", "Diğer",
"Yemeksepeti Market", "Trendyol Market", "Getir Market", "Migros Market", "Diğer Market"
PaymentMethodId int Ödeme yöntemlerinin sistemdeki karşılığı gönderilmelidir. Bu değerleri 'Ödeme Yöntemleri Listesinin Alınması' başlığı altında belirtilen endpointe istek atarak alabilirsiniz. Almanız gereken değer: PaymentMethod
PaymentMethod string Ödeme yöntemlerinin sistemdeki karşılığı gönderilmelidir. Bu değerleri 'Ödeme Yöntemleri Listesinin Alınması' başlığı altında belirtilen endpointe istek atarak alabilirsiniz. Almanız gereken değer: PaymentName
PackagePrice decimal Paketin toplam tutarı.
OrderNote string Sipariş ile ilgili ek notlar.
CustomerName string Siparişi veren müşterinin adı.
CustomerPhone string Müşterinin telefon numarası.
CreateDate string Paketin oluşturulma tarihi.
TargetDate string Siparişin beklenen teslim tarihi.
PrepareTime int Siparişin hazırlanma süresi (dakika).
IsFutureOrder bool Sipariş ileri tarihli bir sipariş ise "true", değilse "false" gönderilmelidir.
IsPickUpOrder bool Gel al siparişi ise "true", değilse "false" gönderilmelidir.
Products List<OutsourceOrderProduct> Siparişin ürünleri. Bu ürünler OutsourceOrderProduct modeli ile temsil edilir.

OutsourceOrderProduct Modeli

Özellik Adı Tip Açıklama
quantity decimal Ürünün adedi.
unitPrice decimal Ürünün birim fiyatı.
productName string Ürünün adı.
productOptions string Ürün için girilen opsiyon bilgisi. String hale getirilip gönderilmesi beklenir.
productNote string Ürünle ilgili notlar.
totalAmount decimal Ürünün toplam tutarı.

Body Örneği

Aşağıda, POST isteği ile body üzerinden gönderilecek JSON formatı:


{
    "ApiKey":"JvaXPFXAQEqf7X5XegRxLw==",
    "ApiSecret":"92utiyfmPeXDSjHv8RiJ6w==",
    "RestaurantID": "ifLpIWj5WiOmp1Gm1H+uqQ==",
    "RemoteOrderNumber": "sample string v2",
    "Address": "sample string 0001",
    "AddressDetail": "sample string 0001",
    "Latitude": "38.6902",
    "Longitude": "35.5450",
    "PackageType": "sample string 9",
    "PaymentMethodId": 1,
    "PaymentMethod": "sample string 10",
    "PackagePrice": 11.0,
    "OrderNote": "sample string 13",
    "CustomerName": "sample string 14",
    "CustomerPhone": "sample string 15",
    "CreateDate": "2024-10-25 11:55",
    "TargetDate": "2024-10-25 13:00",
	"PrepareTime": 10,
    "IsFutureOrder": false,
    "IsPickUpOrder": false,
    "Products": [
        {
            "quantity": 1.0,
            "unitPrice": 2.0,
            "productName": "sample string 3",
            "productNote": "sample string 4",
            "totalAmount": 5.0
        },
        {
            "quantity": 1.0,
            "unitPrice": 2.0,
            "productName": "sample string 3",
            "productNote": "sample string 4",
            "totalAmount": 5.0
        }
    ]
}

Ödeme Yöntemleri Listesinin Alınması

Endpoint

POST http://api.hesapkurye.com/OutSource/GetPaymentMethods

Açıklama

Bu endpoint, ApiKey ve ApiSecret bilgileri ile veritabanından ödeme yöntemi bilgilerini alır. Paketinizi kaydederken buradan aldığınız PaymentMethod ve PaymentName bilgisini göndermelisiniz.

Parametreler

Body Örneği

Aşağıda, POST isteği ile body üzerinden gönderilecek JSON formatı:


{
  "ApiKey": "ABCDEFG1234567",
  "ApiSecret": "XYZSECRET123"
}

Başarılı Yanıt

Başarılı bir istekte, aşağıdaki gibi bir JSON formatında yanıt döner:


{
    "PaymentMethod": 7,
    "PaymentName": "Kapıda Nakit",
}

Hata Durumları

Sipariş Bilgisi Almak İçin Kullanılacak Fonksiyon

Endpoint

POST http://api.hesapkurye.com/OutSource/GetPackage

Açıklama

Bu API, belirli bir ApiKey, ApiSecret, remoteOrderNumber ve RestaurantID bilgileri ile veritabanından paket bilgilerini alır. Paket bilgileri, müşteri bilgileri, teslimat adresi, ürün detayları ve sipariş notlarını içerir.

Parametreler

Body Örneği

Aşağıda, POST isteği ile body üzerinden gönderilecek JSON formatı:


{
  "ApiKey": "ABCDEFG1234567",
  "ApiSecret": "XYZSECRET123",
  "remoteOrderNumber": "987654321",
  "RestaurantID": "RESTAURANT123"
}
        

Başarılı Yanıt

Başarılı bir istekte, aşağıdaki gibi bir JSON formatında yanıt döner:


{
	"PackageID": 1,
	"OutSourceID": 1,
	"StatusValue": "Yanıt int olarak dönecektir:
				1 (Sipariş oluşturuldu),
				2 (Sipariş hazırlanıyor),
				3 (Sipariş kuryeye atandı),
				4 (Kurye siparişi kabul etti),
				5 (Kurye siparişi reddetti),
				6 (Sipariş teslimata çıktı),
				7 (Sipariş müşteriye doğru yola çıktı),
				8 (Sipariş teslim edildi),
				9 (Sipariş iptal edildi)
	",
	"Status": "Dönebilecek yanıtlar:
				Sipariş oluşturuldu,
				Sipariş hazırlanıyor,
				Sipariş kuryeye atandı,
				Kurye siparişi kabul etti,
				Kurye siparişi reddetti,
				Sipariş teslimata çıktı,
				Sipariş müşteriye doğru yola çıktı,
				Sipariş teslim edildi,
				Sipariş iptal edildi
	",
	"RestaurantID": 456,
	"RemoteOrderNumber": "987654321",
	"Address": "Örnek Adres",
	"AddressDetail": "Adres Detayları",
	"Latitude": "38.9637",
	"Longitude": "35.2433",
	"PackageType": "Yemek Teslimatı",
	
	// Sipariş kaydedilirlen gelen ilk ödeme yöntemi bilgisidir.
		 
	"PaymentMethod": "1",
	"PaymentMethodString": "Kredi Kartı",
	"PackagePrice": 50.75,
	"CreateDate": "2024-10-05T10:00:00",
	"OrderNote": "Kapıya bırakın",
	"CourierName": "John Doe",
	"CustomerName": "John Doe",
	"CustomerPhone": "5551234567",
	"TargetDate": "2024-10-05T10:45:00",
	"IsFutureOrder": false,
	"IsPickUpOrder": false,
	"Products": [
        {
            "productName": "Burger",
            "unitPrice": 25.00,
            "quantity": 2,
            "totalAmount": 50.00
        }
	],
	 
	 // Siparişin ödemesi alınırken ödeme yöntemi değişebilir veya parçalı ödeme alınabilir. 
	 // Bu alan paketin teslim edildikten sonraki son ödeme yöntemi bilgisini döner.
	
	"LastPackagePayments": [
        {
            "PaymentMethod": 1,
            "PaymentMethodString": "sample string",,
            "Price": 2.0
        },
        {
            "PaymentMethod": 1,
            "PaymentMethodString":"sample string",,
            "Price": 2.0
        }
    ]
}

Hata Durumları

Paket İptal Etme API Dokümantasyonu

Endpoint

POST http://api.hesapkurye.com/OutSource/Cancel

Açıklama

Bu API, belirli bir ApiKey, ApiSecret, remoteOrderNumber, RestaurantID ve Reason parametreleri ile gönderilen paketi iptal eder. İptal edilen paket, veritabanında durumu değiştirilir ve ilgili taşıyıcıya iptal durumu bildirilir.

Parametreler

Body Örneği

Aşağıda, POST isteği ile body üzerinden gönderilecek JSON formatı:


{
  "ApiKey": "ABCDEFG1234567",
  "ApiSecret": "XYZSECRET123",
  "remoteOrderNumber": "987654321",
  "RestaurantID": "RESTAURANT123",
  "OutSourceID": 1,
  "Reason": "Müşteri talebi"
}
        

Başarılı Yanıt

Başarılı bir istekte, API aşağıdaki gibi bir yanıt döner:


{
  "message": "Paket iptal edildi."
}
        

Hata Durumları

Kullanıcı Bilgileri İle Entegrasyon Parametrelerini Alan API

Endpoint

POST https://api.hesapkurye.com/OutSource/RestaurantInfos

Açıklama

Bu API restoran kullanıcısının Kullanıcı Adı ve Şifresi ile kullanılacak RestaurantID, ApiKey ve ApiSecret bilgilerini döner.

Body Örneği

Aşağıda, POST isteği ile body üzerinden gönderilecek JSON formatı:


{
    "ProjectID": 3, //Hesap Kurye: 3, Bk Express: 4
    "UserName": "abc",
    "Password": "xyz",
}

Hata Durumları