Hepsibayi B2B
XML Entegrasyonu
Stoksuz e-ticaret için güvenilir ürün senkronizasyonu. Saatlik güncellenen XML feed'leri ile stok, fiyat ve varyant verilerini kolayca entegre edin; stok sorunlarını ortadan kaldırın.
Nasıl Çalışır?
Hepsibayi B2B XML entegrasyonu üç temel adımdan oluşur.
Panel Erişimi
hesabim adresinden panelinize giriş yapın. XML feed linklerinize buradan ulaşabilirsiniz.
XML Verisini Alın
Feed URL'nizi HTTP POST isteği ile çağırın. Sunucu doğrudan UTF-8 enkodlu XML döndürür; JSON wrapper yoktur.
Entegre Edin
simplexml_load_string() (PHP) veya DOMParser (JS) ile parse edin.
HTTP Response
Feed Kapsamı
XML Feed Türleri
Her feed türü farklı ürün yapılarını hedefler. Entegrasyonunuzu ihtiyacınıza göre tek feed ya da tümünü birleştirerek kurabilirsiniz.
Karışık XML - Canlıda Kullanılacak Örnek
Tüm XML Yapısı
Varyantlı ve varyantsız olarak tümünün yer aldığı (renk × beden gibi) içeren ürünlerin tam listesi. Her kombinasyon için ayrı <variant> elemanı; barkod ve stok varyant bazında takip edilir.
Varyantlı Ürünler Örneği
variantsXml
Birden fazla varyant boyutu (renk × beden gibi) içeren ürünlerin tam listesi. Her kombinasyon için ayrı <variant> elemanı; barkod ve stok varyant bazında takip edilir.
Varyantsız Ürünler Örneği
noVariantXml
Seçenek sunmayan tek SKU'lu ürünlerin flat feed'i. <variants> bloğu yoktur veya yalnızca tek placeholder giriş içerir. En hızlı parse edilen endpoint türüdür.
Renkli Varyantlar Örneği
ColorVariantXml
Yalnızca renk boyutunda farklılaşan ürünlerin feed'i. Her renk için ayrı <variant> kaydı oluşturulur; görsel başına renk bazlı URL sunulabilir.
Test Aracı
Feed türünü seçin ve gerçek API yanıtını anında görüntüleyin. Kendi sisteminizi yazmadan önce veri yapısını incelemenizi tavsiye ederiz.
https://dev.hepsibayi.com.tr/graphql.php
variantsXml
Feed türünü seçin ve "Çalıştır"a tıklayın
Canlı test gerçek API endpoint'ini çağırır. Panelden aldığınız URL üzerinden de kendi ortamınızda test edebilirsiniz. Sık istek atmak oturum kısıtlamalarına yol açabilir.
XML Örnek Çıktılar
Aşağıdaki örnekler gerçek feed yapısını yansıtır. Parse kodunuzu bu statik örneklerle test edebilirsiniz.
Canlı Feed Erişimi
Gerçek ürün verisi için hepsibayi.com.tr/hesabim adresinden panelinize giriş yapabilirsiniz.
response.xml — variantsXml
<?xml version="1.0" encoding="UTF-8"?> <!--netafast.com.tr - E-Market Çözümleri--> <products> <product> <title>Ally HB01 5In1 Type C Dönüştürücü Adaptör Hub-(5775)</title> <stock_code>HS7380-4619</stock_code> <barcode>HS7639262516</barcode> <brand>Hepsibayi</brand> <category>ELEKTRONİK >>> Cep Telefonu >>> Aksesuarlar</category> <main_category>ELEKTRONİK</main_category> <sub_category>Cep Telefonu</sub_category> <sub_category_2>Cep Telefonu Aksesuarları</sub_category_2> <stock>39</stock> <sale_price>259.81</sale_price> <currency>TL</currency> <tax>20</tax> <description>Ally HB01 5In1 Type C — 3x Type-C, USB-A, HDMI destekli hub.</description> <image_count>4</image_count> <image_1>https://hepsicdn.com.tr/static/product/hbnet638d6c3a_4901001.png</image_1> <image_2>https://hepsicdn.com.tr/static/product/hbnet638d6c3a_4901002.png</image_2> <image_3>https://hepsicdn.com.tr/static/product/hbnet638d6c3a_4901003.png</image_3> <image_4>https://hepsicdn.com.tr/static/product/hbnet638d6c3a_4901004.png</image_4> <variants> <variant> <barcode>HS0891698570</barcode> <stock>39</stock> <name>Renk</name> <value>Siyah</value> <color/> </variant> </variants> </product> <product> <title>ALLY büyük kapasiteli tuval kalemlik kılıf-(5775)</title> <stock_code>HS3712-3115</stock_code> <barcode>HS5870792458</barcode> <stock>534</stock> <sale_price>464.40</sale_price> <currency>TL</currency> <tax>20</tax> <image_count>6</image_count> <variants> <variant> <barcode>HS5978792889</barcode> <stock>88</stock> <name>Renk</name> <value>Siyah</value> <color/> </variant> <variant> <barcode>HS4456697961</barcode> <stock>446</stock> <name>Renk</name> <value>Mavi</value> <color/> </variant> </variants> </product> </products>
Varyant Yapısı
Feed'lerde üç farklı varyant senaryosu bulunur. Entegrasyonunuzu yazarken her durumu ayrı ele almak stok tutarsızlıklarını önler.
Varyantsız / Tek SKU
noVariantXml
Ürünün yalnızca bir versiyonu. <variants> bloğu yoktur ya da "RZ" placeholder içerir. Stok doğrudan ürün düzeyinden okunur.
<variants> <variant> <barcode>HS5265798466</barcode> <stock>132</stock> <name>Renk</name> <value>RZ</value> <color/> </variant> </variants>
Çoklu Renk Varyantı
önerilenColorVariantXml
Aynı ürün farklı renklerde. Her renk için <variant> tekrar eder; kendi barkod ve stoğu vardır.
<variants> <variant> <barcode>HS5978792889</barcode> <stock>88</stock> <name>Renk</name> <value>Siyah</value> </variant> <variant> <barcode>HS4456697961</barcode> <stock>446</stock> <name>Renk</name> <value>Mavi</value> </variant> </variants>
Beden + Renk Kombinasyonu
variantsXml
İki boyutlu varyantlar. Her renk × beden kombinasyonu için ayrı satır. Doğru eşleme için barkod zorunludur.
<variants> <variant> <barcode>HS1234567890</barcode> <stock>25</stock> <name>Beden</name> <value>M</value> </variant> <variant> <barcode>HS9876543210</barcode> <stock>10</stock> <name>Beden</name> <value>XL</value> </variant> </variants>
Toplam Stok Hesaplama
Varyantlı ürünlerde ürün düzeyindeki <stock> tüm varyantların toplamına eşit veya yakın olabilir. Güvenilir stok takibi için her <variant> içindeki barkod bazlı stok değerini kullanın.
XML Tag Referansı
Feed'de kullanılan tüm XML elementleri, tipleri ve zorunluluk durumları.
| Tag | Açıklama | Durum |
|---|---|---|
| <products> | Kök element. Tüm ürün listesini kapsar. | Zorunlu |
| <product> | Tek bir ürün kaydı. | Zorunlu |
| <title> | Ürünün tam adı. Model ve marka dahil. | Zorunlu |
| <stock_code> | Tedarikçi benzersiz stok kodu. | Zorunlu |
| <barcode> | Ürün düzeyinde ana barkod. | Zorunlu |
| <brand> | Marka adı. Daima "Hepsibayi". | Zorunlu |
| <category> | Tam hiyerarşi; >>> ayırıcılı. | Zorunlu |
| <stock> | Ürün düzeyi toplam stok adedi. | Zorunlu |
| <sale_price> | KDV dahil satış fiyatı. Ondalık: nokta. | Zorunlu |
| <currency> | Para birimi. Daima "TL". | Zorunlu |
| <tax> | KDV oranı yüzde. Ör: 20 → %20. | Zorunlu |
| <image_count> | Görsel sayısı (1–6). image_N URL sayısını belirtir. | Zorunlu |
| <image_1..6> | CDN görsel URL'leri. "Hata:" içeriyorsa atlayın. | Zorunlu |
| <sub_category_2..4> | İsteğe bağlı derin kategori seviyeleri. | Opsiyonel |
| <variants> | Tüm varyantları kapsayan container. | Opsiyonel |
| <variant> | Tek varyant kombinasyonu. Renk/beden başına tekrar. | Opsiyonel |
| <name> | Varyant boyutu adı. Ör: "Renk", "Beden". | Opsiyonel |
| <value> | Varyant değeri. Ör: "Siyah", "XL". | Opsiyonel |
| <color> | Renk kodu veya adı. Uygulanamıyorsa self-closing. | Opsiyonel |
Kod Örnekleri
PHP ve JavaScript ile XML parse etmek için hazır başlangıç kodları.
parse-xml.php
<?php /** * Hepsibayi XML Feed — PHP Parse Örneği */ $xmlString = file_get_contents('hepsibayi_feed.xml'); $xml = simplexml_load_string($xmlString, 'SimpleXMLElement', LIBXML_NOCDATA); foreach ($xml->product as $product) { $title = (string) $product->title; $price = (float) $product->sale_price; $currency = (string) $product->currency; $stock = (int) $product->stock; $taxRate = (int) $product->tax; // Net fiyat hesapla $netPrice = round($price / (1 + $taxRate / 100), 2); echo "📦 {$title}\n"; echo " Fiyat : {$price} {$currency} (net: {$netPrice})\n"; echo " Stok : {$stock} adet\n"; // Görselleri filtrele $imgCount = (int) $product->image_count; for ($i = 1; $i <= $imgCount; $i++) { $url = (string) $product->{"image_{$i}"}; if (!str_contains($url, 'Hata:')) { echo " Görsel {$i}: {$url}\n"; } } // Varyantlar if (isset($product->variants->variant)) { foreach ($product->variants->variant as $v) { $vBarcode = (string) $v->barcode; $vName = (string) $v->name; $vValue = (string) $v->value; $vStock = (int) $v->stock; echo " [{$vName}: {$vValue}] Stok: {$vStock} Barkod: {$vBarcode}\n"; } } echo str_repeat('─', 60) . "\n"; }
Önemli Notlar
Entegrasyon sırasında dikkat edilmesi gereken kritik noktalar.
Saatlik Güncelleme Döngüsü
Tüm feed'ler saatte bir güncellenir. Polling aralığını en fazla 60 dakikaya ayarlayın. Sık istek oturum kısıtlamalarına yol açabilir.
CDATA Kullanılmaz
Özel karakterler XML entity olarak encode edilir. PHP'de html_entity_decode(), JS'de DOMParser ile decode edin.
Hatalı Görsel URL'leri
"Hata: Görsel indirilemedi." içeren URL'leri atlayın. str_contains($url, 'Hata:') ile filtreleyin.
Kategori Hiyerarşisi
<category> tam ağacı >>> ayırıcısıyla içerir. sub_category_2..4 opsiyoneldir; isset() ile kontrol edin.
Fiyat KDV Dahildir
<sale_price> her zaman KDV dahil. Net fiyat: salePrice / (1 + tax/100).
Benzersiz Tanımlayıcılar
stock_code ürün eşleme, barcode tanımlama için. Varyant bazlı işlemler için her <variant>'ın kendi barkodunu kullanın.
Sıkça Sorulan Sorular
En çok sorulan entegrasyon sorularına yanıtlar.
hepsibayi.com.tr/hesabim adresinden panelinize giriş yaparak XML feed linklerinize erişebilirsiniz. Feed'ler HTTPS üzerinden sunulur ve UTF-8 encoding ile döndürülür.
Ürünler varsayılan olarak tüm feed türleri karışık xml olarak verilir. Özel talepleriniz için hepsibayi iletişim formundan bizlere ulaşabilirsiniz.
Hayır, stok 0 olan ürünler feed'de yer almaz. Listeleme dışı bırakmak için <stock> > 0 kontrolü ve xmlde yer almayan ürünleri sıfırlama seçeneği ekleyin. Varyantlı ürünlerde en az bir varyantın stoğu varsa ürün yayımda tutulabilir.
PHP: html_entity_decode($str, ENT_QUOTES | ENT_HTML5, 'UTF-8') — JavaScript: new DOMParser().parseFromString(str, 'text/html').body.textContent
PHP: if (!str_contains($url, 'Hata:')) — JS: if (!url.includes('Hata:')). CDN URL'nin hepsicdn.com.tr ile başladığını da doğrulayabilirsiniz.
Evet. Canlı test yalnızca okuma (GET/POST) işlemi yapar, hiçbir veri değişmez. Sık kullanım oturum kısıtlamalarına yol açabileceğinden test amaçlı makul aralıklarla çalıştırmanızı tavsiye ederiz.