mardon Posted December 9, 2009 Share Posted December 9, 2009 Možná už někdo zkušenější řešil export XML produktů pro vyhledávače z e-shopu, který má více jak 6000 produktů.K exportu používám skript <?php include(dirname(__FILE__).'/../config/config.inc.php'); $p=Product::getProducts(10, 0, 0, 'id_product', 'desc', false); $products=Product::getProductsProperties(10, $p); header("Content-Type: text/xml"); echo '<?xml version="1.0" encoding="utf-8"?> '; foreach ($products as $row) { $img=Product::getCover($row['id_product']); echo ' '.strtr($row['name'], "&", "&").' '.strtr(strip_tags($row['description_short']), "&", "&").' http://www.vasedomena.cz'.$row['link'].' http://www.vasedomena.cz/img/p/'.$row['id_product'].'-'.$img['id_image'].'.jpg '.($row['price']*1).' 0 '; } echo ''; ?> Skript funguje, ale jen pro asi 3500 vyrobků , pro větší množství skript nevrátí vygenerované XML zřejmě protože se mu nedostává paměti. Na hostingu je pro PHP přiděleno 64MB paměti a zvyšovat nechtějí.Kámen úrazu je možná v řádcích $p=Product::getProducts(10, 0, 0, 'id_product', 'desc', false); $products=Product::getProductsProperties(10, $p); které vracejí z db všechny sloupce pro produkty, ted i ty které se pak v XML nevypisují.Nevíte někdo jak jednoduše dostat (pomocí funkce z prestashopu) z db jen ty položky, které pak použít pro export XML? Link to comment Share on other sites More sharing options...
mikels Posted January 23, 2010 Share Posted January 23, 2010 Nikdo na tohle nepřišel Mě by to taky zajímalo. Problém bude i v nastavení serveru ale jak to obejít aby to odešlo vše... Link to comment Share on other sites More sharing options...
JAKCRABBIT Posted January 23, 2010 Share Posted January 23, 2010 Tak to bude chtít lepší hosting.... teď jsem koukal na zbozi.cz do feedu a mám tam 4745 produktů, takže to umí víc jak 3500... Link to comment Share on other sites More sharing options...
mikels Posted January 23, 2010 Share Posted January 23, 2010 A co máš za hosting. Já už jsem ho měnil po třetí a ani na jednom to nechodilo.... teď mám ONEBIT.cz Link to comment Share on other sites More sharing options...
mardon Posted January 23, 2010 Author Share Posted January 23, 2010 skript, který jsem vypsala výše pro velké množství produktů vyžaduje velké množství paměti, takže doporučuji před změnou hostinhu zjisti nastavení php_memory_limit, já jsem na localhostu zkoušela něco přes 6000 výrobků a chodilo mi to při nastavení 128MB php_memory_limit.Na druhou starnu skript výše uvedený, podle mě zbytečně natahuje hodně údajů o produktech do paměti, které pak nejsou použity v XML exportu, takže by se to asi dalo upravit tak, aby nebyl tak náročný na paměť. Link to comment Share on other sites More sharing options...
JAKCRABBIT Posted January 23, 2010 Share Posted January 23, 2010 A co máš za hosting. Já už jsem ho měnil po třetí a ani na jednom to nechodilo.... teď mám ONEBIT.cz Sem na www.isol.cz, disponuju tam 128MB paměti...Jinak jsem tady na foru v anglický části viděl xml feed jen na vybrané kategorie, tak bych zkusil ten a regnout víckrát shop na katalozích s jiným feedem.... Link to comment Share on other sites More sharing options...
mikels Posted January 23, 2010 Share Posted January 23, 2010 Hmm tak mě povolí 64mb a to je ten problém.. Tak zkusím ještě hledat Link to comment Share on other sites More sharing options...
Mamejeradi.cz Posted January 24, 2010 Share Posted January 24, 2010 Hmm tak mě povolí 64mb a to je ten problém.. Tak zkusím ještě hledat Co máš za tarif?Jsem také u onebit a koukni:http://naakup.monitor.cz/obchody/7616-chovatel-eshop-cz/ Link to comment Share on other sites More sharing options...
mikels Posted January 24, 2010 Share Posted January 24, 2010 Ahojda mám tarif profi.. Možná webcool by to vyřešil, ale už to jsou poro mě velký peníze Jinak mimo xml feedu řeším i import obrázků ty mě tam taky nějak nejedou.. ale to jestli se mi tam v importu nevyskytla nějaká chybička vše to opraví jen obrázky nenahraje... Nátož regenerování obrázků..Ale jinak bych byl spokojen za hosting Link to comment Share on other sites More sharing options...
Mamejeradi.cz Posted January 24, 2010 Share Posted January 24, 2010 Já měl taky profi a myslím, že mě to šlo i na něm, ale asi mám to xmlko jiný.Generování obrázků musíš udělat na lokále a pak je přepsat na ftp, na chovateli je 55000 obrázků a to by asi jen tak nějakej hosting nepustil. Link to comment Share on other sites More sharing options...
mikels Posted January 24, 2010 Share Posted January 24, 2010 Tak obrázka teda vyřeším přes local no škoda toho XML budu muset hledat nějaký lepší Link to comment Share on other sites More sharing options...
Mamejeradi.cz Posted January 24, 2010 Share Posted January 24, 2010 Když nenajdeš ozvi se, ale pozor nebyl zadarmo.... Link to comment Share on other sites More sharing options...
mikels Posted January 24, 2010 Share Posted January 24, 2010 Jasný chápu to. Já se když tak ozvu. Jinak pochvala za eshop máš to moooc hezký Link to comment Share on other sites More sharing options...
Mamejeradi.cz Posted January 24, 2010 Share Posted January 24, 2010 To jsem tak koupil tu grafiku. Link to comment Share on other sites More sharing options...
mikels Posted January 24, 2010 Share Posted January 24, 2010 Ale je fakt nádherná závidím Link to comment Share on other sites More sharing options...
Mamejeradi.cz Posted January 24, 2010 Share Posted January 24, 2010 Ale pořád mě zlobí to množství produktů, jako dodavatel tam je jedinej velkoobchod v republice kterej má xmlko pro eshopy a importní modul nějak zlobí.Eshopu bych měl večer dát aktuální xml a on by do rána měl zapnou zboží, který je opět skladem, vypnout to, co došlo, přidat případně nové, zkontrolovat ceny....Bohužel pořád dělá chyby. Link to comment Share on other sites More sharing options...
JAKCRABBIT Posted January 24, 2010 Share Posted January 24, 2010 To jsem tak koupil tu grafiku. Mno, nastylovaný hezky, jen bych si vytknul nahoře list a dole ten hmyz, absolutně se to tam nehodí... jen můj názor, možná měl grafik na to jiný pohled a přiložil tomu jiný význam. Link to comment Share on other sites More sharing options...
Mamejeradi.cz Posted January 24, 2010 Share Posted January 24, 2010 Já nekoupil jen grafiku,ale běžící shop vč domény a zadanýho zboží, ikdyž to už tam dávno není a doména je taky trochu jiná Link to comment Share on other sites More sharing options...
JAKCRABBIT Posted January 24, 2010 Share Posted January 24, 2010 Já nekoupil jen grafiku,ale běžící shop vč domény a zadanýho zboží, ikdyž to už tam dávno není a doména je taky trochu jiná Jo ták... no stejně ale v pohodě, hlavně že lidi nakupujou Link to comment Share on other sites More sharing options...
Mamejeradi.cz Posted January 24, 2010 Share Posted January 24, 2010 No moc ne, neni to totiž nikde prezentovaný, poněvadž jak jsem psal autamatickej import dělá chyby. Link to comment Share on other sites More sharing options...
mikels Posted October 8, 2010 Share Posted October 8, 2010 Ahoj všem tak jsem zpět a stejný problém. sice mi byla paměť navýšena, ale stále se mi do vyhledávačů neimportuije vše... Onebit.cz a cool nejvyšší arif.. Tak fakt nevím co s tím. Ještě mi byla dána rada vytvořit adresář export aby se pouze na tento adresář zvýšila paměť nebo co toje a to v rootu FTP a přesměrovat přes htaccess .. No sice přesměrování se podařilo ale soubor XML feed to nespustí... Prosím o radu co s tím Link to comment Share on other sites More sharing options...
tuk66 Posted October 14, 2010 Share Posted October 14, 2010 Pokud exportujete velký množství produktů, tak to může zlobit bez "varování". Málo paměti, zatížení serveru atd. Někomu to jde a někomu ne. To je export na nic.Podle mně by to mělo být udělaný univerzálně a pro všechny. To znamená optimalizovaný pro velké množství produktů. Já bych to zkusil exportovat v dávkách, flushovat, možná si udělat dočasný soubor na disku. Nevím co přesně by zabralo. Určitě se to dá udělat pro milion produktů. Link to comment Share on other sites More sharing options...
mikels Posted October 14, 2010 Share Posted October 14, 2010 No mě poradili co jsem psal výše že navýšení paměti která je nízká pouza na jeden adresář který je v rootu ftp.. Což jsem učinil a přesměroval htaccess ale bohužel tím jsem skončil, protože jsem lama a nevím co by v tom adresáři mělo být.. mě psali že nic. což je blbost a aspon tam musí byt index.php. co se týče dávkování tak jsem o tomto uvažoval ale opúět nevím jak to udělat.. Děkuji za každou informaciPs když jsem to měl původně tak to exportovalo 2300 produktů pak mi byla navýšena paměť a exportuje to jednou tolik 4600 produktu potřebuji 9000 ... Link to comment Share on other sites More sharing options...
tuk66 Posted October 14, 2010 Share Posted October 14, 2010 Takže dvojnásobek paměti by pomohl? Link to comment Share on other sites More sharing options...
mikels Posted October 14, 2010 Share Posted October 14, 2010 Určitě ještě.. jenže více prý ne e proto ten adresář v rootu ftp ale tím jsem skončil a dál si neporadím...Spíš mi připadlo že na hostingu nevedí co jsem po nich chtěl Mám onebit cool Link to comment Share on other sites More sharing options...
mikels Posted October 23, 2010 Share Posted October 23, 2010 No tak poskočil jsem o krok dále udělal jsem na ftpku adesář export do kterýho jesm nakopíroval scripty jako zbozi.php atd. v .htaccess jsem provedl redirect a světe div se odexportuje to 6500 položek.. místo 4300 ale problém je ten že výseldný xml feed odkazuje na adresu export.navitym.cz já potřebuji pouze aby to odkazovalo navitym.cz.. u obrázků je to správně.. Nevíte někdo jako to upravit?? Předpokládám že by to mělo být v tom xml feedu.. Díky za radu Link to comment Share on other sites More sharing options...
tuk66 Posted October 24, 2010 Share Posted October 24, 2010 Pokud je potřeba exportovat řádově více než několik tisíc produktů, tak skript, který to dělá v jednom průchodu zákonitě v určité chvíli narazí na time_limit a přidělené množství paměti v PHP. Hranice kolapsu exportu se mění a záleží taky na momentálním zatížení serveru a množství dat uložených u produktů.Chystám export, který omezení serveru řeší a umožní exportovat v podstatě neomezený počet produktů. Budu ho otestovat na 100 000 produktech a 16 MB paměti. Měly by tím skončit všechny problémy různých hostingů při XML exportech. Link to comment Share on other sites More sharing options...
mikels Posted October 24, 2010 Share Posted October 24, 2010 No to by bylo super.. Já jsem to obešel tímto způsobem a funguje to aspoň částečně, protože tím, že byl nově vytvořen adresář a změnil se odkaz tak jakkoliv se snažím upravit xml feed tak mě to odkazuje na tento vytvořený adresář tudíž se zákazník ke zboží nedostane.. obrázky to generuje dobře...Potřebuji zatím poradit s tímto ... Pak až bude new export tak přejdu ale teď bych rád věděl jak to udělat.. Link to comment Share on other sites More sharing options...
JanaP Posted October 24, 2010 Share Posted October 24, 2010 Nikde nevidim prilozeny kod skriptu, asi je tajny ... takze neviem, ci tam mas '.$row['link'].' Skratka na zlu adresu, ktora sa generuje medzi tagy http://export.navitym.cz/... pouzithttp://cz.php.net/manual/en/function.str-replace.php alebo http://cz.php.net/manual/en/function.preg-replace.phpna odstranenie "export." Link to comment Share on other sites More sharing options...
mikels Posted October 24, 2010 Share Posted October 24, 2010 No mám to takhle zkusil jsem to tam fláknout na tvrdo samozřejměn bez výsledků <?php $shopUrl = 'http://www.navitym.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, 6500, '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 ' '.htmlspecialchars(str_replace("&", "&", $row['name']), ENT_QUOTES).' '.htmlspecialchars(str_replace("&", "&",strip_tags($row['description_short'])), ENT_QUOTES).' '.http://navitym.cz.'/product.php?id='.$row['link'].' '.$shopUrl.'/img/p/'.$row['id_product'].'-'.$img['id_image'].'.jpg '.($row['price']*1).' neni skladem '; } echo ''; ?> Link to comment Share on other sites More sharing options...
JanaP Posted October 24, 2010 Share Posted October 24, 2010 '.http://navitym.cz.'/product.php?id='.$row['link'].' flaknute na tvrdo je samozrejme zle, skus, co davaju zapisy '.$row['link'].' '.str_replace("export", "www", $row['link']).' '.str_replace("export", "", $row['link']).' http://navitym.cz/product.php?id='.$row['link'].' Link to comment Share on other sites More sharing options...
mikels Posted October 24, 2010 Share Posted October 24, 2010 Jinak takhle vypadá výsledná xml feed − − Konvice metal TEFAL VitesseS INOX s termoregulátorem 1,7L (BI962513) − Elegance v matném nerezu Objem (l): 1.7 Podstavec: středový konektor - 360° Typ ohřevu: ukrytá topná spirála - ploché dno Výklopné víko: bezpečnostní Příkon (W): 2400 Regulace − http://export.navitym.cz/product.php?id_product=8966 http://www.navitym.cz/img/p/8966-7073.jpg 1463 TEFAL Na dotaz Správně by měla adresa vypadat takto http://navitym.cz/product.php?id_product=8966 Link to comment Share on other sites More sharing options...
ramble Posted March 7, 2011 Share Posted March 7, 2011 Podařilo se vám to někomu 100% rozchodit? Mám na onebitu 96M memory limit a pustí mě to max 4500 položek. Potřeboval bych okolo 10.000. Pokud je potřeba exportovat řádově více než několik tisíc produktů, tak skript, který to dělá v jednom průchodu zákonitě v určité chvíli narazí na time_limit a přidělené množství paměti v PHP. Hranice kolapsu exportu se mění a záleží taky na momentálním zatížení serveru a množství dat uložených u produktů.Chystám export, který omezení serveru řeší a umožní exportovat v podstatě neomezený počet produktů. Budu ho otestovat na 100 000 produktech a 16 MB paměti. Měly by tím skončit všechny problémy různých hostingů při XML exportech. Je už nějaký hotový produkt? Link to comment Share on other sites More sharing options...
tuk66 Posted March 7, 2011 Share Posted March 7, 2011 Zájem o XML export pro velké množství produktů není moc velký. Proto jsem dodělání toho modulu zatím odsunul na vedlejší kolej. Link to comment Share on other sites More sharing options...
ramble Posted March 7, 2011 Share Posted March 7, 2011 Nakonec jsem to tedy musel vyřešit navýšením memory limit na 128MB. Bohužel tím vlastně jen za feed platím asi o 800 Kč ročně víc. Další problém může nastat při navyšování počtu zboží do budoucna. Kvalitní modul by to vyřešil určitě lépe. Škoda. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now