Masaüstü POS & Otomatik Ürün Açma API
Masaüstü Program Entegrasyon Kılavuzu
Masaüstü barkodlu satış programınızda ürün kayıtlı değilse, bulut API'den barkod, ürün adı ve piyasa satış fiyatını çekerek yerelde otomatik stok kartı oluşturur.
Önemli Lisans Kuralı:
Ücretsiz sürümde programa otomatik stok/ürün ekleme izni verilmez. Yalnızca geçerli bir Lisans Anahtarı ve HWID tanımlanmış masaüstü programları API'den ürün bilgilerini alıp yerelde otomatik stok kartı açabilir.
Endpoint & Lisans Doğrulama Parametreleri
API Base URL:
https://api.barkodlu.com.tr/api
Gerekli Lisans Başlığı / Parametreleri:
lisans_anahtari & hwid
GET / POST
/api?action=urun_sorgula
Masaüstü barkod okutulduğunda yerel veritabanında yoksa API'den ürün adı ve piyasa fiyatını alır.
Lisanslı Program Yanıtı (HTTP 200 - Otomatik Stok Oluşturulur):
{
"success": true,
"lisansli": true,
"stok_ekleme_izni": true,
"stok_olustur": true,
"urun": {
"barkod": "8690504018086",
"urun_adi": "Çaykur Tiryaki Çay 1000 Gr",
"kategori": "Gıda",
"satis_fiyati": 145.00,
"piyasa_fiyati": 165.00
}
}
Ücretsiz Program Yanıtı (HTTP 403 - Stok Kartı Oluşturulmaz):
{
"success": false,
"lisansli": false,
"stok_ekleme_izni": false,
"stok_olustur": false,
"hata": "Ücretsiz sürümde otomatik ürün/stok ekleme kapalıdır. Programınızda bu ürünün otomatik stok kartını oluşturmak için geçerli bir lisans gereklidir."
}
C# Masaüstü Entegrasyon Metodu
Yerel veritabanınızda (SQLite / MSSQL) ürün bulunamadığında API'yi sorgulayan ve lisans varsa stok kartını açan örnek kod:
using System;
using System.Net.Http;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
public class BarkodluKatalogServisi
{
private static readonly HttpClient client = new HttpClient();
private const string ApiUrl = "https://api.barkodlu.com.tr/api";
// Lisans varsa API ürün bilgilerini sağlar ve yerel veritabanında stok açılır
public static async Task<bool> UrunYoksaStokOlusturAsync(string barkod, string lisansAnahtari, string hwid)
{
try
{
var url = $"{ApiUrl}?action=urun_sorgula&barkod={barkod}&lisans_anahtari={lisansAnahtari}&hwid={hwid}";
var response = await client.GetAsync(url);
var jsonStr = await response.Content.ReadAsStringAsync();
var json = JObject.Parse(jsonStr);
// Ücretsiz mod kontrolü
if (response.StatusCode == System.Net.HttpStatusCode.Forbidden || json["stok_ekleme_izni"]?.Value<bool>() != true)
{
Console.WriteLine("Uyarı: Ücretsiz sürümde otomatik stok ekleme kapalıdır. Lisans alınız.");
return false;
}
if (json["success"]?.Value<bool>() == true && json["urun"] != null)
{
var urun = json["urun"];
string barkodNo = urun["barkod"]?.ToString();
string urunAdi = urun["urun_adi"]?.ToString();
string kategori = urun["kategori"]?.ToString();
decimal satisFiyati = urun["satis_fiyati"]?.Value<decimal>() ?? 0;
decimal piyasaFiyati = urun["piyasa_fiyati"]?.Value<decimal>() ?? 0;
// Masaüstü yerel veritabanında stok kartı oluştur
YerelVeritabaninaStokEkle(barkodNo, urunAdi, kategori, satisFiyati, piyasaFiyati);
Console.WriteLine($"[BAŞARILI] {urunAdi} stok kartı oluşturuldu. Satış: {satisFiyati} ₺ | Piyasa: {piyasaFiyati} ₺");
return true;
}
return false;
}
catch (Exception ex)
{
Console.WriteLine("API Bağlantı Hatası: " + ex.Message);
return false;
}
}
private static void YerelVeritabaninaStokEkle(string barkod, string ad, string kategori, decimal satisFiyati, decimal piyasaFiyati)
{
// Kendi yerel SQLite / MSSQL INSERT kodunuz buraya gelir
}
}