Sipariş oluşturma
POST /SaveOrder
Adisyo'da yeni bir sipariş oluşturur.
Örnek istek
curl -X POST 'https://ext.adisyo.com/api/External/v2/SaveOrder' \
--header "x-api-key: ..." \
--header "x-api-secret: ..." \
--header "x-api-consumer: ..." \
--header 'Content-Type: application/json' \
--data '{
"CustomerName": "Ahmet",
"CustomerSurname": "Yılmaz",
"CustomerId": "MUS-03",
"CustomerPhone": "5551234567",
"CustomerPhone2": "5559876543",
"Address": "Atatürk Mahallesi, Çiçek Sokak No:12 Daire:4",
"AddressDescription": "Migros’un karşısındaki apartman, kırmızı kapılı bina",
"Region": "Ataşehir",
"City": "İstanbul",
"PaymentMethodId": 3,
"PaymentNote": "Teslimatta kredi kartı ile ödeme yapılacak",
"Discount": 0,
"OrderTotal": 12.00,
"OrderNote": "Lütfen sipariş sıcak getirilsin, yanında ıslak mendil ve peçete de olsun",
"WebOrderId": "SIP-07",
"CustomerLatitude": "40,987654",
"CustomerLongitude": "29,123456",
"OrderDetails": [
{
"ProductUnitId": 2359421,
"Quantity": 2,
"OrderDetailNote": "Büyük boy olsun, baharatsız tercih ediyorum"
},
{
"ProductUnitId": 2359422,
"Quantity": 1
}
]
}'İstek Parametreleri
Yukarıdaki sipariş kaydetme isteğini aşağıdaki örnek senaryo üzerinden açıklayalım:
- Restoranınızın bir web sitesi var.
Ahmet Yılmazisimli bir müşteri, web siteniz üzerinden sipariş veriyor.- Eğer bu müşteri daha önce sisteminizde kayıtlı değilse, öncelikle kendi veritabanınıza kaydetmeli ve oluşturduğunuz müşteri ID’sini (örnekte
MUS-03) Adisyo API’sine göndermelisiniz. - Oluşan siparişi, kendi sisteminizde
SIP-07olarak kaydettiğinizi varsayalım. Bu siparişi Adisyo'ya aynı referans numarası ile gönderirseniz, işlemin takibi ve sonraki adımlar için kullanılabilir.
| Parametre Adı | Data Tipi | Açıklama |
|---|---|---|
CustomerName | String | Siparişi veren müşterinin adı |
CustomerSurname | String | Siparişi veren müşterinin soyadı |
CustomerId | String | Siparişi veren müşterinin sizin sisteminizdeki ID'si (MUS-03) |
CustomerPhone | String | Siparişi veren müşterinin birincil telefon numarası |
CustomerPhone2 | String | Siparişi veren müşterinin ikincil telefon numarası |
Address | String | Siparişi veren müşterinin adresi |
AddressDescription | String | Siparişi veren müşterinin adres tarifi |
Region | String | Siparişi veren müşterinin semt/ilçe adı |
City | String | Siparişi veren müşterinin şehri |
PaymentMethodId | Number | Ödeme Tipi |
PaymentNote | String | Ödeme notu |
Discount | Number | Siparişteki toplam indirim tutarı |
OrderNote | String | Sipariş notu |
WebOrderId | String | Siparişin sizin sisteminizdeki ID'si (SIP-07) |
OrderTotal | Number | Sipariş toplam tutarı |
DeliveryFee | Number | Teslimat ücreti (Sipariş toplamını hesaplama) |
ServiceCharge | Number | Servis ücreti veya diğer ekstra hizmet ücretleri (Sipariş toplamını hesaplama) |
CustomerLatitude | String | Müşteri enlem bilgisi (##,####) |
CustomerLongitude | String | Müşteri boylam bilgisi (##,####) |
OrderDetails | Array | Sipariş detaylarının listesi |
[].OrderDetails.ProductUnitId | Number | Ürün birim ID'si (Siparişte ürünü belirtme) |
[].OrderDetails.ProductCode | String | Ürün kodu (Siparişte ürünü belirtme) |
[].OrderDetails.Quantity | Number | Ürün adedi |
[].OrderDetails.OrderDetailNote | String? | Sipariş detayı notu |
(TODO) [].OrderDetails.Name | String? | Ürün veya menü adı |
[].OrderDetails.IsMenu | Boolean | Menü mü? (Menü ürünleri) |
[].OrderDetails.MenuId | Number? | Menü ID'si (Menü ürünleri) |
[].OrderDetails.ParentId | String? | Bağlı olduğu menü veya ürünün ID'si (Menü ürünleri) |
Sipariş Toplamını Hesaplama
Sipariş toplam tutarına eklenen ekstra ücretleri 2 ayrı değer üzerinden iletebilirsiniz.
Teslimat için ayrıca bir ödeme alınıyorsa bunu DeliveryFee alanı üzerinden gönderebilirsiniz.
Örneğin, ürün kalemleri 40, teslimat ücreti 15 TL olan bir sipariş için, OrderTotal: 55, DeliveryFee: 15 olarak iletilmelidir.
Ayrıca, ekstra servis ücreti veya buna benzer ek ücretler de ServiceCharge alanı üzerinden gönderilmelidir.
Örneğin, paketleme ücreti 10, ek servis ücreti 20 olarak hizmet veren bir restoran için,
ürün kalemleri de 90 TL olan bir siparişte ServiceCharge: 30, OrderTotal: 120 TL olarak iletilmelidir.
Bu siparişte bir de 20 TL teslimat ücreti varsa OrderTotal: 140 ve DeliveryFee: 20 TL olmalıdır.
Siparişte ürünü belirtme
Ürün listesi endpointinden alınan ürün listesini baz alarak, oluşturacağınız siparişlerin ürün detaylarında ProductUnitId veya ProductCode alanlarından yalnızca birini tercih etmeniz gerekir.
Siparişteki ürün listesini oluştururken bu alanlardan birini doldurup diğerini null bırakmalı veya hiç göndermemelisiniz.
Menü ürünleri
Sipariş içindeki bir ürün, farklı bir menü altında bulunuyorsa, kendisine ait bir ParentId değeri olmalıdır.
Aksi takdirde, ParentId gönderilmemeli veya null olarak belirtilmelidir.
Not: Bir ürünün
MenuIdveParentIddeğerleri aynı olmamalıdır.
Örnek: Menü İçeren Ürünler
Hamburgerbir menüdür, bu nedenle kendisine ait birMenuIddeğeri vardır.Kola,Hamburger Menüsüaltında yer aldığı içinParentIddeğeri,Hamburger’in MenuIddeğeri ile aynı olmalıdır.
"OrderDetails": [
{
"Quantity": 1,
"ProductUnitId": 123,
"IsMenu": true,
"MenuId": 1,
"ParentId": null
},
{
"Quantity": 1,
"ProductUnitId": 234,
"IsMenu": false,
"MenuId": null,
"ParentId": "1"
}
]Örnek: Bağımsız Ürünler
Eğer Kola herhangi bir menüye bağlı değilse, ParentId parametresi gönderilmemelidir.
"OrderDetails": [
{
"Quantity": 1,
"ProductUnitId": 123,
"IsMenu": false,
"MenuId": null,
"ParentId": null
},
{
"Quantity": 1,
"ProductUnitId": 234,
"IsMenu": false,
"MenuId": null,
"ParentId": null
}
]Örnek cevap
{
"orderId": 643287,
"orderTotal": 18.00,
"discount": 0.00,
"insertedDate": "2025-09-26T20:21:40.05",
"status": 100,
"message": null
}Cevap parametreleri
| Parametre Adı | Data Tipi | Açıklama |
|---|---|---|
orderId | Number | Siparişin Adisyo sistemindeki ID'si |
orderTotal | Number | Siparişin toplam tutarı |
discount | Number | Siparişte uygulanan toplam indirim tutarı |
insertedDate | Date ISO 8601 | Siparişin sisteme kaydedildiği tarih |
status | Number | Sonuç Kodları |
message | String | İşlem sonucu mesajı |