Jump to content

XML FEED - krok za krokem


kubik104

Recommended Posts

zkontroluj si ty upravene soubory, jestli tam neni chyba v uvozovkach, apostrofech apod.
zkus zpatky nakopirovat puvodni soubory (pred upravou), jestli to bude fungovat normalne.
ale myslim, ze tou cestinou to nebude. delalas nejake dalsi upravy (nove moduly apod?)


Zkontrolováno, staré soubory nefungují taky :o( Jediné co jsem dělala s moduly, že jsem koukala do modulu výrobců, ale jen v BO. jako chybu to hází úplné nesmysly - v BO v modulech Parse error: syntax error, unexpected T_VARIABLE in /www.anbio.cz/classes/Module.php(323) : eval()'d code on line 225

a na stránce produktů ještě větší blbost http://www.anbio.cz/product.php?id_product=29
Link to comment
Share on other sites

kdy jsi prisla na ty chyby? vcera to fungovalo, kdyz jsi upravila tu cestinu a pak znovu ukladala zbozi?

Dnes, ale je možné, že to nefungovalo už včera. Kontrolovala jsem správnost češtiny u feedu, ne to, zda je něco špatně u detailu produktu. Na to jsem přišla až dnes při kontrole toho, jak funguje vyhledání mého zboží za Zbozi.cz.
Link to comment
Share on other sites

a na webu máš teď všechny původní soubory před úpravou češtiny? protože by se měly v xml feedu znovu zobrazovat špatné znaky, ale feed je správně česky

Mělo by to tak být. Kontrolovala jsem i podle data, zda jsem něměnila něco dalšího a nic nevidím.
Link to comment
Share on other sites

v smarty.config.inc.php nastav nech sa akakolvek zmena hned prejavi a nezobrazuje sa chybova stranka ak nahodou upravou odstranis chybu:

$smarty->caching = false;
$smarty->force_compile = true; // to pass "false" when put into production
$smarty->compile_check = true;

Po oprave zmenis nastavenia nazad.


A priloz tu subor (nie kod ale prilohu) modules/mailalerts/mailalerts.php kde hlasi chybu
"unexpected T_VARIABLE in ....../modules/mailalerts/mailalerts.php on line 225"

Aj chybova hlaska BO: Parse error: syntax error, unexpected T_VARIABLE in /www.anbio.cz/classes/Module.php(323) : eval()‘d code on line 225 na to poukazuje ze je chyba v module

Link to comment
Share on other sites

pak mě napadá už jedině dotaz na technickou podporu hostingu, jestli nedělali nějaké změny v posledních dnech. už se mi několikrát stalo, že mi takhle odstavili shop.

Poslala jsem též. Jinak je zajímavé, že jsem tytéž úpravy dělala na svém druhém eshopu, který běží na o chlup starší verzi a tam je všechno v pořádku. Běží na stejném serveru. Každopádně dík za tvůj čas.
Link to comment
Share on other sites

v smarty.config.inc.php nastav nech sa akakolvek zmena hned prejavi a nezobrazuje sa chybova stranka ak nahodou upravou odstranis chybu:

$smarty->caching = false;
$smarty->force_compile = true; // to pass "false" when put into production
$smarty->compile_check = true;

Po oprave zmenis nastavenia nazad.


A priloz tu subor (nie kod ale prilohu) modules/mailalerts/mailalerts.php kde hlasi chybu
"unexpected T_VARIABLE in ....../modules/mailalerts/mailalerts.php on line 225"

Aj chybova hlaska BO: Parse error: syntax error, unexpected T_VARIABLE in /www.anbio.cz/classes/Module.php(323) : eval()‘d code on line 225 na to poukazuje ze je chyba v module


Přepsáno jen to poslední, ostatní bylo jak píšeš. Změna žádná.

mailalerts.zip

Link to comment
Share on other sites

chybny kod na 225 riadku

$qty = intval((isset($params['product']['quantity_attribute']) AND is_int $params['product']['quantity_attribute'])) ? ....



EDIT: nesuhlasia zatvorky - is_int()
To je upravovany modul mailalerts? Lebo verzia 2.2 ktora je v original Preste vyzera inak.

Link to comment
Share on other sites

OPRAVA

225 riadok mailalerts.php

$qty = intval(( isset($params['product']['quantity_attribute']) AND is_int($params['product']['quantity_attribute']) ) ? $params['product']['quantity_attribute'] : $params['product']['stock_quantity']);



ak to nepojde odstran modul, ak nepojde odinstalovat v BO tak zalohuj a vymaz docasne adresar /modules/mailalerts

Link to comment
Share on other sites

v smarty.config.inc.php nastav nech sa akakolvek zmena hned prejavi a nezobrazuje sa chybova stranka ak nahodou upravou odstranis chybu:

$smarty->caching = false;
$smarty->force_compile = true; // to pass "false" when put into production
$smarty->compile_check = true;

Po oprave zmenis nastavenia nazad.


A priloz tu subor (nie kod ale prilohu) modules/mailalerts/mailalerts.php kde hlasi chybu
"unexpected T_VARIABLE in ....../modules/mailalerts/mailalerts.php on line 225"

Aj chybova hlaska BO: Parse error: syntax error, unexpected T_VARIABLE in /www.anbio.cz/classes/Module.php(323) : eval()‘d code on line 225 na to poukazuje ze je chyba v module


Přepsáno jen to poslední, ostatní bylo jak píšeš. Změna žádná.


koukam, ze uz to funguje. byl to ten modul mailalerts?
Link to comment
Share on other sites

v smarty.config.inc.php nastav nech sa akakolvek zmena hned prejavi a nezobrazuje sa chybova stranka ak nahodou upravou odstranis chybu:

$smarty->caching = false;
$smarty->force_compile = true; // to pass "false" when put into production
$smarty->compile_check = true;

Po oprave zmenis nastavenia nazad.


A priloz tu subor (nie kod ale prilohu) modules/mailalerts/mailalerts.php kde hlasi chybu
"unexpected T_VARIABLE in ....../modules/mailalerts/mailalerts.php on line 225"

Aj chybova hlaska BO: Parse error: syntax error, unexpected T_VARIABLE in /www.anbio.cz/classes/Module.php(323) : eval()‘d code on line 225 na to poukazuje ze je chyba v module



Přepsáno jen to poslední, ostatní bylo jak píšeš. Změna žádná.


koukam, ze uz to funguje. byl to ten modul mailalerts?


Ne docela, teď mi nefunguje dokončení objednávky. Je to, doufám, jen nutnost nahodit znova ship to pay.
Link to comment
Share on other sites

OPRAVA

225 riadok mailalerts.php
$qty = intval(( isset($params['product']['quantity_attribute']) AND is_int($params['product']['quantity_attribute']) ) ? $params['product']['quantity_attribute'] : $params['product']['stock_quantity']);



ak to nepojde odstran modul, ak nepojde odinstalovat v BO tak zalohuj a vymaz docasne adresar /modules/mailalerts



JO!!! To je ono! Stačilo upravit ten kód, chybové hlášky zmizely. Způsobené to bylo pravděpodobně tím, že jsem nedávno maialerts upravovala, protože mi chodily nesmyslné maily o stavu zboží poté, co si ho někdo objednal. (Chodil mail, že je poslední kousek skladem, i když nebyl). Nicméně jsem zkusila dokončit objednávku a nejde to, chlásí chybu v souboru order.php na 420 řádku, což je tohle: 'HOOK_PAYMENT' => Module::hookExecPaymentFront(Tools::getValue('id_carrier')), 'total_price' => floatval($orderTotal),

asi mě už jebne...

order.zip

Link to comment
Share on other sites

v smarty.config.inc.php nastav nech sa akakolvek zmena hned prejavi a nezobrazuje sa chybova stranka ak nahodou upravou odstranis chybu:

$smarty->caching = false;
$smarty->force_compile = true; // to pass "false" when put into production
$smarty->compile_check = true;

Po oprave zmenis nastavenia nazad.


A priloz tu subor (nie kod ale prilohu) modules/mailalerts/mailalerts.php kde hlasi chybu
"unexpected T_VARIABLE in ....../modules/mailalerts/mailalerts.php on line 225"

Aj chybova hlaska BO: Parse error: syntax error, unexpected T_VARIABLE in /www.anbio.cz/classes/Module.php(323) : eval()‘d code on line 225 na to poukazuje ze je chyba v module



Přepsáno jen to poslední, ostatní bylo jak píšeš. Změna žádná.


koukam, ze uz to funguje. byl to ten modul mailalerts?


Ne docela, teď mi nefunguje dokončení objednávky. Je to, doufám, jen nutnost nahodit znova ship to pay.


Tak není :o( viz vedle
Link to comment
Share on other sites

odinstaluj a vymaz vsechny moduly, ktere se tykaji platby a dopravy, pak nainstaluj znovu jen ty z original balicku.

Až tak? Mám tu tři platební moduly - banka, dobírka, hotovost plus ship to pay u dopravcu (carriers) vidím jen statscarriers... tak ty platební?
Link to comment
Share on other sites

statscarriers asi nemusis, nejdriv ship to pay, pak vyzkousej.

Udělala jsme to všechno, ale nedaří se mi modul ship to pay zavěsit do platebních (mám ho v v Blocks i když dám změnu pozíce) já už si nevzpomínám, jak jsem ho instalovala :o( každopádně to háže pořád stejnou chybu.
Link to comment
Share on other sites

ship2pay nikam nezavesuj - odinstaluj ho :-) a pak uplne vymaz
pak z orig. balicku nakopiruj na web vsechny soubory, ktere ten modul prepisuje, mely by to byt order.php + classes/Module.php


Uáááá, vypadá to, že vše funguje, udělala jsem úspěšnou objednávku, maily chodí jak mají a že není zboží skladem to nehlásí. Já doufám, že toto je stav trvalý aspoň na pár let. Takže už jen přeložím modul znova do češtiny a mělo by to být 100% cajk. Děkuji všem za účinnou pomoc a kdybyste potřebovali poradit s krmením pro zvířata, obraťte se!!!
Link to comment
Share on other sites

jen pro zajimavost: ted by mel byt stav jako pred upravou cestiny - zkus otevrit a ulozit nejakou polozku a pak se na ni podivat ve feedu, jake jsou tam znaky.


Ano, po uložení je čeština opět rozesr... takže udělat znova těch 6 bodů?
Link to comment
Share on other sites

Ahoj...

1) Vytvořit si soubor .php a vložit to něj následující:

<?php
$shopUrl = 'http://www.presta.bazarhudebnin.cz';      // adresa shopu včetně http://
include(dirname(__FILE__).'/config/config.inc.php'); // cesta ke config souboru
include(dirname(__FILE__).'/init.php');
error_reporting(0);
$p=Product::getProducts(3, 0, 0, 'id_product', 'desc', false); // ceština je v databázi zapsaná pod číslem 3
$products=Product::getProductsProperties(3, $p); // ceština je v databázi zapsaná pod číslem 3

header("Content-Type: text/xml");
echo '<?xml version="1.0" encoding="utf-8"?>
';
foreach ($products as $row) {
$img=Product::getCover($row['id_product']);
echo '

'.str_replace("&", "&", $row['name']).'
'.str_replace("&", "&",strip_tags($row['description_short'])).'
'.$row['link'].'
'.$shopUrl.'/img/p/'.$row['id_product'].'-'.$img['id_image'].'.jpg
'.($row['price']*1).'
0
';
}
echo '';
?>



2) uložit do rootu složky s Prestou

3) Url feedu bude:

http://www.tvojedomena.cz/nazevtvyhosouboru.php

a to budeš zadávat při registraci feedu na zbozi.cz.


Tipy, triky

Nainstalovat a spustit SEO (nastavit si .htaccess)



zdravím, chci se jenom zeptat, jestli je ejak snadno možné docílit toho, abych data pro feed tahal z více tabulek, že bych tam dal i EAN, Vyrobce, ISBN atd :) dík za jakoukoliv pomoc
Link to comment
Share on other sites

  • 1 month later...

Řeším problém s vložením EANu.

v php mám

'. round($row['ean13']) .'



správný ean je 4003718037241

v xml mi to ale vypisuje

4.00371803724E+12



v databázi je uvedeno správně.

Tušíte někdo, kde by mohl být problém? Děkuji!

Link to comment
Share on other sites

  • 2 weeks later...

Dobrý den , po zásahu od Forpsi mi nejede žádný xml feed (zboží,heureka, jyxo) , který do ted fungoval naprosto bez problémů,

Chyba parsování XML: Dokument není dobře zformátován
Adresa: http://www.ask-tu.cz/xml.zbozi.php
Řádek 1, sloupec 2:<?xml version="1.0" encoding="utf-8"?>
-^
Už si opravdu nevím rady děkuji za každou radu



<?php

$shopUrl = 'http://www.ask-tu.cz'; /// OPRAVIT
include(dirname(__FILE__).'/config/config.inc.php');/// ZKONTROVAT SPRAVNOST
include(dirname(__FILE__).'/init.php'); /// ZKONTROVAT SPRAVNOST
error_reporting(0);
$p=Product::getProducts(3, 0, 0, 'id_product', 'desc', false);/// ZKONTROVAT SPRAVNOST
$products=Product::getProductsProperties(3, $p);/// ZKONTROVAT SPRAVNOST

header("Content-Type: text/xml");

echo '<?xml version="1.0" encoding="utf-8"?>
';

foreach ($products AS $row){

if ($row['active']){


$kategorie=array();
$category = new Category(intval($row['id_category_default']), intval(3));
while ($category->id <> 1) {
$kategorie[]=$category->hideCategoryPosition($category->name);
$category = new Category(intval($category->id_parent), intval(3));
}

$img=Product::getCover($row['id_product']);
echo '

'.str_replace("&", "&", $row['manufacturer_name']).'
'.str_replace("&", "&", $row['manufacturer_name']).' '.str_replace("&", "and", strip_tags($row['name'])).'
'.str_replace("&", "and", strip_tags($row['description_short'])).'.'.str_replace("&", "and", strip_tags($row['description'])).'
'.$row['link'].'
http://www.ask-tu.cz/img/p/'.$row['id_product'].'-'.$img['id_image'].'-home.jpg
'.$row['tax_rate'].'
'.($row['price']*1).'
2

';
[spam-filter]
echo '';
/// DALE OPRAVIT DOMENU+CESTU K ADRESARI V RADKU
/// OPRAVIT - doruceni (dny)

?>

Link to comment
Share on other sites

  • 3 months later...
  • 6 months later...

Řeším problém s vložením EANu.

v php mám

'. round($row['ean13']) .'

správný ean je 4003718037241

v xml mi to ale vypisuje

4.00371803724E+12

v databázi je uvedeno správně.

Tušíte někdo, kde by mohl být problém? Děkuji!

 

 

Sice je to už starý, ale jak jsi to, prosím tě, vyřešil? Řeším nyní ten samý problém a nemůžu se hnout z místa...

 

Díky za info.

Link to comment
Share on other sites

nechce se mi zakladat novy topic, tak to napisu sem...

 

nasel jsem spolehlivy modul pro zbozi... ALE!

 

problem je v tom, ze tag CATEGORYTEXT vypise jen jako posledni kategorii...

 

udam priklad.

 

mam strukturu

 

a > b > c (az v kategorii "C" mam produkt)

 

xml feed vypise pouze

 

<CATEGORYTEXT>

c

</CATEGORYTEXT>

 

našla by se dobrá duše, která by se na to podívala? já už to po 12-ti hodinách vzdávám.

 

odkaz na modul je http://www.prestahost.cz/moduly/zbozi/zbozi.zip

 

(je potreba ve feeds.php nastavit id.lang na vase ID v DB)

Link to comment
Share on other sites

Mno, koukal jsem se na svůj feed, a mně tam ty kategorie vypisuje všechny...

 

Ale možná to bude tím, že ten produkt nemám zařazen jen v kategorii "C", ale i "A"+"B"... Protože takhle logicky ti to ty kategorie vypíše... Když ho máš jen v "c", vypíše ti jen "c"....

 

Ověř si to, jestli to tak je...

Link to comment
Share on other sites

ano, je to jak rikas, ale C je podkagorie B a B zase A.

Chtel bych to vyresit tak, ze se vypise ve feedu cely strom A >B > C.

 

Kbybych to mel dat zobrazovat ve vsech techto kategoriich tak by byly stranky natolik neprehledne, ze se zakaznii strati uz na indexu a radeji odejde nakupovat jinam.

 

Mimochodem se tento modul dal jednoduse upravit tak, abych docilil funkcniho exportu pro "Nákupy Google" - úspesne odzkouseno.

 

Pouzival jsem drive jednoduchy php scrtipt pro export feedu, ale pri kazdem stahovani se musel script spustit, coz pri vice polozkach zatezovalo server, tak jsem radeji presel na tento, ktery pomoci cronu spustim napr. 1x denne a vygeneruje to primo XML ktery se pri stahovani katalogem proste stahne a zadne scripty neni treba spoustet.

 

Navic jsem pri testovani puvodniho jednoducheho php exportu prisel na to, ze pokud mame nad urcity pocet polozek (v radech 3000+ ), script se proste neprovede cely. Zkratka to nemelo budoucnost, zatez uz byla moc velka.

Link to comment
Share on other sites

U mě to špatně generovalo linky pro obrázky, které jsou podle nového řazení ve formátu img/p/x/x/x/xyz.jpg, ale našel jsem řešení. Pak jsem přidal do tohoto modulo EAN. Třeba se někomu bude hodit.

I když je to s křížkem po funuse, když heureka.cz změnila od 1.2.2012 strukturu XML souboru.

 

V příloze je tedy upravený modul zbozi v0.2, originální verze: http://www.prestahost.cz/modules/

zbozi.zip

Link to comment
Share on other sites

  • 2 weeks later...

zbozi.cz nemám vyzkoušené, ale kouknu na to.

CATEGORYTEXT mi generuje jen poslední kategorii, ve které se zboží nachází, nepřijde mi to jako chyba.

 

PS: pro zbozi.cz jsem použil stejnou úpravu jako pro heureku a obrázky už to generuje se správnou cestou, opravený FeedSeznam.php je v příloze...

FeedSeznam.php

Link to comment
Share on other sites

  • 3 weeks later...

Přátelé, třeba se někomu bude hodit následující drobná úprava modulu zbozi v0.2, originální verze: http://www.prestahost.cz/modules/ , viz příspěvek #153

 

Zadání zákazníka bylo:

 

V eshopu se ceny zobrazují standardně za balení (např. u podlah 1 balení = 2,5 m2) , ale do XML je potřeba generovat ceny za jednotku, tzn. za 1 m2 (uvedeno u položky), aby ve vyhledávači nebyl obchod zařazován na horší místo jen kvůli tomu, že cena je generována v tomto případě za celé balení.

 

Stačila následující úprava kódu ve skriptech FeedSeznam.php a FeedHeureka.php :

 

Místo

 

$item.= "\t\t\t<PRICE_VAT>".$this->prepare_string($product['price'])."</PRICE_VAT>\n";

 

vložte

 

$item.= "\t\t\t<PRICE_VAT>".$this->prepare_string(round($product['price']/$product['unit_price_ratio']))."</PRICE_VAT>\n";

 

Poznámka: Ceny jsou zaokrouhlovány na celé číslo, což nevadí, protože to zbožové vyhledávače stejně dělají automaticky ;)

Link to comment
Share on other sites

to s těmi kategoriemi správně právě neni, podle heureky musí být celá cesta jako v shopu, např.:

 

 

Elektronika | Mobilní telefony

 

Tzn. i mateřské kategorie a všechny nadřazené oddělené vždy mezerou a znakem "|". Mě to Zboži v2.0 ukazuje všechny kategorie, akorát mi to mezi nima nedává ten znak "|" a nemam takovej php knowledge, abych to zmáknul

:)

Link to comment
Share on other sites

Mohl bych tohle téma oživit? U každého zboží píšu dostupnost (standartní funkce PS) když je skladem/není skladem. Jak tenhle text dosta do feedu? Teď se mi tam zobrazuje nula. Bylo by řešením to přepsat ve feedu, ale u každého zboží je to jinak.

Link to comment
Share on other sites

  • 3 weeks later...

zdravím, mám tenhle modul http://www.prestahost.cz/modules/), generuje mi tenhle xml :

http://korenigurman....ozi_heureka.xml , heureka mi to zkousla , ukazuje mne při srovnávání cen, jde mi jen o to dostat do toho xml <DESCRIPTION> a <DELIVERY_DATE> aby zobrazovali popis a čas dodání. Jetli je potřeba to upavit nějak ve feedu,nebo jestli ty hodnoty musím zadat někde v katalogu u zboží. U dopravců mám nastavené 24-48 h,což v eshopu funguje. Na ten decription má možná vliv to,že když chci napsat krátký popisek,tak se mi vůbes neukazuje text,prostě není vůbec vidět,ale v eshopu u zboží vidět je. Dík za radu Jirka

Link to comment
Share on other sites

taky jsem ten modul zkoušel, co jsem zjistil, tak to tam neháže mezi kategorie a subkategorie tu dělící čárku... tak jsem se na to vyprdnul a koupil od Berušky a Broučka ten jejich exportní modul, bohužel ho můžu používat jen tak z 10%... Z nabízených asi 10 exportních feedů co modul má umět zvládnout včetně attributů můžu mít zaplý pouze jeden, tudíž heureku, protože když jich mam zaplých víc, tak script prostě nemá čas se dodělat do konce - nejpíš kvůli max_execution_time, který má Wedos na 90 vteřin a nejde zaboha zvýšit, ani přes .htaccess... takže super, zaplatit přes 5 kil za modul, jehož hodnota je ve skutečnosti 10%, protože zbytek nejde použít :D

Link to comment
Share on other sites

No tak napiš broučkovi, když jsi to zaplatil, měl by ti pomoct, jak to obejít, třeba pro každý srovnávač cron zvlášť každý v jinou dobu, ne??? určitě to má vyřešené, a pokud ne, tak bych pochyboval o jeho kvalitách, protože tohle mi příjde jako standartní problém :-)

 

i když je pravda, že VPS by ti usnadnilo práci ve spoustě věcí... Holt, prachy jsou prachy, ale pokud si shop nevydělá na VPS, nač pak takový shop provozovat, ne? No, ale to už je mimo mísu dotazu :-)

Link to comment
Share on other sites

Už jsme si vyměnili asi 5 mejlů, bohužel v posledním mejlu to končilo nějak takhle... ,,Asi Vám s tím nebudu moci pomoct". Nicméně jsem mu ještě odepsal, tak snad to nějak oklikou (kterou to v základu bohužel nemá) dáme dohromady :)

Mě to taky přišlo jako standardní problém, ale prý takový problém málokdo má a že ať změním hosting nebo na VPS...

 

Tak teprve mam shop spuštěný 2 dny :D no zatim si vydělal na 2 měsíce VPS :D

Link to comment
Share on other sites