API

Vatan Bilgisayar API: hangi ürün kaç TL, hangi mağazada stokta (JSON)

Vatan'da bir ürünün fiyatı tek bir sayı değil: sayfada büyük yazan fiyat, bazı ürünlerde ondan düşük bir Web'e Özel fiyatı, bazılarında da yalnız sepette görünen bir indirim var. Bu API üçünü ayrı alanlarda verir, üstü çizili fiyat ve taksitle birlikte. Bir de Vatan'a özgü bir veri var: ürünün hangi mağazada stokta olduğu. `product/stores` mağazayı, ilini, adresini, çalışma saatlerini ve Vatan'ın yayımladığı stok sayısını döndürür. Vatan'ın tedarikçilerine ya da kurumsal müşterilerine yönelik sistemlerle bağı yoktur: sipariş vermez, ürün kaydı açmaz; elinize geçen, her ziyaretçinin gördüğü sayfaların verisidir.

Uçlar

endpointNe döndürürZorunlu
searchKelimeyle ya da kategori yoluyla ('notebook', '/apple/cep-telefonu-modelleri/') ürün listesi, sayfada 24 ürün: slug, ürün kodu, başlık, görseller, online fiyat, normal fiyat ve Web'e Özel etiketi, sepette fiyatı, üstü çizili fiyat, kart puanı, renk seçenekleri. Süzme seçenekleri marka, fiyat aralığı ve sitenin 'Stoktakiler' kutusu; sıralamalar sitedekiyle aynı. Vatan'ın bir kategoriye yönlendirdiği kelimeler filtreler korunarak izlenir ve `redirected_to` ile bildirilir.hepsi opsiyonel
product/detailSayısal id, ürün adresi ya da slug ile tam kayıt: ürün kodu ve MPN, online, Web'e Özel, üstü çizili ve sepette fiyatları, peşin fiyatına taksit, stok durumu ('online stokta yok' dahil), ücretsiz kargo, puan ve yorum sayısı, görseller, öne çıkan özellikler ve tam özellik tablosu, açıklama, renk ve kapasite varyantları.product_id
product/storesÜrünün şu an stokta olduğu Vatan mağazaları: il, adres, telefon, koordinat, çalışma saatleri, büyük mağaza olup olmadığı ve Vatan'ın yayımladığı stok sayısı.product_id
search/suggestKullanıcı harfleri girdikçe Vatan'ın açtığı öneri listesi: eşleşen ürünler sayısal id, fiyat ve kategoriyle, ayrıca önerilen kategoriler (en az 2 harf).query
dealsVatan'ın kampanya listeleri ürün satırı olarak: Fırsat Ürünler, Web'e Özel ve Outlet; aramayla aynı alanlar, sıralama ve sayfalama.hepsi opsiyonel

Her çağrı kredi ile ücretlendirilir. Başarısız ve engellenen çağrılar ücretsizdir.

Çalışan örnek

Örnekteki iPhone 16, 26 Ekim'de Web'e Özel listesinde 79 999 TL yerine 72 999 TL'ydi (`price_label: "Web'e Özel"`, `price_note: "Son 15 Ürün"`). Aynı ürünü listedeki slug'ıyla `product/stores`'a sorduğumuzda 56 ilde 147 mağaza döndü, 36'sı İstanbul'da. Liste yalnız stoğu olan mağazaları içerir; ürünün bulunmadığı mağaza listede hiç görünmez. `stock` Vatan'ın yayımladığı sayıdır ve site birimini belirtmiyor, adet diye kaydetmeyin.

İstek
curl -X POST https://api.reefapi.com/vatan/v1/product/stores \
  -H "x-api-key: ANAHTARINIZ" \
  -H "content-type: application/json" \
  -d '{"product_id": "iphone-16-128-gb-akilli-telefon-deniz-mavisi.html"}'
Yanıt (kısaltılmış)
{
  "ok": true,
  "data": {
    "product_id": "147110",
    "count": 147,
    "cities": ["ADANA", "AFYONKARAHİSAR", "AKSARAY", ..., "İSTANBUL", "İZMİR", "ŞANLIURFA"],
    "stores": [
      ...
      {
        "store_id": "100",
        "name": "İstanbul (Acıbadem)",
        "city": "İSTANBUL",
        "latitude": 40.99862984,
        "longitude": 29.03260589,
        "opening_hours": "Mağaza:10:00-21:45",
        "is_hyperstore": false,
        "stock": 2,
        ...
      },
      {
        "store_id": "122",
        "name": "İstanbul (Alibeyköy)",
        "city": "İSTANBUL",
        "latitude": 41.076088,
        "longitude": 28.945187,
        "opening_hours": "Mağaza:10:00-22:00",
        "is_hyperstore": false,
        "stock": 6,
        ...
      },
      ...
    ]
  }
}

vatanbilgisayar.com'u kendiniz ayrıştırırsanız

Ürün kartlarının sonunda yorum satırına alınmış eski bir fiyat şablonu duruyor ve Web'e Özel kartlarda içinde normal fiyat yazıyor. HTML'i olduğu gibi tarayan bir ayrıştırıcı bunu üstü çizili fiyat sanar: motoru kurarken ilk denemede JBL Tune 520BT için olmayan 2 189 TL'lik bir eski fiyat ve %18,3 indirim çıktı. Burada yorum satırları fiyat okunmadan önce ayıklanır.

Bazı kelimeler arama sayfasına değil bir kategoriye yönlendiriliyor ve yönlendirme sorgu parametrelerini düşürüyor: `/arama/laptop/?srt=UP&page=2` isteği `/notebook/`'a gidiyor, sıralama da sayfa numarası da kayboluyor. İkinci sayfayı aldığını sanan bir döngü sıralanmamış ilk sayfayı tekrar tekrar kaydeder. Motor yönlendirmeyi izler; sıralama, sayfa, fiyat ve stok filtresini hedef sayfada yeniden uygular.

Kartlardaki puan yuvarlanmış: kartta 4,8 görünen bir ürünün sayfasında ve schema.org bloğunda puan 4,75'ti (4 yorum), kartlarda yorum sayısı ise hiç yok. Bu yüzden arama satırındaki alanın adı `rating_rounded`; kesin puan ve yorum sayısı `product/detail`'de gelir.

Fiyat listesi çıkaran biri için bu üçünün sonucu aynı: tablo dolu görünür ama içinde olmayan indirimler, yanlış sıralanmış sayfalar ve yuvarlanmış puanlar gerçek değerlerle karışık durur. Vatan sayfa şablonunu değiştirdiğinde bunlardan hangisinin geri döndüğünü ancak her çalıştırmada sonucu kontrol ederek görürsünüz.

Sınırlar ve dürüst notlar

  • Vatan Bilgisayar'ın resmi bir hizmeti değildir; Vatan'la yapılmış bir anlaşmaya ya da ortaklığa dayanmaz.
  • Yorum listesi için uç yok: sitenin yorum akışı bütün yorumları tek seferde veriyor (iPhone 15'te 1 559 yorum, 8,4 MB) ve araya soru-cevaplar karışıyor. `product/detail` puanı, yorum sayısını ve sayfadaki 5 yorumluk örneği verir; bu örnek en yeni yorumlar değildir (iPhone 16'da 617 yorumun örneğindeki 5 yorumun hepsi 26 Eylül 2024 tarihliydi).
  • EAN/barkod yayımlanmıyor; ürün kodu ve MPN geliyor.
  • Arama satırında stok bilgisi yok; stokta olanları ayırmak için `in_stock_only` sitenin 'Stoktakiler' filtresini kullanır.
  • Arama Vatan'ın kendi kelimeleriyle çalışıyor: 26 Ekim'de 'oyuncu laptop' 0 ürün döndü, 'laptop' ise kendiliğinden /notebook/ kategorisine gidiyor. Buzdolabı ve çamaşır makinesi gibi büyük beyaz eşya Vatan'ın kataloğunda yok; bu aramalar da 0 döner.
  • Renk seçenekli ürünlerde detay yanıtındaki `url` ve `slug` ürün grubunun sayfasıdır (iPhone 16 Deniz Mavisi için `iphone-16-akilli-telefon.html`); hangi rengin okunduğu `color` alanında yazar.
  • Mağaza stoğunun birimi yayımlanmıyor. Örnekteki üründe değerler 147 mağazanın 146'sında 1 ile 10 arasındaydı, bir mağazada 63.
  • Kredi bedeli uca göre değişmez: `product/stores` dahil her çağrı 1 kredidir.