Ïîäêëþ÷åíèå ìàãàçèíîâ ê shop.i.ua

Ìû ïðåäëàãàåì ïîäêëþ÷èòü Âàø äåéñòâóþùèé èíòåðíåò-ìàãàçèí ê êàòàëîãó òîâàðîâ. Äëÿ ýòîãî òðåáóåòñÿ ñîçäàòü àâòîìàòè÷åñêè 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&amp;ñid=25&amp;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îäåðæèò ññûëêó íà ãëàâíóþ ñòðàíèöó ìàãàçèíà-ïàðòí¸ðà.

Çàìåíÿéòå & íà &amp;

currency

Àòðèáóò code óêàçûâàåò íà òî â êàêîé âàëþòå óêàçàíû öåíû â ôàéëå ýêñïîðòà. Äîïóñòèìûå çíà÷åíèÿ "USD", "EUR", "UAH".

Àòðèáóò rate óêàçûâàåò íà êóðñ âàëþòû, ïî êîòîðîìó áóäóò ðàññ÷èòûâàòüñÿ öåíû â ãðèâíå äëÿ îòîáðàæåíèÿ â ñèñòåìå shop.i.ua, åñëè àòðèáóò rate îòñóòñòâóåò — áóäåò èñïîëüçîâàòüñÿ êóðñ ÍÁÓ äëÿ óêàçàííîé âàëþòû. Ðàçäåëèòåëü öåëîé è äðîáíîé ÷àñòè — òî÷êà.

Ïðèìåðû:

<currency code="USD" rate="5.15" /> — âñå öåíû â äîëàðàõ ÑØÀ, êóðñ 5.15 ãðí/äîëëàð
<currency code="UAH" /> — öåíû â óêðàèíñêîé ãðèâíå

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&amp;ñid=25&amp;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

Ññûëêà íà ñòðàíèöó òîâàðà íà ñàéòå ìàãàçèíà-ïàðòí¸ðà. Îáÿçàòåëüíûé ïàðàìåòð. Íå çàáûâàåì çàìåíÿòü & íà &amp; Äëÿ îòñëåæèâàíèÿ ïåðåõîäîâ ñ íàøåãî ñàéòà ðåêîìåíäóåì äîáàâèòü ê URL ñòðîêó âèäà &amp;ref=iua.

price

Öåíà îïèñûâàåìîãî òîâàðà, ÷èñëî, ðàçäåëèòåëü öåëîé è äðîáíîé ÷àñòè — òî÷êà. Íå äîïóñêàþòñÿ òîâàðû ñ íóëåâîé öåíîé, à òàêæå íå ïðèâåòñòâóþòñÿ öåíû íå ñîîòâåòñòâóþùèå äåéñòâèòåëüíîñòè. Ïðè íåîáõîäèìîñòè óêàçàòü âàëþòó öåíû, èñïîëüçóéòå àòòðèáóò cid, íàïðèìåð <price cid="EUR">

categoryId

id êàòåãîðèè èç äåðåâà êàòåãîðèé <catalog>, ê êîòîðîé îòíîñèòñÿ äàííûé òîâàð.

image

Cñûëêà íà èçîáðàæåíèå òîâàðà â ôîðìàòå gif, jpg èëè png. Íå îáÿçàòåëüíîå ïîëå. Íå ïîîùðÿåòñÿ óêàçàíèå âìåñòî èçîáðàæåíèÿ òîâàðà êàêèõ ëèáî çàãëóøåê. Èçîáðàæåíèÿ çàêà÷èâàþòñÿ ê íàì íà ñåðâåð è óìåíüøàþòñÿ ïðè íåîáõîäèìîñòè.

vendor

Íàçâàíèå ïðîèçâîäèòåëÿ. Íå îáÿçàòåëüíîå ïîëå.

description

Îïèñàíèå òîâàðà (äî 65535 ñèìâîëîâ). Íå îáÿçàòåëüíîå ïîëå.

Äîïóñêàþòñÿ ñëåäóþùèå HTML-òýãè:

<p>, <br>, <li>, <table>, <tr>, <td>, <ol>, <ul>, <nobr>.

Ðàçìåùåíèå ôàéëà, è îáðàáîòêà åãî shop.i.ua

Ôàéë ýêñïîðòà äîëæåí áûòü äîñòóïåí ñ âàøåãî äîìåíà ïî ïðîòîêîëó http èëè ftp. Âû ìîæåòå ãåíåðèðîâàòü êàê ñòàòè÷åñêèé ôàéë(ïåðèîäè÷åñêè), òàê è äèíàìè÷åñêèé, êîòîðûé âûäàñò ðåçóëüòàò ïðè çàïðîñå ê íåìó. Ñèñòåìà shop.i.ua âûêà÷èâàåò è îáðàáàòûâàåò åãî àâòîìàòè÷åñêè, ðàç â ñóòêè, óòðîì.

Ïðèìåð ãåíåðàöèè ôàéëà íà PHP

<?
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>
		

çàêðèòè Ïàñïîðò

Ëîã³í (Ðåºñòðàö³ÿ):
Ïàðîëü:

Çàáóâ ñâ³é ïàðîëü…