BARKODLUAPI Kılavuzu
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
    }
}