Rest API Servisi

ShopPHP Rest API Service ile, 3rd party programlarınızı (Muhasebe, Mobile app. vs.) ShopPHP ile entegre edebilirsiniz. Serviste ürün, kategori, marka, siparişler ve kullanıcılar servislerine okuma ve yazma desteği sunulmaktadır. Rest API ile ulaşabileceğiniz servisler aşağıdaki gibidir.

1. Önce rest API servisi sunan sitede admin statsüsünde bir kullanıcı açılmalıdır. 
	Örnek : email adresi : restapi@domainadi.com şifre : testapi
	Sonra bu kullanıcı bir bayi grubuna atanmalı ve bu bayi grubunda "Rest API kullanabilir" işaretlenmelidir.
	Son olarak ilgili panelde "XML veya Rest API Kullanabileceği IP'ler" kısmına Rest API kullanacak IP adresi eklenmelidir. Boş bıraklırısa bir IP kısıtlaması olmaz. 
2. Her işlem için POST tipinde auth_email ve auth_key gönderilmelidir. 
	auth_email => email adresi. 
	auth_key şifre ve email'in tekrar şifrelenmiş halidir. Almak için önce şifre md5 olarak şifrelenir, sonra bu değer email adresi eklenerek tekrar şifrelenir.
	PHP Örnek : $auth_key = md5('restapi@domainadı.com'.md5('testapi'));
3. Tüm ürünleri listelemek için /rest/products çağrılmalıdır.
4. Tüm varyasyonları listelemek için /rest/vars çağrılmalıdır.
5.  Ürün sorgusu için /rest/products/ID/ veya /rest/products/cat/ veya /rest/products/namePath/  çağrılmalıdır.
	Örnek :  /rest/products/ID/132
	Örnek :  /rest/products/namePath/Elektronik_Televizyon

6. Kategoriye ait ürün sorgusu için /rest/products/catID/ veya /rest/products/namePath/ çağrılmalıdır. (namePath içerisikdeki / karakteri _ ile replace edilmelidir.)
	Örnek :  /rest/products/catID/132
	Örnek :  /rest/products/namePath/Elektronik_Televizyon

7. Markaya ait ürün sorgusu için /rest/products/markaID/ çağrılmalıdır.
	Örnek :  /rest/products/markaID/132
8. Kategorileri listelemek için /rest/list/kategori çağrılmalıdır.
9. Alt Kategorileri listelemek için /rest/list/kategori/catID veya /rest/list/kategori/namePath  çağrılmalıdır. (namePath içerisikdeki / karakteri _ ile replace edilmelidir.)
10. Kategori eklemek / güncellemek için /rest/setCategory çağrılmalıdır. POST olarak kategoriye ait veriler gönderilmelidir.
	POST olarak gönderilebilecek field isimleri : 
		ID (int) // Yazılıma ait kategori ID değeri
		categoryCode (string) // Sizin tarafınızdan gönderilen, benzersiz kateori kodu.
			ID ve categoryCode 'dan birinin gönderilmesi zorunludur.

		parentID (int)  // Yazılım kategori listesinde gelen üst kategori ID değeri.
		parentCategoryCode (string)  // Sizin tarafınızdan gönderilen, benzersiz üst kateoriye ait kod.
			Eğer kategorinin üst kategorisi set edilecekse, parentID ve parentCode  'dan birinin gönderilmesi yeterlidir.
		
		name (string)

	İşlem sonrası ilgili kategori bilgileri XML olarak döner. Eğer kategori daha önce eklendiyse, yeni kategori eklenmez ve var olan kategori bilgileri döner.
11. Marka eklemek / güncellemek için /rest/setBrand çağrılmalıdır. POST olarak kategoriye ait veriler gönderilmelidir.
	POST olarak gönderilebilecek field isimleri : 
		ID (int) // Yazılıma ait marka ID değeri (Gönderimezse, ve gönderilen marka yoksa yeni eklenir.)
		name (string)

	İşlem sonrası ilgili marka bilgileri XML olarak döner. Eğer marka daha önce eklendiyse, yeni marka eklenmez ve var olan marka bilgileri döner.
12. Ürün eklemek / güncellemek için /rest/setProduct çağrılamlıdır. POST olarak ürüne ait veriler gönderilmelidir. Yeni bir ürün eklenmeden önce, kategori ve marka eklenmiş ve ilgili ID'lerin elimizde olması gerekir.
	POST olarak gönderilebilecek field isimleri : 
		ID (int) // Yazılıma ait ürün ID değeri
		productCode (string) // Sizin tarafınızdan gönderilen, benzersiz ürün kodu.
			ID ve categoryCode 'dan birinin gönderilmesi zorunludur.

		catID (int), // kategori kodu değil, yazılıma ait kategori ID değeri olmalıdır.
		virtualCatIDs (string), // kategori kodu değil, yazılıma ait kategori ID değerleri olmalıdır. (ÖR : 12,22,33,44)
		markaID (int), // marka adı değil, yazılıma ait marka ID değeri olmalıdır.
		name (string),
		listeDetay (string),
		onDetay (string),
		detay (text),
		resim1 (text) ... resim5 (text), // Bir ürüne 5 adet resin eklenebilir. Resim download URL adresi girilmelidir.
			veya
			resim_base64_1 (base64) ... resim_base64_5 (base64), // Şeklinde base64 olarak resimler upload edilebilir.
		stok (float),
		kdv (int), // %18 için 18 gönderilmelidir.
		fiyat (float),
		piyasafiyat (float),
		fiyatBirm (string),
		garanti (int), // Garanti ay süresi.
		desi (float),
		gtin (string) // GTIN veya EAN veya UPC veya ISBN gibi barkod bilgisi.
13. Ürün fiyat ve stok güncellemek için /rest/setProduct/priceAndStock çağrılamlıdır. POST olarak ürüne ait veriler gönderilmelidir.
	POST olarak gönderilebilecek field isimleri : 
		ID (int) // Yazılıma ait ürün ID değeri. Zorunludur.
		stok (int),
		kdv (int), // %18 için 18 gönderilmelidir.
		fiyat (float),
		piyasafiyat (float),
		fiyatBirim (string)	
	
	Ürün silmek için /rest/setProduct/remove çağrılamlıdır. POST olarak ürüne ait veriler gönderilmelidir.
	POST olarak gönderilebilecek field isimleri : 
		ID (int) // Yazılıma ait ürün ID değeri. Zorunludur.
14. Ürün varyant güncellemek için /rest/setProduct/variant çağrılamlıdır. POST olarak ürüne ait veriler gönderilmelidir. Yazılım altyapısında 2 'li varyasyona ait X-Y kombinasyon desteği vardı. 
	Örnek : Kazan ürününe ait XL bedeni ve Kırmızı renke sahip varyasyonu.
	
	POST olarak gönderilebilecek field isimleri : 
		ID (int) // Yazılıma ait ürün ID değeri. Zorunludur.
		varStock (floar), // Varyasyon Stok Adet
		varCode (string), // Varyasyon Stok Kodu.
		varBarcode (string), // Varyasyon Stok Kodu.
		varResim (string), // Varyasyon Resmi download URL adresi.
		dstok (floar), // Düşülecek Stok Adeti (varsayılan 1)
		var1_name (string), // Örnek : Beden
		var2_name (string), // Örnek : Renk
		var1_var (string), // Örnek XL
		var2_var (string), // Örnek Kırmızı
		var1_fark (float), // Fiyat farkı.
		var2_fark (float), // Fiyat farkı.
15. Ürün filtre güncellemek için /rest/setProduct/filter çağrılamlıdır. POST olarak ürüne ait veriler gönderilmelidir.
	POST olarak gönderilebilecek field isimleri : 
		ID (int) // Yazılıma ait ürün ID değeri. Zorunludur.
		title (string), // Örnek : Ekran Çözünürlüğü
		str (sring), // Örnen Full HD

16. Siparişlere ait sorgu için /rest/orders/date/_ çağrılmalıdır.
	Örnek : /rest/orders/date/2017-12-31_2019-12-31
17. Tek siparişe ait sorgu için /rest/orders/no/ çağrılmalıdır. 
	Örnek : /rest/orders/no/158238365
18. Duruma göre siparişleri listelemek için  /rest/orders/durum/ çağrılmalıdır. 
	Örnek : /rest/orders/durum/2

	Durum No : 1= Ödeme Onay Bekliyor. 2= Siparis Onaylandı / Hazırlanıyor., 51= Siparişiniz Kargoya Teslim Edildi., 81= Teslimat Yapıldı., 89= Değişim Talebi Alındı., 90= İptal Talebi Alındı.
19. Siparişe ait durum değiştirmek için /rest/updateOrder/no/ çağrılmalıdır.
	Örnek : /rest/updateOrder/no/158238365/51	
	POST olarak gönderilebilecek field isimleri : 
		durum (int),
		kargoTarih (date),
		kargoFirma (int),
		kargoSeriNo (string),
		kargoURL (string)
	Durum No : 1= Ödeme Onay Bekliyor. 2= Siparis Onaylandı / Hazırlanıyor., 51= Siparişiniz Kargoya Teslim Edildi., 81= Teslimat Yapıldı., 89= Değişim Talebi Alındı., 90= İptal Talebi Alındı.
20. Kargo Firmalarını listelemek için /rest/list/kargo çağrılmalıdır.
21. Bannerları listelemek için /rest/list/banner çağrılmalıdır.
22. Slider resimlerini listelemek için /rest/list/slider çağrılmalıdır.
23. Şehirleri listelemek için /rest/list/city çağrılmalıdır.
24. Semtleri listelemek için /rest/list/town çağrılmalıdır.
25. Kullanıcıları listelemek için /rest/users çağrılmalıdır.
	Tek bir kullanıcı çağırmak için /rest/users/ID/ çağrılmalıdır.
	Örnek : /rest/users/ID/132
26. Kullanıcı eklemek veya güncellemek için setUser çağrılmalır.
	Örnek : /rest/setUser

	POST olarak gönderilebilecek field isimleri : 
	email (string), // Kullanıcı e-posta değeri zorunludur. Eğer bu e-posta varsa kullanıcı bilgileri güncellenir. Yoksa yeni kullanıcı eklenir.
	password (string), // Kullanıcı şifresi. md5 hash ile veri tabanında saklanır.
	name (string),
	lastname (string),
	birtdate (date),
	tckNo (int),
	vergiDaire (string),
	vergiNo (string),
	efatura (bool),
	city (int), // iller tablosundaki plaka kodu
	semt (int), // ilçeler tablosundaki semt ID değeri
	address (string),
	ceptel (string), // XXX-YYYYYYY formatında telefon girişi
	istel (string), // XXX-YYYYYYY formatında telefon girişi
	evtel (string), // XXX-YYYYYYY formatında telefon girişi
	ebulten (bool),
	ebultensms (bool),
	bayiStatus (bool), // 1: Onaylı üye. 0: Onaysız üye.
27. Adresleri listelemek için /rest/list/address/ çağrılmalıdır.
	Örnek : /rest/list/address/1
28. Kullanıcı eklemek veya güncellemek için setAddress çağrılmalır.
	Örnek : /rest/setAddress

	POST olarak gönderilebilecek field isimleri : 
	userID (int), // Kullanıcı ID değeri zorunludur.
	addressID (int), // Address ID varsa güncellenir, yoksa yeni eklenir.
	title (string),
	address (string),
	city (int), // iller tablosundaki plaka kodu
	semt (int), // ilçeler tablosundaki semt ID değeri
	tckNo (int),
	vergiDaire (string),
	vergiNo (string)
29. SMS göndermek için /rest/sendSMS/no/ çağrılmalıdır.
	Örnek : /rest/sendSMS/no/158238365
	POST olarak gönderilebilecek field isimleri : 
		msg (string)
30. HTML olarak taksit ekranı /rest/html/taksit/ ile çağrılmalıdır.
	Örnek : /rest/html/taksit/190
31. Kullanıcıya favori ürün eklemek için setFavorite çarılmalıdır.
	Örnek : /rest/setFavorite

	POST olarak gönderilebilecek field isimleri : 
	userID (int), // Kullanıcı ID değeri zorunludur.
	urunID (int), // Ürün ID değeri zorunludur.

	Başaırılı durumda success, daha önce zaten eklenmiş gibi başarısız durumlarda ERROR yanıtı döner.
32. Kullanıcının favori ürününü kaldırmak için removeFavorite çarılmalıdır. 
	Örnek : /rest/removeFavorite

	POST olarak gönderilebilecek field isimleri : 
	userID (int), // Kullanıcı ID değeri zorunludur.
	urunID (int), // Ürün ID değeri zorunludur. 

	Başaırılı durumda success, ürünün zaten favorilerde olmaması gibi başarısız durumlarda ERROR yanıtı döner.
33. Bir promosyon kodu eklemek için setPromotion çarılmalıdır. 
	Örnek : /rest/setPromotion

	POST olarak gönderilebilecek field isimleri : 
	code (string), // Promosyon kodu zorunludur.
	min (float), // Promosyon kodu kullanabilmek için asgari sipariş tutarı.
	discount (float), // İndirim oranı. %10 indirim için 0.1 gönderilmelidir.
	amount (float), // İndirim tutarı. 10 TL indirim için 10 gönderilmelidir.
	tarih (date), // Promosyon kodu son kullanım tarihi. Ör : 2020-12-31

	Başaırılı durumda success, kodun zaten favorilerde olmaması gibi başarısız durumlarda ERROR yanıtı döner.
34. Sepet görüntülemek için /rest/basket/view/ URL'ini kullanabiliriz.
	Örnek :	/rest/basket/view/123456789
35. Sepete ürün eklemek için  /rest/basket/insert/ URL'ini kullanabiliriz.
	Örnek :	/rest/basket/insert/123456789

	POST olarak gönderilebilecek field isimleri : 
	urunID (int), // Sepete eklenecek ürün ID
	adet (float), // Eklenecek ürün adet.
	userID (int), // Eklenecek kullanıcı ID
	ozellik1detay (string), // Eklenecek varyasyon detay. Buradaki 1 yerine varyasyon sırasını girebiliriz. Ör : ozellik3detay
36. Sepetten ürün silmek için /rest/basket/remove/ URL'ini kullanabiliriz. sepet ID'i sepet view ile gelen XML 'de görebilriz.
	Örnek :	/rest/basket/remove/123456789

	POST olarak gönderilebilecek field isimleri : 
	lineID (int), // Silinecek Sepet ID
37. Sepetten ürün adet güncellemek için /rest/basket/update/ URL'ini kullanabiliriz. sepet ID'i sepet view ile gelen XML 'de görebilriz.
	Örnek :	/rest/basket/update/123456789

	POST olarak gönderilebilecek field isimleri : 
	lineID (int), // Güncellenecek Sepet ID
	adet (float), // Güncellenecek adet
38. Sepet'i boşaltmak için /rest/basket/clean/ URL'ini kullanabiliriz.
	Örnek :	/rest/basket/clean/123456789
39. Sipariş submit etmek için /rest/setOrder çağrılmaldır.
	Örnek :	/rest/setOrder

	POST olarak gönderilebilecek field isimleri :
	--Sipariş Bilgileri--
	no (int), // 9 habeli benzersiz sipariş numarası
	name (string),
	lastname (string),
	birtdate (date),
	tckNo (int),
	vergiDaire (string),
	vergiNo (string),
	city (int), // iller tablosundaki plaka kodu
	semt (int), // ilçeler tablosundaki semt ID değeri
	address (string),
	city2 (int), // Fatura için iller tablosundaki plaka kodu
	semt2 (int), // Fatura için ilçeler tablosundaki semt ID değeri
	address2 (string), // Fatura için adres
	ceptel (string), // XXX-YYYYYYY formatında telefon girişi
	istel (string), // XXX-YYYYYYY formatında telefon girişi
	evtel (string), // XXX-YYYYYYY formatında telefon girişi
	kargoTutar (float), // Sipariş kargo tutarı
	toplamTutarTL (float), // Sipariş toplam tutar TL,
	odemeTipi (string), // Ödeme Tipi

	--Sepet Bilgileri--
	urunID_1 (int), // Sepete eklenecek ürün ID
	urunName_1 (string), Eğer veri tabanındaki adından farklıysa eklenecek ürün Adı,
	urunFiyat_1 (string), TL Cinsinde satış fiyatı,
	urunAdet_1 (float), // Eklenecek ürün adet.
	ozellik1detay_1 (string), // Eklenecek varyasyon detay. Buradaki 1 yerine varyasyon sırasını girebiliriz. Ör : ozellik3detay

	urunID_2 (int), // Sepete eklenecek ürün ID
	urunName_1 (string), Eğer veri tabanındaki adından farklıysa eklenecek ürün Adı,
	urunFiyat_2 (string), TL Cinsinde satış fiyatı,
	urunAdet_3 (float), // Eklenecek ürün adet.
	ozellik1detay_2 (string), // Eklenecek varyasyon detay. Buradaki 1 yerine varyasyon sırasını girebiliriz. Ör : ozellik3detay

	...
	
	50 adete'e kadar sepete ürün eklenebilir.
40. Sipariş durum gümcellemek için /rest/setOrderStatus çağrılmaldır.
	Örnek :	/rest/setOrderStatus

	POST olarak gönderilebilecek field isimleri :
	[Sipariş] 
	no (int), // 9 habeli benzersiz sipariş numarası
	status (int), // Sipariş durum değeri. 1- Onay bekliyor 2- Onaylandı 51-Kargoya teslim edildi. 81- Sipariş teslim edildi. 91- İptal edildi."
41. Adres Şehir ve Semt ID'leri için /rest/getCityTown çağrılmaldır.
	Örnek :	/rest/getCityTown


Örnek PHP Kodu - Ürün Ekleme

// API bağlantı bilgileri
$api_url = "https://api.siteniz.com/rest/setProduct"; // API URL'sini doğru şekilde ayarlayın
$auth_email = "restapi@domainadi.com"; // API kullanıcı email'i
$auth_password = "testapi"; // API kullanıcı şifresi

// auth_key oluşturma
$auth_key = md5($auth_email . md5($auth_password));

// Ürün bilgilerini tanımlayın
$product_data = [
    "auth_email" => $auth_email,
    "auth_key" => $auth_key,
    "productCode" => "PRD001", // Benzersiz ürün kodu
    "name" => "Örnek Ürün", // Ürün adı
    "catID" => 123, // Kategori ID'si
    "markaID" => 456, // Marka ID'si
    "stok" => 100, // Stok adedi
    "fiyat" => 199.99, // Ürün fiyatı
    "kdv" => 20, // KDV oranı (%10)
    "detay" => "Bu ürün çok güzel bir üründür.", // Ürün detayı
    "resim1" => "https://example.com/images/urun1.jpg", // Ürün resmi URL'si
];

// cURL ile POST isteği yapma fonksiyonu
function sendPostRequest($url, $data) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // SSL doğrulamasını devre dışı bırakın, eğer sorun yaşarsanız
    $response = curl_exec($ch);
    curl_close($ch);
    return $response;
}

// Ürün eklemek için API çağrısı
$response = sendPostRequest($api_url, $product_data);

// API yanıtını işleme
if ($response) {
    $xml = simplexml_load_string($response);
    echo "API Yanıtı: " . $xml->asXML();
} else {
    echo "API isteği başarısız oldu!";
}


Örnek PHP Kodu - Varyantlı Ürün Ekleme

// API bağlantı bilgileri
$api_url = "https://api.siteniz.com/rest/setProduct"; // API URL'sini doğru şekilde ayarlayın
$auth_email = "restapi@domainadi.com"; // API kullanıcı email'i
$auth_password = "testapi"; // API kullanıcı şifresi

// auth_key oluşturma
$auth_key = md5($auth_email . md5($auth_password));

// Ana ürün bilgilerini tanımlayın
$product_data = [
    "auth_email" => $auth_email,
    "auth_key" => $auth_key,
    "productCode" => "VARPRD001", // Benzersiz ürün kodu
    "name" => "Varyantlı Örnek Ürün", // Ürün adı
    "catID" => 123, // Kategori ID'si
    "markaID" => 456, // Marka ID'si
    "stok" => 50, // Ana stok miktarı
    "fiyat" => 299.99, // Ürün fiyatı
    "kdv" => 18, // KDV oranı (%18)
    "detay" => "Bu varyantlı ürün çok kaliteli.", // Ürün detayları
    "resim1" => "https://example.com/images/varyant_urun1.jpg", // Ürün ana resmi
];

// cURL ile POST isteği yapma fonksiyonu
function sendPostRequest($url, $data) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // SSL doğrulamasını devre dışı bırakın, eğer sorun yaşarsanız
    $response = curl_exec($ch);
    curl_close($ch);
    return $response;
}

// Ürünü eklemek için API çağrısı
$response = sendPostRequest($api_url, $product_data);

// API yanıtını işleme
if ($response) {
    $xml = simplexml_load_string($response);
    echo "Ana ürün başarıyla eklendi: " . $xml->asXML();
    
    // Ürünün varyantlarını eklemek için varyant API çağrısı
    $product_id = (int)$xml->ID; // Ürünün ID'sini alın (XML yanıtından)
    if ($product_id) {
        $variant_api_url = "https://api.siteniz.com/rest/setProduct/variant"; // Varyant ekleme URL'si
        
        // İlk varyant (Örnek: Beden: L, Renk: Kırmızı)
        $variant_data_1 = [
            "auth_email" => $auth_email,
            "auth_key" => $auth_key,
            "ID" => $product_id, // Ana ürün ID'si
            "varStock" => 10, // Varyant stok adedi
            "varCode" => "VAR001-L-Kirmizi", // Varyant kodu
            "varBarcode" => "1234567890123", // Varyant barkod
            "var1_name" => "Beden", // 1. varyant ismi
            "var1_var" => "L", // 1. varyant değeri (L beden)
            "var2_name" => "Renk", // 2. varyant ismi
            "var2_var" => "Kırmızı", // 2. varyant değeri (Kırmızı renk)
            "var1_fark" => 0, // Fiyat farkı (L için yok)
            "var2_fark" => 10, // Fiyat farkı (Kırmızı için +10 TL)
        ];

        // İkinci varyant (Örnek: Beden: M, Renk: Mavi)
        $variant_data_2 = [
            "auth_email" => $auth_email,
            "auth_key" => $auth_key,
            "ID" => $product_id, // Ana ürün ID'si
            "varStock" => 20, // Varyant stok adedi
            "varCode" => "VAR002-M-Mavi", // Varyant kodu
            "varBarcode" => "1234567890124", // Varyant barkod
            "var1_name" => "Beden", // 1. varyant ismi
            "var1_var" => "M", // 1. varyant değeri (M beden)
            "var2_name" => "Renk", // 2. varyant ismi
            "var2_var" => "Mavi", // 2. varyant değeri (Mavi renk)
            "var1_fark" => 0, // Fiyat farkı (M için yok)
            "var2_fark" => 5, // Fiyat farkı (Mavi için +5 TL)
        ];

        // Varyantları eklemek için API çağrısı yapıyoruz
        $variant_response_1 = sendPostRequest($variant_api_url, $variant_data_1);
        $variant_response_2 = sendPostRequest($variant_api_url, $variant_data_2);
        
        echo "Varyant 1 yanıtı: " . $variant_response_1 . "\n";
        echo "Varyant 2 yanıtı: " . $variant_response_2 . "\n";
    } else {
        echo "Ana ürün ID'si alınamadı!";
    }
} else {
    echo "Ana ürün ekleme isteği başarısız oldu!";
}


Örnek PHP Kodu - Kategori Ekleme

// API bağlantı bilgileri
$api_url = "https://api.siteniz.com/rest/setCategory"; // API URL'sini doğru şekilde ayarlayın
$auth_email = "restapi@domainadi.com"; // API kullanıcı email'i
$auth_password = "testapi"; // API kullanıcı şifresi

// auth_key oluşturma
$auth_key = md5($auth_email . md5($auth_password));

// Kategori bilgilerini tanımlayın
$category_data = [
    "auth_email" => $auth_email,
    "auth_key" => $auth_key,
    "categoryCode" => "KAT001", // Benzersiz kategori kodu
    "name" => "Örnek Kategori", // Kategori adı
    "parentID" => 0, // Üst kategori ID'si, 0 ise ana kategori
];

// cURL ile POST isteği yapma fonksiyonu
function sendPostRequest($url, $data) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // SSL doğrulamasını devre dışı bırakın, eğer sorun yaşarsanız
    $response = curl_exec($ch);
    curl_close($ch);
    return $response;
}

// Kategori eklemek için API çağrısı
$response = sendPostRequest($api_url, $category_data);

// API yanıtını işleme
if ($response) {
    $xml = simplexml_load_string($response);
    echo "API Yanıtı: " . $xml->asXML();
} else {
    echo "API isteği başarısız oldu!";
}


Örnek PHP Kodu - Marka Ekleme

// API bağlantı bilgileri
$api_url = "https://api.siteniz.com/rest/setBrand"; // API URL'sini doğru şekilde ayarlayın
$auth_email = "restapi@domainadi.com"; // API kullanıcı email'i
$auth_password = "testapi"; // API kullanıcı şifresi

// auth_key oluşturma
$auth_key = md5($auth_email . md5($auth_password));

// Marka bilgilerini tanımlayın
$brand_data = [
    "auth_email" => $auth_email,
    "auth_key" => $auth_key,
    "name" => "Örnek Marka", // Marka adı
];

// cURL ile POST isteği yapma fonksiyonu
function sendPostRequest($url, $data) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // SSL doğrulamasını devre dışı bırakın, eğer sorun yaşarsanız
    $response = curl_exec($ch);
    curl_close($ch);
    return $response;
}

// Marka eklemek için API çağrısı
$response = sendPostRequest($api_url, $brand_data);

// API yanıtını işleme
if ($response) {
    $xml = simplexml_load_string($response);
    echo "API Yanıtı: " . $xml->asXML();
} else {
    echo "API isteği başarısız oldu!";
}


Örnek PHP Kodu - Siparişleri Listeleme

// API bağlantı bilgileri
$api_url = "https://api.siteniz.com/rest/orders/date/2023-01-01_2023-12-31"; // API URL'sini tarih aralığına göre güncelleyin
$auth_email = "restapi@domainadi.com"; // API kullanıcı email'i
$auth_password = "testapi"; // API kullanıcı şifresi

// auth_key oluşturma
$auth_key = md5($auth_email . md5($auth_password));

// Sipariş sorgu verilerini tanımlayın
$order_data = [
    "auth_email" => $auth_email,
    "auth_key" => $auth_key,
];

// cURL ile GET isteği yapma fonksiyonu
function sendGetRequest($url, $data) {
    $url_with_params = $url . '?' . http_build_query($data); // Verileri URL'ye ekleyin
    $ch = curl_init($url_with_params);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // SSL doğrulamasını devre dışı bırakın, eğer sorun yaşarsanız
    $response = curl_exec($ch);
    curl_close($ch);
    return $response;
}

// Siparişleri çekmek için API çağrısı
$response = sendGetRequest($api_url, $order_data);

// API yanıtını işleme
if ($response) {
    $xml = simplexml_load_string($response);
    echo "API Yanıtı: " . $xml->asXML();
} else {
    echo "API isteği başarısız oldu!";
}


Örnek PHP Kodu - Sipariş Durumunu Güncelleme

// API bağlantı bilgileri
$api_url = "https://api.siteniz.com/rest/setOrderStatus"; // API URL'sini doğru şekilde ayarlayın
$auth_email = "restapi@domainadi.com"; // API kullanıcı email'i
$auth_password = "testapi"; // API kullanıcı şifresi

// auth_key oluşturma
$auth_key = md5($auth_email . md5($auth_password));

// Sipariş durumu güncelleme verilerini tanımlayın
$order_status_data = [
    "auth_email" => $auth_email,
    "auth_key" => $auth_key,
    "no" => 158238365, // Güncellenecek sipariş numarası
    "status" => 51, // Yeni sipariş durumu (örneğin: 51 = Kargoya teslim edildi)
];

// cURL ile POST isteği yapma fonksiyonu
function sendPostRequest($url, $data) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // SSL doğrulamasını devre dışı bırakın, eğer sorun yaşarsanız
    $response = curl_exec($ch);
    curl_close($ch);
    return $response;
}

// Sipariş durumu güncellemek için API çağrısı
$response = sendPostRequest($api_url, $order_status_data);

// API yanıtını işleme
if ($response) {
    $xml = simplexml_load_string($response);
    echo "API Yanıtı: " . $xml->asXML();
} else {
    echo "API isteği başarısız oldu!";
}


Örnek PHP Kodu - Kullanıcıları Listeleme

// API bağlantı bilgileri
$api_url = "https://api.siteniz.com/rest/setUser"; // API URL'sini doğru şekilde ayarlayın
$auth_email = "restapi@domainadi.com"; // API kullanıcı email'i
$auth_password = "testapi"; // API kullanıcı şifresi

// auth_key oluşturma
$auth_key = md5($auth_email . md5($auth_password));

// Kullanıcı bilgilerini tanımlayın
$user_data = [
    "auth_email" => $auth_email,
    "auth_key" => $auth_key,
    "email" => "newuser@domain.com", // Yeni kullanıcının email adresi (Zorunlu)
    "password" => md5("userpassword"), // Kullanıcı şifresi (md5 ile şifrelenmiş)
    "name" => "Ali", // Kullanıcının adı
    "lastname" => "Yılmaz", // Kullanıcının soyadı
    "birtdate" => "1990-01-01", // Doğum tarihi (YYYY-MM-DD formatında)
    "tckNo" => "12345678901", // Kullanıcının TCKN
    "vergiDaire" => "Kadıköy", // Vergi dairesi
    "vergiNo" => "1234567890", // Vergi numarası
    "efatura" => true, // E-fatura kullanımı
    "city" => 34, // Kullanıcının şehrinin plaka kodu (34 = İstanbul)
    "semt" => 1, // Kullanıcının semt ID değeri (veri tabanına göre ID belirlenmelidir)
    "address" => "Örnek Mah. Örnek Cad. No:1", // Kullanıcının adresi
    "ceptel" => "555-1234567", // Cep telefonu numarası (XXX-YYYYYYY formatında)
    "istel" => "212-1234567", // İş telefonu numarası (opsiyonel)
    "evtel" => "212-1234567", // Ev telefonu numarası (opsiyonel)
    "ebulten" => true, // E-posta bülten abonesi
    "ebultensms" => false, // SMS bülten abonesi
];

// cURL ile POST isteği yapma fonksiyonu
function sendPostRequest($url, $data) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // SSL doğrulamasını devre dışı bırakın, eğer sorun yaşarsanız
    $response = curl_exec($ch);
    curl_close($ch);
    return $response;
}

// Kullanıcı eklemek için API çağrısı
$response = sendPostRequest($api_url, $user_data);

// API yanıtını işleme
if ($response) {
    $xml = simplexml_load_string($response);
    echo "API Yanıtı: " . $xml->asXML();
} else {
    echo "API isteği başarısız oldu!";
}


Örnek PHP Kodu - Kullanıcıya Favori Ürün Ekleme

// API bağlantı bilgileri
$api_url = "https://api.siteniz.com/rest/setFavorite"; // API URL'sini doğru şekilde ayarlayın
$auth_email = "restapi@domainadi.com"; // API kullanıcı email'i
$auth_password = "testapi"; // API kullanıcı şifresi

// auth_key oluşturma
$auth_key = md5($auth_email . md5($auth_password));

// Favori ürün ekleme için gerekli veriler
$favorite_data = [
    "auth_email" => $auth_email,
    "auth_key" => $auth_key,
    "userID" => 123, // Kullanıcı ID'si (Zorunlu)
    "urunID" => 456, // Ürün ID'si (Zorunlu)
];

// cURL ile POST isteği yapma fonksiyonu
function sendPostRequest($url, $data) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // SSL doğrulamasını devre dışı bırakın, eğer sorun yaşarsanız
    $response = curl_exec($ch);
    curl_close($ch);
    return $response;
}

// Favori ürünü eklemek için API çağrısı
$response = sendPostRequest($api_url, $favorite_data);

// API yanıtını işleme
if ($response) {
    $xml = simplexml_load_string($response);
    echo "API Yanıtı: " . $xml->asXML();
} else {
    echo "API isteği başarısız oldu!";
}


Örnek PHP Kodu - Promosyon Kodu Ekleme

// API bağlantı bilgileri
$api_url = "https://api.siteniz.com/rest/setPromotion"; // API URL'sini doğru şekilde ayarlayın
$auth_email = "restapi@domainadi.com"; // API kullanıcı email'i
$auth_password = "testapi"; // API kullanıcı şifresi

// auth_key oluşturma
$auth_key = md5($auth_email . md5($auth_password));

// Promosyon kodu bilgilerini tanımlayın
$promotion_data = [
    "auth_email" => $auth_email,
    "auth_key" => $auth_key,
    "code" => "PROMO123", // Promosyon kodu (Zorunlu)
    "min" => 100.00, // Asgari sipariş tutarı (Promosyon kodunun kullanılabilmesi için minimum tutar)
    "discount" => 0.1, // İndirim oranı (Örneğin %10 için 0.1 gönderilir)
    "amount" => 20.00, // Sabit indirim tutarı (TL cinsinden, örneğin 20 TL)
    "tarih" => "2024-12-31", // Promosyon kodunun son kullanım tarihi (YYYY-MM-DD formatında)
];

// cURL ile POST isteği yapma fonksiyonu
function sendPostRequest($url, $data) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // SSL doğrulamasını devre dışı bırakın, eğer sorun yaşarsanız
    $response = curl_exec($ch);
    curl_close($ch);
    return $response;
}

// Promosyon kodu eklemek için API çağrısı
$response = sendPostRequest($api_url, $promotion_data);

// API yanıtını işleme
if ($response) {
    $xml = simplexml_load_string($response);
    echo "API Yanıtı: " . $xml->asXML();
} else {
    echo "API isteği başarısız oldu!";
}
Online Satın Al