Virtuemart – integracja z porównywarką nokaut.pl

//Virtuemart – integracja z porównywarką nokaut.pl

Virtuemart – integracja z porównywarką nokaut.pl

2012-10-09T16:07:34+01:00 9 maja, 2010|Categories: Webdesign - html / php / js|Tags: , , , |

[ad#ad-1]

Po kilku godzinach pracy udało mi się sprawić, aby wygenerować plik XML, który jest strawny dla robota z nokaut.pl . Fundamentem do mojej pracy jest integrator autorstwa Pawła Kopeć z 2007. r. do pobrania tutaj: com_esklepy

Instalujemy owy komponent poprzez zaplecze –> INSTALATOR.

Jest to komponent służący do wygenerowania strumienia, jaki akceptuje porównywarka esklepy. Domyślnie po wywołaniu index.php?option=com_esklepy generowana jest strona z długim ciągiem słów, oddzielonych tabulacją i znakami '\n’. My zaś potrzebujemy plik XML zjadliwy dla nokaut.pl , który będzie dokumentem xml w postaci pliku na serwerze.

  • Pierwsze co robimy to uporządkowujemy wyniki wyświetlania w pliku COMPONENTS\COM_ESKLEPY\esklepy.php

linijka 67: print $kat.”\t”.$prod->product_id.”\t”.$pr->product_name.”\t”.$opis.”\t”.$brutto.”\t”.$miniaturl.”\t”.$link.”\n”;

  • Zamieniamy wyniki wyświetlania kolejnością i wstawiamy tutaj xml’owe tagi. Po zabiegu mamy:

print  '<offer><id>’.$prod->product_id.'</id><name>![CDATA[’.$pr->product_name.’]]</name><description>![CDATA[’.$opis.’]]</description><category>’.$kat.'</category><price>’.$brutto.'</price><image>![CDATA[’.$miniaturl.’]]</image><url>![CDATA[’.$link.’]]</url></offer>’;

znaczniki ![CDATA[ treść ]] są wymagane w przypadku używania nietypowych znaków jak & , < , > , …

  • Teraz zajmijmy się nagłówkiem. PLik XML generowany dla nokaut.pl powinien mieć następujący nagłówek:

<?xml version=”1.0″ encoding=”ISO-8859-2″?><!DOCTYPE nokaut SYSTEM „http://www.nokaut.pl/integracja/nokaut.dtd”><nokaut>

i pamiętajmy, że musi być to zapisane w pliku xml, czyli wynikowo:

$file = „nokaut.xml”;
unlink($file);
$fp = fopen($file, „a”);

$dane= '<?xml version=”1.0″ encoding=”ISO-8859-2″?><!DOCTYPE nokaut SYSTEM „http://www.nokaut.pl/integracja/nokaut.dtd”><nokaut><offers>’;
fwrite($fp, $dane);
fclose($fp);

  • OK. w tym momencie mamy ZAPISANY nagłówek do pliku i WYŚWIETLONE produkty. Zmnieńmy zapis wyświetlania  tak, aby nam zapisywał do pliku, czyli:

76.$file = „nokaut.xml”;           //zapis do pliku nokaut.xml
77.$fp = fopen($file, „a”);     //otwarcie pliku
78.$dane= '<offer><id>’.$prod->product_id.'</id><name>![CDATA[’.$pr->product_name.’]]</name><description>![CDATA[’.$opis.’]]</description><category>’.$kat.'</category><price>’.$brutto.'</price><image>![CDATA[’.$miniaturl.’]]</image><url>![CDATA[’.$link.’]]</url></offer>’;
79.echo „eksport: „.$pr->product_name.”<br>”;  //informacja jaką wyświetla przeglądarka, nieobowiązkowe pole..
80.fwrite($fp, $dane);  //zapisujemy pojedynczy produkt do pliku xml
81.fclose($fp);
82.}

83.}
84.$file = „nokaut.xml”;
85.$fp = fopen($file, „a”);
86.$dane= '</offers></nokaut>’;        //na koncu listy produktów „ZAMYKAMY” plik XML.
87.fwrite($fp, $dane);

88.fclose($fp);
89.}

i voila! gotowy plik PHP znajdziesz tutaj: esklepy.php

Chylę czoła dla autora integratora eSklepy – Pawła Kopeć, którego komponent posłużył do dalszych prac nad doskonaleniem systemu VirtueMart .

……………………………………………………………………………………..

PACZKA INSTALACYJNA INTEGRATORA

NOKAUT DOSTĘPNA TUTAJ:

Po wygenerowaniu pliku XML napisz proszę w komentarzu czy jest on poprawny lub co ewentualnie można poprawić.

integracja_vm_nokaut

UWAGA! PRZED INSTALACJĄ WŁĄCZAMY LEGACY MODE (SPUŚCIZNA) . Znajdziesz ten dodatek w lokalizacji ROZSZERZENIA –> DODATKI –> system (spuścizna).

……………………………………………………………………………………………….

Masz pytanie/problem?  Napisz komentarz!

Facebook - komentarze