Články

Odkazy

Spřátelené weby

JoomlaDev.eu - Vše o vývoji CMS Joomla

Redakční systém WordPress - Nejlepší redakční systém zdarma - WordPress

Anketa

O jakém RS by jste chtěli více článků
 
Navigace: Úvodní strana Prestashop Články Vytvoření XML souboru pro Zbozi.cz

Vytvoření XML souboru pro Zbozi.cz

PDF Tisk Email
Středa, 25 Březen 2009 23:10

logo prestashopV dnešním krátkém článku si ukážeme jak vytvořit skript který nám bude generovat XML soubor, který budeme posílat na zbozi.cz. Nejdříve se tedy podíváme jak by vlastně takový XML soubor měl vypadat.

1) Jako první vkládáme hlavičku s kódováním:

<?xml version="1.0" encoding="windows-1250"?>

2) Poté vložíme tag <SHOP> mezi který budeme vkládat jednotlivé zboží

3) Jednotlivé položky oddělujeme tagem <SHOPITEM>, mezi tento tag vkládámejednotlivé parametry zboží. Výsledný kód pro jeden produkt tedy může vypadat například takto:

<?xml version="1.0" encoding="windows-1250"?>

<SHOP>
<SHOPITEM>

<PRODUCT>Světélkující podložka pod myš</PRODUCT>

<DESCRIPTION>Fosforeskující okraj, nevyžaduje baterie.</DESCRIPTION>

<URL>http://obchod.cz/podlozky-pod-mys/fosfor</URL>

<ITEM_TYPE>new</ITEM_TYPE>

<AVAILABILITY>24</AVAILABILITY>

<IMGURL>http://obchod.cz/obrazky/podlozky-pod-mys/fosfor.jpg</IMGURL>

<PRICE>620</PRICE>

<PRICE_VAT>756</PRICE_VAT>

</SHOPITEM>
</SHOP>

Nyní si vysvětlíme význam jednotlivých tagů:

SHOP - kořenová značka, v jejímž rámci je vše ostatní

SHOPITEM - v jejím rámci jsou informace týkající se jednoho výrobku

DUES /povinné - pokud se poplatky vztahují k nabízenému sorimentu a nejsou již obsaženy v ceně. Součet ceny všech poplatků, které je nutné zaplatit při zakoupení výrobku (cena uvedena včetně DPH, nezahrnuje dopravu a balné)

DISCUSSION_SIZE /nepovinné - počet příspěvků v diskuzi na stránkách obchodu k tomuto produktu

DISCUSSION_URL /nepovinné - URL stránky diskusního fóra k danému produktu

AVAILABILITY /nepovinné - dostupnost zboží jako číselná hodnota vyjadřující hodiny

  • 0 = skladem
  • 1 - 72 = do 3 dnů
  • 73 - 168 = do týdne
  • 169 a více = více než týden

SHOP_DEPOTS /nepovinné - identifikátor kamenných poboček, ve kterých je položka skladem. Jednotlivé identifikátory jsou odděleny středníkem. Vztahuje se pouze k jednomu IČ obchodu a jeho provozovnám. Identifikátor se přiděluje na žádost až po úspěšné registraci.

PRODUCT /povinné - stručný název výrobku (délky do 64 znaků)

DESCRIPTION /povinné - popis výrobku (délky do 512 znaků)

URL /povinné - odkaz na stránku s nabídkou daného výrobku

IMGURL /nepovinné - odkaz na obrázek výrobku

PRICE /nepovinné - v případě, že je uvedena značka PRICE_VAT - Cena v Kč bez DPH

VAT /nepovinné - v případě, že je uvedena značka PRICE_VAT – sazba DPH, hodnota se uvádí např. 19 nebo 0.19. Oba zápisy jsou ekvivalentní a představují sazbu 19 procent.

PRICE_VAT /nepovinné - v případě, že je uvedena značka PRICE a značka VAT - Cena v Kč s DPH

ITEM_TYPE /nepovinné - v případě, že je zboží nové - Typ zboží, jedna z hodnot: new (nové), bazaar (použité, renovované, repasované, bazarové), defaultní hodnota new

TOLLFREE /nepovinné - pouze pro obchody s placenou službou Zboží Standard - Pokud má obchod aktivovány přednostní výpisy, položka NEBUDE upřednostněna a proklik NEBUDE zpoplatněn. Hodnota se uvádí 1.

FIRMY_CZ /nepovinné - Obchod, který má zápis ve firmách může určit, jaké zboží bude v detailu a to tak, že ve svém XML feedu přidá k pěti vybraným položkám tag <FIRMY_CZ></FIRMY_CZ>, který má hodnoty 0 - nezobrazující se ve firemním detailu (default) , 1 - zobrazující se v detailu.

Toto jsou všechny tagy, které můžete používat,  klasicky se ovšem používá formá, který je uveden nahoře jako příklad zobrazení produktu. Nyní jdeme na samotný skript pro vytváření XML souboru. Tento skript byl publikován na fóru stránek prestashop.com, není tedy z mojí hlavy, ale je odzkoušen a funguje. Vytvoříme si v kořenovém adresáři nějaký adresář nezáleží na jménu, například xml a vložíme do něj tento php skript, můžeme ho nazvat třeba xml.php, jeho kód bude následující:

<?php
include(dirname(__FILE__).'/../config/config.inc.php'); // cesta k vasemu config souboru
$p=Product::getProducts(3, 0, 0, 'id_product', 'desc', false); //3 je id ceskeho jazyka v databazi
$products=Product::getProductsProperties(3, $p); // 3 je id ceskeho jazyka v databazi
header("Content-Type: text/xml");
echo '<?xml version="1.0" encoding="utf-8"?><SHOP>';
foreach ($products as $row) {
$img=Product::getCover($row['id_product']);
echo '
<SHOPITEM>
    <PRODUCT>'.str_replace("&","&", $row['name']).'</PRODUCT>
    <DESCRIPTION>'.str_replace(strip_tags( "&","&", $row['description_short'])).'</DESCRIPTION>
    <URL>http://www.vasedomena.cz'.$row['link'].'</URL>
    <IMGURL>http://www.vasedomena.cz/img/p/'.$row['id_product'].'-'.$img['id_image'].'.jpg</IMGURL>
    <PRICE_VAT>'.($row['price']*1).'</PRICE_VAT>
    <AVAILABILITY>0</AVAILABILITY>
</SHOPITEM>';
}
echo '</SHOP>';
?> 

Pokud chceme dostupnost produktu zobrazovat podle současných zásob vyměníme řádek AVAILABILITY za tento: 

<AVAILABILITY>’.($row[‘quantity’]).’</AVAILABILITY>

Pokud necháme 0, znamená to, že všechny produkty budeme uvádět jako že jsou skladem.  Dále je třeba změnit číslo na druhém a třetím řádku kódu, číslo udává id českého jazyka v databázi. Tabulka kde to můžeme zjistit se jmenuje ps_lang. Tím by měl generátor fungovat. Nyní stačí jen odkaz přidat na zbozi.cz, do kolonky URL feed v tomto případě zadáme adresu:

http://www.vasedomena.tld/xml/xml.php

To by bylo pro dnešek vše, v případě dotazů se obraťte do diskuze nebo napište komentář.

 

 

 

 
Komentáře (6)
XML zbozi.cz
6 Neděle, 20 Červen 2010 16:40
Administrator
Dobrý den,

XML (eXtensible markup language) je programovaci jazyk, kde si tagy vytvarime sami. Neni tedy vlastne co popisovat. Zbozi.cz si nadefinovalo tagy, ktere mi musime pouzit pokud se chceme na jeho strankach zobrazovat. Pro generovani techto tzv. feedu musime rucne vytvorit php soubor, ktery se o jeho generovani stara (tato vlastnost tedy neni soucasti administrace prestashopu). Po vytvoreni php souboru a vlozeni do nej kodu viz. vyse tento soubor nahrajeme na FTP a dale se o nej nestarame, vse obsarava automaticky sam.
XML
5 Neděle, 20 Červen 2010 11:14
Petraoz
Ahoj,
chystá se nějaký článek o tom, jak takový xml funguje, jak se s ním pracuje, kde ho vytvořit apod? (Musím ho generovat ručně nebo se to dělá automaticky, najdu ho v administraci Presty nebo pouze na ftp?
Instalaci Presty, češtiny do něj apod. jsem díky Vám zvládla...ale v tomhle nějak tápu.
díky
Petra
friendly url
4 Sobota, 06 Březen 2010 13:26
Administrator
rika se tomu friendly url, zapnou se v administraci: preference>friendly url

musite take vygenerovat .httacess navod je primo pod zapnutim pratelskych adres
url
3 Sobota, 06 Březen 2010 10:51
piere
jak lze nastavit aby se v adrese url vyskytoval nazev vyrobku a tento nazev byl nalezen zbozi.cz?
mam stale adresu ve tvaru....
http://www.profi-bike.cz/product.php?id_product=22
a nevim jak to změnit.
děkuji za radu
ps_base_url
2 Středa, 12 Srpen 2009 12:04
Administrator
Zdravím, netuším kde se tam bere, ale vypada to na to, ze by to mela byt nejaka definovana hodnota, ktera ovsem neni prirazena. Zkusil bych otevrit soubor config/config.inc.php a do nej vlozit tento radek:

define('_PS_BASE_URL_', '');

Pote by mela tato promena zmizet.

Pokud to chcete odstranit uplne i tu promenou tak lze najit funkci ktera to generuje v classes/Link.php ve funkci getProductLink na radce 45 resp. 48, resp. 51. Tam se muze umazat
Chyba v kódu pri exportu do xml pro zbozi.cz _PS_BASE_URL_
1 Středa, 12 Srpen 2009 11:10
Tomáš Forejtek
Ahoj, při generaci xml pro zbozi.cz se špatně generuje URL výrobku, tenhle script používám.




A v xml se url u všech výrobků zobrazuje takhle.


http://abito.cz_PS_BASE_URL_/22-luxusni-dvoubarevne-saty.html


Nevíte kde se tam bere to _PS_BASE_URL_ ?

Přidej Váš komentář

BoldItalicUnderlineStrikethroughSubscriptSuperscriptEmailImageHyperlinkOrdered listUnordered listQuoteCodeHyperlink to the Article by its id
Vaše jméno:
Předmět:
Komentář:

Ochrana osobních údajů, Mapa stránek,design a kód Klasdesign, Redakční systémy, rs@redakcni-systemy.com 2009
Wifi router a antény , Moje IP, Studuj FEL, Barevné kontaktní čočky