tedarikçi xml entegrasyonu nedir, nasıl yapılır

Tedarikçi ile müşterinin sitesi arasında veri değişimini sağlayan bu işlem "Xml entegrasyonu" veya "tedarikçi entegrasyonu" olarak da bilinmektedir. Entegrasyonun çalışma biçiminden ve diğer detaylarından bahsetmeden önce tarihte biraz geriye giderek veri değişiminin tarihçesine değinmek ve temel terimleri açıklamak istiyoruz.

Elektronik veri değişimi ve tarihçesi

Bilgi akışının yoğun olduğu günümüzde firmalar veya kurumlar arasında bilgilerin hatasız olarak değişimi hayati öneme sahiptir. Bu bilgi değişim işlemi kısaca EDI (Electronic Data Interchange-Elektronik Veri Değişimi) olarak isimlendirilmektedir.

Veri değişiminin başlangıç tarihi eski olmasına rağmen firmalar arasında veri değişiminin gerçekleştirilebilmesi için standartlaşma 1987 yılına kadar uzanmaktadır ve Dünya'da önde gelen organizasyonlar çalışma grupları oluşturarak değişim işleminin kolayca gerçekleştirilebilmesini sağlamak için çeşitli standartlar belirlemişlerdir.

İlk nesil veri değişim yapıları kolon bazlı olarak çalışmaktaydı. Örneğin; Veri değişimi için oluşturulan dosyada Ürün Kodu, Ürün Adı, Fiyatı gibi bilgiler gelecekse bu bilgiler için standart uzunluklar belirleniyordu (Ürün kodu için 10 karakter, ürün adı için 40 karakter, fiyatı için 10 karakter gibi). Ve bu bilgiler arka arkaya eklenerek her bir ürün için bir satır oluşturuluyordu ve bir çok ürün aynı dosyaya satır satır yazdırılarak gönderiliyordu.

Bu sistemde, gerçekte kullanılan ürün kodu eğer 5 karakterse bunu gönderimde uygunlaştırmak için 10 karaktere tamamlanıyordu ve bu yüzden kodun önüne veya sonuna boşluk eklemek gerekiyordu. Bu dosya boyutunu arttıran bir dezavantajdı ve ayrıca hangi bilgi nerede başlıyor nerede bitiyor ayrımının yapılması zordu. Bu durum hata oranını yükseltmekteydi. Bu sistem halen eski programlarda dışarıya yada içeriye veri alımında kulanılmaktadır.

Daha sonra geliştirilen ikinci nesil diye tabir edebileceğim veri değişim formatında virgül veya noktalı virgül gibi ayıraç karakterleri kullanılarak bilgilerin başlangıç ve bitiş yerleri belirlenmeye başladı. Ürünler her bir satırda, her ürün bilgisi bu ayıraç karakterleri ile ayrılarak gönderilmeye başlandı. Bu sistem önceki uygulanan sistemin hata yapma payını azaltmadı. Sadece dosya boyutlarının kısalmasına olanak sağladı. Bu sisteme en güzel örnek Microsoft Excel programında görülen CSV uzantılı dosyadır.

2000 li yıllara geldiğimizde Microsoft yazılım firması tarafından oluşturulan Xml dosya biçimi veri değişimini oldukça kolaylaştırdı. Xml yapısında ürün kodu, ürün adı gibi bilgileri belirli etiketler arasından gönderiliyordu ve veri değişiminde hata yapma payını 0'a indiriyordu.

Örnekle göstermek gerekirse aşağıdaki şekilde bir yapıyı örnek olarak verebiliriz.

<products>
  <product>
    <productcode>ürün kodu</productcode>
    <productname>ürün adı</productname>
  </product>
</products>

Xml dosya biçimi veri değişimi için devrim niteliğinden bir adımdı. Fakat bir dezavantajı vardı. Aynı etiketlerin tekrarlanması çok miktardaki verinin transferinde dosya boyutunu arttırıyordu. Dosya biçiminin kolayca okunabilir, anlaşılabilir olması ve hata yapma payının 0 olduğu düşünüldüğünde bu gözardı edilebilecek bir durumdu.

İlerleyen yıllarda Xml'in boyut problemini ortadan kaldıran JSon olarak adlandırılan başka bir dosya biçimi oluşturuldu.

Json yapısı ise aşağıdakine benzer şekilde oluşturulmuştu.

{
   "tip": "kitap",
   "tur": "roman",
   "urunler": [
        {"ad": "Ürün adı", "yazar": "Yazarın adı"},
        {"ad": "Ürün adı", "yazar": "Yazarın adı"},
        {"ad": "Ürün adı", "yazar": "Yazarın adı"}
     ]
}

Xml'in tekrar eden etiketleri yerine { } işaretleri ile etiket boyutlarından tasarruf sağlanmıştı. Bu durum okunabilirliği biraz azaltmıştı ama dosya boyutlarının ufalmasından dolayı çok da önemsenen bir durum değildi.

Xml ve Json biçimleri günümüzde internet dünyasında kendini kabul ettirmiş standartlardır. Şu anda yoğun olarak veri alışveriş işlemlerinde kullanılmaktadır.

Xml ve Json biçimlerinin kullanılabileceği entegrasyon senaryoları

Şu senaryoları düşünelim;

1. Bir e-ticaret sitesinde bir müşteri alışveriş yaptı ve kredi kartı bilgilerini girdi, bankadan para çekilmesi gerekiyor, para çekildikten sonra banka işlemin başarılı veya başarısız olduğunu siteye bildirecek ve banka işleminin sonucuna göre e-ticaret sitesinde işlem devam edecek,

2. Google arama motoruna sitemizin yapısını ve ürünlerimizi göndermek istiyoruz,

3. Ürün satın aldığımız bir tedarikçinin ürünlerini kendi sitemizde yayınlamak istiyoruz,

4. E-ticaret sitemizde tedarikçinin ürünü satıldıktan sonra ürünün stok miktarının tedarikçinin stoklarından düşülmesi gerekiyor.

5. Fiyat karşılaştırma sitelerinde ürünlerimizi yayınlamak istiyoruz.

Yukarıda ki senaryoları düşündüğümüzde bu senaryolarda yapılması gereken tüm işlemler diğer firmalar ile veri alışverişini gerektirdiğini görmekteyiz.

1. Bankadan para çekileceği zaman e-ticaret sistemi bankanın yapısına uygun xml biçimini oluşturarak kredi kartı bilgilerini göndermekte ve bankada işlemi gerçekleştirdikten sonra işlemin başarılı olup olmadığı yine xml biçiminde e-ticaret sitesine göndermekte ve e-ticaret sitesi bankadan gelen cevap xml dosyasını ayrıştırarak işlemin durumunu öğrenmekte ve ona göre işleme devam etmektedir.

2. Google arama motoruna sitemizin yapısını xml biçiminde göndererek sitemizin indekslenme işlemini hızlandırabiliyoruz.

3. Tedarikçi firma ürünlerini kendi belirlemiş olduğu xml yapısında sitesi üzerinden yayınlıyor ve biz bu dosyayı çekip ayrıştırarak e-ticaret sitemize ürün bilgilerini kayıt ediyoruz.

4. E-ticaret sitesinde ürün satıldıktan sonra tedarikçiye ürünün satıldığını bildirmek için xml biçiminde bilgimizi yapılandırıp otomatik olarak tedarikçinin sistemine gönderiyoruz.

5. Fiyat karşılaştırma siteleri kendi sitelerine ürünleri entegre edebilmek için kendi belirledikleri xml yapısında ürünlerin gönderilmesini istemektedirler ve bu işlem onların ürün bilgilerini elle yazma zahmetinden kurtarmaktadır.

E-Ticaret sitelerinde xml entegrasyonu ve kullanımı

E-ticaret sitesi işleten firmalar çalıştıkları tedarikçilerin ürünlerini elle girmek yerine tedarikçilerinin yayınlamış olduğu xml dosyalarını kullanarak ürünleri kendi sitelerine eklemektedirler. Bu işlem Xml Tedarikçi Entegrasyonu, Tedarikçi entegrasyonu veya Xml entegrasyonu olarak adlandırılmaktadır.

Tedarikçi xml entegrasyonu nasıl çalışır?

Tedarikçi firmalar xml yayınını genelde 3 farklı şekilde yapmaktadırlar.

1. Xml dosyalarının günün belirli saatlerinde oluşturularak siteleri üzerinden yayınlanması. Örneğin; www.tedarikcifirmasitesi.com/urun.xml gibi bir linkten tüm ürünler çekilmektedir. Ürün özellikleri ve diğer bilgilerde ayrı ayrı linklerde yayınlanmakta ve bu bilgilerde çekilmektedir.

2. Xml dosyalarının talep edildiği anda oluşturularak servis edilmesi.

3. Web apilerini veya servislerini kullanarak bilgilerin dinamik olarak talep edildiği anda tek tek servis edilmesi.

Tedarikçiler tarafından genellikle kullanılan yaklaşım web sunucularına ekstra yük getirmemesi için xml dosyalarının günün belirli saatlerinde oluşturularak yayınlanmasıdır.

Müşteri tarafında ise verilerin siteye entegre edilmesi için genelde 2 farklı yaklaşım kullanılmaktadır.

1. Müşteri, xml dosyasını belirtilen adresten çeker ve sitesinin yönetim paneli üzerinde xml dosyasını yükleyerek e-ticaret sitesinin xml dosyasını ayrıştırmasını ve dosyanın içinde ki bilgileri sitenin kendi veritabanına kayıt etmesini sağlar.

Bu yaklaşım müşteri açısından oldukça zahmetli olmasına rağmen müşterinin xml dosyalarını açıp üzerinde değişiklik yapabilmesine imkan sağlamaktadır. Eğer müşteri birden fazla tedarikçi ile çalışıyorsa yada kendi işletmesinde özel bir ticari yazılım kullanıyorsa ürünleri bu programa da ekleyebilmek/güncelleyebilmek için kendisinin çekmesi avantaj sağlayan bir durum olarak bu yaklaşımda karşımıza çıkmaktadır.

2. E-ticaret sisteminin bulunduğu sunucu için yazılacak özel bir entegrasyon programı ile veriler otomatik olarak belirli saatlerde çekilerek e-ticaret sistemine kaydedilir.

Bu yaklaşımda ise site yöneticisinin ürünler üzerinde ki kontrolü daha azdır fakat yöneteci entegrasyon işlemi ile uğraşmaz.

Türkiye'de e-ticaret altyapı sağlayıcıları ikinci yaklaşımı kullanmaktadırlar. Bazı e-ticaret sistemlerinde site yöneticisinin çekilen ürünler üzerinde daha fazla kontrole sahip olmasını sağlamak için e-ticaret sistemine aktarılacak ürünler için çeşitli filtreler tanımlamasına ve bu filtrelere göre ürünlerin eklenmesine olanak sağlanmaktadır.