XML Sorunsalı

Yazar OpencartUzman 21/09/2017 2 Yorumlar

XML entegrasyonu ile ilgli farklı türlerden ve çoğu zaman neden kaynaklandığı belli olmayan problemler gündeme gelmektedir. 

Opencart site sahiplerinin bu konuda bilgi sahibi olmadan problemi çözmeleri oldukça zordur, zira sorunu anlayıp doğru kişyle görüşerek veya doğru işlemi yaparak sonuca erişilebilir.

Burada problemin oluşabileceği 4 temel nokta olabilir bunlar; xml veren taraf(xml kaynağı), opencart siteniz, opencart sitenizdeki xml modülü ve eşleme yaparken yanlış alan tanımlama olabilir.

Her birinin teker teker nasıl anlaşılabileceği ve nasıl çözülebileceğini şu şekilde açıklayabiliriz. Lütfen sizde karşılaştığınız farklı türden sorunlarınızı soru kısmına yazmaktan çekinmeyin.

XML Kaynağından Kaynaklı Sorunlar

Öncelikle xml nedir, bunun bir örneğini yazarak anlamaya çalışalım. 

Aşağıdaki örnek en basit ve hepinizin isteyeceği bir xml formatıdır. İlk etiket <Urunler> </Urunler> datanın en başında açılır ve en sonunda kapanır. Tüm datayı çevreleyen etikettir. "<Urunler>" etiketin açılması,  "</Urunler>" etiketin kapanmasını ifade eder.

<Urun> etiketi de her bir ürünü çevreleyen etikettir. Bu da her birin ürün için ürünün başında <Urun> şeklinde açılır, </Urun> şeklinde kapanır.

<Urun> açılış ve kapanışı arasındaki her bir etikette o ürünün bilgilerini içerir. Aşağıdaki örnekte ürün ismi, kodu, fiyatı, stoğu ve resmi bulunur. Bu veriler her bir ürün için ürün adedi sayısınca tekrarlanarak devam eder. Sizin yapmanız gereken bir pilot ürün için bu alanları opencart sitenizdeki ilgili yerler ile eşleştirip yükleme işlemini başlatmaktır.

<Urunler>
   <Urun>
         <UrunAdı>Gömlek</UrunAdı>
         <UrunKodu>9154850585</UrunKodu>
         <Fiyat>279.9900</Fiyat>
         <Stok>65</Stok>
         <Resim>https://www.opencartuzman.com/image/catalog/urunler/red.jpg</Resim>
   </Urun>

   <Urun>
         <UrunAdı>Pantolon</UrunAdı>
         <UrunKodu>9154850585</UrunKodu>
         <Fiyat>279.9900</Fiyat>
         <Stok>86</Stok>
         <Resim1>https://www.opencartuzman.com/image/catalog/urunler/yellow.jpg</Resim1>
   </Urun>
</Urunler>

Çokça karşılaşılan sorun xml geliyor ama resimler gelmiyordur, bu durum çoğunlukla resim karakterlerinde hata olduğu içindir, örneğin resim adlarında boşluk olabilir. https://www.opencartuzman.com/image/catalog/urunler/red 1.jpg gibi(red ve 1 karakterleri arasında boşluk var). Böyle bir durumda resmin arasındaki boşluğu silemezsiniz, çünkü resim açılmaz, boşluk olan karakteri %20 yapmak gerekir, boşluklu bir resmi tarayıcıda açarsanız da boşluk yerine %20 yazacaktır ("https://www.opencartuzman.com/image/catalog/urunler/red%201.jpg" şeklinde dönüştürülmeli veya boşluk xml veren tarafından kaldırılmalıdır).

Veya örnek olarak bir ideasoft sitesinden xml alıyorsanız resimleri şu şekildedir; "http://st3.myideasoft.com/idea/an/04/myassets/products/168/pr_01_168_min.jpg?revision=1440764248"
yani format .jpg olması gerekirken sonunda random karakter vardır, bu durumda resimler sitenizde açılmayabilir.

Yine örnek olarak bir tsoft sitesinden xml alırsanız çoklu resimleri eşleştiremezsiniz çünkü her bir resmi aynı etiketle gönderir, resim etiketlerinin her birini uniq olarak göndermez. Yani modülünüz size img_item etiketini nereye eşlemek istediğinizi sorar, aslında o ürün için bir tane değil, birden fazla bir değerdir.

<images>
<img_item type_name="">http://www.siteadi.com.tr/Data/B/D38/36.jpg</img_item>
<img_item type_name="">http://www.siteadi.com.tr/Data/B/D38/35.jpg</img_item>
</images>

olması gereken şu şekildedir;
<images>
<img_item1 type_name="">http://www.siteadi.com.tr/Data/B/D38/36.jpg</img_item1>
<img_item2 type_name="">http://www.siteadi.com.tr/Data/B/D38/35.jpg</img_item2>
</images>

Bu ticimax sitelerinden verilen xmllerde de aynıdır;

      <Resimler>
        <Resim>http://siteadi.com/Uploads/UrunResimleri/buyuk/53e79c45-2f65-4c11-8910-d5ecd69ce186.jpg</Resim>
        <Resim>http://siteadi.com/Uploads/UrunResimleri/buyuk/3e3a6ae3-e9e5-4bdc-be23-5113b7730183.jpg</Resim>
        <Resim>http://siteadi.com/Uploads/UrunResimleri/buyuk/69dc3590-ceaf-412d-bf7f-9572f8be2b2a.jpg</Resim>
      </Resimler>

olması gereken şu şekildedir;

      <Resimler>
        <Resim1>http://siteadi.com/Uploads/UrunResimleri/buyuk/53e79c45-2f65-4c11-8910-d5ecd69ce186.jpg</Resim1>
        <Resim2>http://siteadi.com/Uploads/UrunResimleri/buyuk/3e3a6ae3-e9e5-4bdc-be23-5113b7730183.jpg</Resim2>
        <Resim3>http://siteadi.com/Uploads/UrunResimleri/buyuk/69dc3590-ceaf-412d-bf7f-9572f8be2b2a.jpg</Resim3>
      </Resimler>

Bu xml sitenizdeki modülde şu şekilde görünür;

Göründüğü gibi ürüne ait birden fazla resim olmasına rağmen ürün resim etiketi aynı olduğundan sadece 1 tanesi eşleştirilebiliyor. Eğer resimler bahsettiğimiz şekilde saydırılmış olsaydı şu şekilde doğru bir eşleştirme yapılabilirdi;

Bu örnek OpencartUzman tarafından uyumlu hale getirilmiş ve yüklenmiş bir xml e aittir.


Bir diğer örnek ürün fiyatları kuruş ayracı nokta yerine virgül olarak gelir. Bu defa sitenizde 17.90TL olan ürün 1.790TL gibi görünebilir.

Bu örneklerin sayısı arttırılabilir ve çözümü gelen xmlde modifiye yapmaktır. Bunun basitçe çözümü, örneğin ürün fiyatları virgül olarak geliyorsa dosyayı masaüstünüze indirir, kod editörü ile açıp virgülleri bul&değiştir yaparak noktaya çevirmektir. veya resmin ismi resim179 .jpg ise yine bul değiştir yaparak resim179%20.jpg yaparak datadaki hatalı durumu düzeltebilirsiniz. 

Ancak bunu her güncellemede yapmak zor olacaktır. Bu çoğunlukla data bir kez yüklenecekse yapılabilir. Bunun yerine bir modifiye.php yazarak gelen datada hatalar php kod ile düzeltilebilir.

Seçenekler ile de çokça sorun yaşanmaktadır. Bunun sebebini şu makalemizde bulabilirsiniz -->>; XMLde Seçenek Sorunları

Bunu ücretli bir servis olarak OpencartUzmandan alabilirsiniz.

Opencart Sitenizden Kaynaklı Hatalar


Bu genellikle sitenizde disk dolması şeklinde karşılaşılabilir. XML düzgündür, doğru eşleme yapılmıştır, modül ile daha önce xml yüklenmiştir ama bundan sonra xml yüklemeye çalıştığınızda ürün resimleri yüklenmiyordur. Az karşılaşılan bir sorun olsa da hata ile karşılaşıldığında bu noktaya da göz atılabilir. Bunu anlamak için sitenize manuel bir ürün ekleyin ve resim yüklenebiliyormu bunu elle test edin.


XML Yükleme Modülden Kaynaklı Hatalar


Bunu anlamanın en kolay yolu bir hata aldığınızda acaba bu xml modülünden mi kaynaklandı öğrenmek içn basit bir xml dosyasını sitenize yüklemeyi deneyin. Aşağıdaki tek ürünlük basit xmli yükleyerek bunu görebilirsiniz; 
https://demo.opencartuzman.com/test.xml

(XML yükleme dokümanına git)

XMLdeki Alanların Hatalı Eşleştirilmesi

Çokça karılaşılan hata sebebidir.

XML modülünde hatalı alan eşlemesi yaparak verileri yanlış çekebilir veya hiç çekemeyabilirsiniz. Basit bir xmlde bunu yapmak kolay olsa da karmaşık xmllerde bu sanıldığı kadar kolay olmayabilir. 

Bunun için öncelikle xmli tarayıcı üzerinde veya masaüstünüze indirerek açıp bakabilirsiniz. XML dosyası büyükse tarayıcıda açılmayacaktır. Kod editörü olarak notpad++ indirip bu xml dosyasını görüntüleyebilirsiniz. Dosyayı açtıktan sonra kodlama dili olarak xmli seçin, etiketler daha belirgin gözükecektir. Daha profesyonel bir editör için dreamweaver tercih edin.

Öncelikle modülünüz size XML ürün etiketini soracaktır, bunu doğru seçtiğinizden emin olun. XML ürün etiketi her zaman <Urun> olmak zorunda değildir <product> veya <item> veya farklı şekillerde de olabilir. Bu ürünü çevreleyen ve çoğu zaman datadaki ikinci etikettir. İlk etiket tüm datayı kaplar, ikincisi de ürünü.

Bu etiket tanımlandıktan sonra diğer alanar eşleştirilebilir. 

Lütfen ezbere başlamak yerine öncelikle datayı açıp bir ürüne göz atın. Sorun gördüğünüz noktada OpencartUzman a danışmaktan çekinmeyin.

2 Yorumlar

Türker Aydemir:
05/11/2017, 03:38:15 PM, www.***.com.tr
Yanıtla

Merhaba. 0530 645 78 ** telefon numaram. Sorularım olacak. Uzman kullanıcıdan yardım almak istiyorum. İyi çalışmalar

Ömer Keskin:
11/11/2017, 04:02:42 PM, ***.com
Yanıtla

<img_item type_name="">http://www.siteadi.com.tr/Data/B/D38/36.jpg</img_item> Çoklu resimlere numara verilmemiş. Resim örneğinde verdiğiniz sorun tam olarak bizim de içinde bulunduğumuz sorun. Bahsettiğiniz modifiye.php yazmanızın ücreti ne kadar. İyi çalışmalar...

Soru Sor