E-Ticaret sistemi, JSON olarak gönderilen verileri işleyerek, kendi yazılımlarınızdan kategori ve ürün işlemlerini kontrol etmeniz için geliştirilmiştir. Ilgili JSON istekleri, bütün modern yazılım dillerinde ve terminal üzerinde cURL ile gerçekleştirilebilmektedir.
Standart olarak API nin istek url adresi https://alanadiniz.com/panel/api.php üzerinde yer almaktadır.
Her API işlemi, kimlik doğrulama için kullanılan bir [anahtar] parametresi içermektedir. İlgili anahtarı, kontrol panelinin AYARLAR menüsündeki API ANAHTARI sekmesinden yaratabilirsiniz.
Kategori ekleme işlemi için gönderilecek json alanları, aşağıdaki örnekte belirtilmiştir.
{'anahtar':'bm_f65915a60a11fc29', 'islem':'kategoriEkle', 'parent':'0','isim':'Demo Kategori'}
İlgili JSON gönderisindeki anahtar değişkeninin karşılığı, kimlik doğruluma bölümünde yarattığınız API ANAHTARI `nız olmalıdır.
Tıpkı anahtar değişkeni gibi, islem değişkeni de, her bir JSON gönderisi için gerekli bir bilgidir. Kategori ekleme için gönderilecek işlem bilgisi kategoriEkle `dir.
parent değişkeni, ilgili kategorinin bir üst kategorisi olup olmadığını belirler. Eğer bu değer 0 ise, yaratacağınız kategori bir ANA KATEGORİ olarak sistemde yaratılacaktır. Bir iç kategori yaratmak isterseniz, bu bölüme, ana kategorinin kategoriid bilgisini girmelisiniz.
isim değişkeni, yaratılacak kategorinin ismini tutar.
Her bir json gönderisinden sonra, sistem size yine json cinsi bir cevap ile karşılık verecektir. İlgili json verisinin deger değişkeni, size açılan kategorinin kategoriid değerini iletecektir.
Aynı isimli yalnızca tek bir kategori yaratılabilir. Eğer zaten var olan bir kategoriyi, aynı isimle tekrar yaratma isteği gönderirseniz, bu kategori yaratım işlevi tamamlanmayıp, size geri dönüş olarak zaten var olan kategoriid bilgisi yollanır. Yani bir sorulama işlemi gibi de kullanılabilir.
var url = "https://cepwebsiparis.com/panel/api.php";
var anahtar = "bm_b6812eb9df195fe3";
var acilacak_kategori = "Temel Gıda";
var parent_kategori = "0"; //Bu bir ana kategori olacak, bir parenti yok demek
var acilan_katid = "";
// Gönderilecek sorguyu hazırlıyoruz
var httpWebRequest2 = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest2.ContentType = "application/json";
httpWebRequest2.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest2.GetRequestStream()))
{
string json = "{"anahtar":"" + anahtar + ""," +
""isim":"" + acilacak_kategori + ""," +
""parent":"" + parent_kategori + ""," +
""islem":"kategoriEkle"}";
streamWriter.Write(json);
}
//Sorguyu gönderip, geri dönen, yeni açılmış kategorinin idsini okuyoruz.
var httpResponse2 = (HttpWebResponse)httpWebRequest2.GetResponse();
using (var streamReader = new StreamReader(httpResponse2.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
System.Diagnostics.Debug.WriteLine(result);
using JsonDocument doc = JsonDocument.Parse(result);
JsonElement root = doc.RootElement;
//
try
{
acilan_katid = root.GetProperty("deger").ToString();
}
catch (Exception ex)
{
MessageBox.Show("Yanlış adres ya da anahtar", "Yükleme hatası");
debug("Hatalı adres ya da anahtar!");
break;
}
}
Ürün eklemek için gönderilecek JSON sorgusunun değişkenleri aşağıdaki örnekte tanımlanmıştır.
{'anahtar':'bm_f65915a60a11fc29', 'islem':'urunEkle2', 'isim':'Bakla KG', 'kategori':'36','fiyat':'12.24', 'stok':'-1', 'ref':'001238892'}
İlgili JSON gönderisindeki anahtar değişkeninin karşılığı, kimlik doğruluma bölümünde yarattığınız API ANAHTARI `nız olmalıdır.
Tıpkı anahtar değişkeni gibi, islem değişkeni de, her bir JSON gönderisi için gerekli bir bilgidir. Kategori ekleme için gönderilecek işlem bilgisi kategoriEkle `dir.
isim değişkeni, ürün isminin değeri tutar.
kategori değişkeni, ilgili ürünün ait olduğu kategorinin kategoriid bilgisini tutar
fiyat değişkeni ürün fiyat bilgisini tutar ve yalnızca nokta(.) ile küsürat girilebilir
stok değişkeni ürünün stok sayısını belirler. Eğer -1 girilirse ürün sınırsız sayıda satılır
ref değişkeni ürünün barkod numarasını tutar ve sonraki güncelleme işlemlerinde, bu barkod numarası ile sorgu yapılır
httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = "{"anahtar":"" + tApi.Text + ""," +
""isim":"" + u.isim + ""," +
""kategori":""+acilan_katid+""," +
""ref":"" + u.barkod + ""," +
""fiyat":"" + u.fiyat + ""," +
""stok":"" + u.stok + ""," +
""islem":"urunEkle2"}";
streamWriter.Write(json);
System.Diagnostics.Debug.WriteLine(json);
}
httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
System.Diagnostics.Debug.WriteLine(result);
using JsonDocument doc = JsonDocument.Parse(result);
JsonElement root = doc.RootElement;
katid = root.GetProperty("deger").ToString();
}
Ürün kategorisi, fiyatı ve stoğunu güncellemek için, ürün ekleme işlemi yapılması yeterlidir. Sistem, ilgili ürünün barkod koduna bakarak, daha önce sisteme kayıtlı olup olmadığını kontrol eder. Eğer ürün kayıtlı değilse, yeni bir ürün yaratır. Eğer ürün daha önce kayıt edilmişse, gönderilen bilgiler ile, eski bilgileri günceller.
Birmobil eticarete gönderilen ve henüz kapatılmamış tüm siparişleri çekmek için gerekli olan json sorgusu, aşağıdaki örnekte gösterilmiştir.
{"anahtar": "bm_33536cf8d9b7a77c", "islem": "tumsiparisler"}
Tüm aktif siparişleri döndüren bu sorgunun cevabı JSON formatında size iletilecektir. Örnek cevap aşağıda verilmiştir.
[
{
"teslimat": "3",
"icerik": "{"urunler":["PINAR ACILI KETCAP 600ML","HEINZ KETCAP ORGANIK 580GR","BARILLA PAPARDELLE MAKARNA 250GR","MAGNUM MINI BAL BADEM 6LI","CARTEDOR ORMAN MEYVELI 850ML","NESTLE NEQUIK TOZ 375GR DISPLAY"],"adet":["1","1","1","1","1","1"],"toplam":["7.85","21.5","14.95","14.99","18.99","12.75"]}",
"cuzdan": "0",
"kurye": "",
"semt": "ARNAVUTKÖY",
"id": "177",
"siparisnotu": "[Nakit] ",
"tip": "KAPIDA",
"email": "demo@cepwebsiparis.com",
"toplam": "94.03",
"items": [
{
"ref": "8690565040454",
"isim": "PINAR ACILI KETCAP 600ML",
"adet": "1",
"birim": "7.85",
"urunid": "41511",
"resimler": [{ "id": "32454" }]
},
{
"ref": "50157709",
"isim": "HEINZ KETCAP ORGANIK 580GR",
"adet": "1",
"birim": "21.5",
"urunid": "41508",
"resimler": [{ "id": "32452" }]
},
{
"ref": "8076809514774",
"isim": "BARILLA PAPARDELLE MAKARNA 250GR",
"adet": "1",
"birim": "14.95",
"urunid": "38695",
"resimler": [{ "id": "29811" }]
},
{
"ref": "8690637809170",
"isim": "MAGNUM MINI BAL BADEM 6LI",
"adet": "1",
"birim": "14.99",
"urunid": "41732",
"resimler": [{ "id": "32661" }]
},
{
"ref": "8690637807152",
"isim": "CARTEDOR ORMAN MEYVELI 850ML",
"adet": "1",
"birim": "18.99",
"urunid": "41729",
"resimler": [{ "id": "32658" }]
},
{
"ref": "8690632705507",
"isim": "NESTLE NEQUIK TOZ 375GR DISPLAY",
"adet": "1",
"birim": "12.75",
"urunid": "38657",
"resimler": [{ "id": "29783" }]
}
],
"isim": "Demo",
"tarih": "2021-12-05 12:41:48",
"adres": "Fistan Apt No 6 ANADOLU MAH. - ARNAVUTKÖY - İSTANBUL",
"telefon": "5324572701",
"gps": "35.1359306,33.9242938"
}
]