Ìû ïðåäëàãàåì ïîäêëþ÷èòü Âàø äåéñòâóþùèé èíòåðíåò-ìàãàçèí ê êàòàëîãó òîâàðîâ. Äëÿ ýòîãî òðåáóåòñÿ ñîçäàòü àâòîìàòè÷åñêè XML-ôàéë, â êîòîðîì ïåðå÷èñëåíû àêòóàëüíûå òîâàðíûå ïîçèöèè è êàòåãîðèè.
Ñòðóêòóðà ôàéëà ñëåäóþùàÿ:
<?xml version="1.0" encoding="windows-1251"?>
<price date="2007-01-16 16:44">
<name>eMagazinchik</name>
<url>http://www.eMagazinchik.com.ua/</url>
<currency code="UAH"/>
<region>Óêðàèíà</region>
<catalog>
<category id="17">Áûòîâàÿ òåõíèêà</category>
<category id="25" parentID="17">Òåëåâèçîðû</category>
<category id="34" parentID="17">DVD-ïðîèãðûâàòåëè</category>
<category id="16">Êîìïüþòåðû</category>
<category id="19" parentID="16">Ìàòåðèíñêèå ïëàòû</category>
</catalog>
<items>
<item id="138">
<name>Òåëåâèçîð SAMSUNG LE40R71B</name>
<url>http://www.eMagazinchik.com.ua/backet/?pid=138&ñid=25&ref=iua</url>
<price>9576.00</price>
<categoryId>25</categoryId>
<image>http://www.eMagazinchik.com.ua/img/138.jpg</image>
<vendor>Samsung</vendor>
<description>Äèñïëåé: äèàãîíàëü, äì. (ñì) 40, ñîîòíîøåíèå ñòîðîí ýêðàíà 16:9
</description>
</item>
</items>
</price>
<?xml version="1.0" encoding="windows-1251"?>
Îáÿçàòåëüíîå íà÷àëî XML ôàéëà ýêñïîðòà. Ïðîáåëû èëè ïåðåâîäû ñòðîêè íåäîïóñòèìû â íà÷àëå ôàéëà, êîäèðîâêà "windows-1251".
<price date="2007-01-16 16:44">
price |
Êîðíåâîé ýëåìåíò XML-ôàéëà. Îáÿçàòåëüíî çàêðûòü åãî â êîíöå ôàéëà. Àòðèáóò date ñîäåðæèò äàòó è âðåìÿ ãåíåðàöèè ôàéëà ýêñïîðòà â ôîðìàòå YYYY-MM-DD HH-MM. Åñëè â shop.i.ua îáðàáàòûâàëñÿ ôàéë ñ òàêîé äàòîé, ïîâòîðíàÿ îáðàáîòêà íå ïðîèçâîäèòñÿ. |
<name>eMagazinchik</name> <url>http://www.eMagazinchik.com.ua/</url> <currency code="UAH"/> <region>Óêðàèíà</region>
name |
Cîäåðæèò íàçâàíèå ìàãàçèíà-ïàðòí¸ðà. Çàïðåùàåòñÿ ðàçìåùàòü â íàçâàíèè ìàãàçèíà ëþáóþ ðåêëàìíóþ èíôîðìàöèþ, êàê òî ëîçóíãè, òåëåôîíû è ïðî÷åå. Íå çàáûâàéòå ïðî òî, ÷òî íàäî ïðåîáðàçîâûâàòü ñèìâîëû & è " â íàçâàíèè. |
url |
Cîäåðæèò ññûëêó íà ãëàâíóþ ñòðàíèöó ìàãàçèíà-ïàðòí¸ðà. Çàìåíÿéòå & íà & |
currency |
Àòðèáóò code óêàçûâàåò íà òî â êàêîé âàëþòå óêàçàíû öåíû â ôàéëå ýêñïîðòà. Äîïóñòèìûå çíà÷åíèÿ "USD", "EUR", "UAH". Àòðèáóò rate óêàçûâàåò íà êóðñ âàëþòû, ïî êîòîðîìó áóäóò ðàññ÷èòûâàòüñÿ öåíû â ãðèâíå äëÿ îòîáðàæåíèÿ â ñèñòåìå shop.i.ua, åñëè àòðèáóò rate îòñóòñòâóåò áóäåò èñïîëüçîâàòüñÿ êóðñ ÍÁÓ äëÿ óêàçàííîé âàëþòû. Ðàçäåëèòåëü öåëîé è äðîáíîé ÷àñòè òî÷êà. Ïðèìåðû:
|
region |
Ñîäåðæèò íàçâàíèå ðåãèîíà â êîòîðîì ìàãàçèí-ïàðòí¸ð îñóùåñòâëÿåò äîñòàâêó. Äîïóñòèìûå çíà÷åíèÿ: "Óêðàèíà", "Âèííèöà", "Äíåïðîïåòðîâñê", "Äîíåöê", "Æèòîìèð", "Çàêàðïàòüå", "Çàïîðîæüå", "Èâàíî-Ôðàíêîâñê", "Êèåâ", "Êèðîâîãðàä", "Êðûì", "Ëóãàíñê", "Ëóöê", "Ëüâîâ", "Íèêîëàåâ", "Îäåññà", "Ïîëòàâà", "Ðîâíî", "Ñóìû", "Òåðíîïîëü", "Õàðüêîâ", "Õåðñîí", "Õìåëüíèöêèé", "×åðêàññû", "×åðíèãîâ", "×åðíîâöû", "Ðîññèÿ". Èñïîëüçóéòå îòäåëüíûé òýã äëÿ êàæäîãî ðåãèîíà. Ïðèìåð (ðåãèîíû äîñòàâêè Êèåâ, Äíåïðîïåòðîâñê): <region>Êèåâ</region> <region>Äíåïðîïåòðîâñê</region> |
<catalog> <category id="17">Áûòîâàÿ òåõíèêà</category> <category id="25" parentID="17">Òåëåâèçîðû</category> <category id="34" parentID="17">DVD-ïðîèãðûâàòåëè</category> <category id="16">Êîìïüþòåðû</category> <category id="19" parentID="16">Ìàòåðèíñêèå ïëàòû</category> </catalog>
catalog |
Ñîäåðæèò îïèñàíèå äåðåâà êàòåãîðèé, èñïîëüçóåìîãî â ôàéëå ýêñïîðòà (êîðíåâîé òýã). |
category |
Íàçâàíèå îïèñûâàåìîé êàòåãîðèè äåðåâà êàòåãîðèé. Àòðèáóò id ñîäåðæèò óíèêàëüíûé (íåïîâòîðÿþùèéñÿ áîëåå â äàííîì áëîêå) id êàòåãîðèè, öåëîå ÷èñëî îò 1 äî 2147483647. Íåîáõîäèìî, ÷òîáû id êàòåãîðèè áûë ïîñòîÿííûì, è íå èçìåíÿëñÿ îò ýêñïîðòà ê ýêñïîðòó. Àòðèáóò parentID ñîäåðæèò id ðîäèòåëüñêîé êàòåãîðèè, öåëîå ÷èñëî îò 1 äî 2147483647. Åñëè àòðèáóò parentID íå óêàçàí, ëèáî ðàâåí íóëþ ðîäèòåëüñêîé êàòåãîðèåé äëÿ îïèñûâàåìîé ñ÷èòàåòñÿ êîðíåâàÿ. Ìàêñèìàëüíàÿ äîïóñòèìàÿ âëîæåííîñòü êàòåãîðèé øåñòü óðîâíåé. |
<items>
<item id="138">
<name>Òåëåâèçîð SAMSUNG LE40R71B</name>
<url>http://www.eMagazinchik.com.ua/backet/?pid=138&ñid=25&ref=iua</url>
<price>9576.00</price>
<categoryId>25</categoryId>
<image>http://www.eMagazinchik.com.ua/img/138.jpg</image>
<vendor>Samsung</ vendor >
<description>Äèñïëåé: äèàãîíàëü, äì. (ñì) 40, ñîîòíîøåíèå ñòîðîí ýêðàíà 16:9
</description>
</item>
</items>
items |
Ñîäåðæèò ïåðå÷èñëåíèå òîâàðíûõ ïîçèöèé (êîðíåâîé òýã). |
item |
Àòðèáóò id ñîäåðæèò óíèêàëüíûé (íåïîâòîðÿþùèéñÿ áîëåå â äàííîì áëîêå) èäåíòèôèêàòîð ïîçèöèè, öåëîå ÷èñëî îò 1 äî 2147483647. Íåîáõîäèìî, ÷òîáû id òîâàðà áûë ïîñòîÿííûì, è íå èçìåíÿëñÿ îò ýêñïîðòà ê ýêñïîðòó. Åñëè âû èñïîëüçóåòå áóêâåííûé êîä òîâàðà, ìîæíî èñïîëüçîâàòü ôóíêöèþ õåøèðîâàíèÿ äëÿ ïîëó÷åíèÿ äîâîëüíî óíèêàëüíîãî öèôðîâîãî çíà÷åíèÿ, íàïðèìåð ôóíêöèþ crc32 |
name |
Íàçâàíèå òîâàðà (150 ñèìâîëîâ), åñëè íàçâàíèå áîëüøå, îíî îáðåçàåòñÿ, è â åãî êîíöå ñòàâèòñÿ òðîåòî÷èå. Îáÿçàòåëüíûé ïàðàìåòð. |
url |
Ññûëêà íà ñòðàíèöó òîâàðà íà ñàéòå ìàãàçèíà-ïàðòí¸ðà. Îáÿçàòåëüíûé ïàðàìåòð. Íå çàáûâàåì çàìåíÿòü & íà & Äëÿ îòñëåæèâàíèÿ ïåðåõîäîâ ñ íàøåãî ñàéòà ðåêîìåíäóåì äîáàâèòü ê URL ñòðîêó âèäà &ref=iua. |
price |
Öåíà îïèñûâàåìîãî òîâàðà, ÷èñëî, ðàçäåëèòåëü öåëîé è äðîáíîé ÷àñòè òî÷êà. Íå äîïóñêàþòñÿ òîâàðû ñ íóëåâîé öåíîé, à òàêæå íå ïðèâåòñòâóþòñÿ öåíû íå ñîîòâåòñòâóþùèå äåéñòâèòåëüíîñòè. Ïðè íåîáõîäèìîñòè óêàçàòü âàëþòó öåíû, èñïîëüçóéòå àòòðèáóò cid, íàïðèìåð |
categoryId |
id êàòåãîðèè èç äåðåâà êàòåãîðèé |
image |
Cñûëêà íà èçîáðàæåíèå òîâàðà â ôîðìàòå gif, jpg èëè png. Íå îáÿçàòåëüíîå ïîëå. Íå ïîîùðÿåòñÿ óêàçàíèå âìåñòî èçîáðàæåíèÿ òîâàðà êàêèõ ëèáî çàãëóøåê. Èçîáðàæåíèÿ çàêà÷èâàþòñÿ ê íàì íà ñåðâåð è óìåíüøàþòñÿ ïðè íåîáõîäèìîñòè. |
vendor |
Íàçâàíèå ïðîèçâîäèòåëÿ. Íå îáÿçàòåëüíîå ïîëå. |
description |
Îïèñàíèå òîâàðà (äî 65535 ñèìâîëîâ). Íå îáÿçàòåëüíîå ïîëå. Äîïóñêàþòñÿ ñëåäóþùèå HTML-òýãè: <p>, <br>, <li>, <table>, <tr>, <td>, <ol>, <ul>, <nobr>.
|
Ôàéë ýêñïîðòà äîëæåí áûòü äîñòóïåí ñ âàøåãî äîìåíà ïî ïðîòîêîëó http èëè ftp. Âû ìîæåòå ãåíåðèðîâàòü êàê ñòàòè÷åñêèé ôàéë(ïåðèîäè÷åñêè), òàê è äèíàìè÷åñêèé, êîòîðûé âûäàñò ðåçóëüòàò ïðè çàïðîñå ê íåìó. Ñèñòåìà shop.i.ua âûêà÷èâàåò è îáðàáàòûâàåò åãî àâòîìàòè÷åñêè, ðàç â ñóòêè, óòðîì.
<?
function toXML($str)
{
return htmlspecialchars($str, ENT_QUOTES);
}
Header("Content-Type: \"text/xml\"; charset=windows-1251");
echo '<?xml version="1.0" encoding="windows-1251"?>';
?>
<price date="<?=date('Y-m-d H:i')?>">
<name>eMagazinchik</name>
<url>http://www.eMagazinchik.com.ua/</url>
<currency code='USD'/>
<region>Óêðàèíà</region>
<catalog>
<?
foreach ($categories as $row)
{
echo '<category id="', $row['id'], '" parentID="', $row['parentID'], '">',
toXML($row['name']), '</category>';
}
?>
</catalog>
<items>
<?
$res = mysql_query("SELECT
id, name, catalogID, description, image_path, extern_url, price, vendor
FROM price WHERE price_uah!=0");
while($row = mysql_fetch_array($res))
{
?>
<item id="<?=(int)$row['id']?>">
<name><?=toXML($row['name'])?></name>
<categoryId><?=(int)$row['catalogID']?></categoryId>
<price><?=(float)$row['price']?></price>
<url><?=toXML($row['extern_url'])?></url>
<image><?=toXML($row['image_path'])?></image>
<vendor><?=toXML($row['vendor'])?></vendor>
<description><?=toXML($row['description'])?></description>
</item>
<?
}
?>
</items>
</price>