Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

Import xml feedu – třídy Prestashopu vs. přímý zápis do DB

zasche
verified
rating uzivatele
(1 hodnocení)
4. 6. 2014 09:28:07
Zdravím,
má někdo zkušenost s tvorbou scriptu pro import kategorií, produktů do Prestashopu z xml feedu ve smyslu, zda je výhodnější, příp. rychlejší použít standardní definované třídy v Prestashopu (Category(), Product (), ...) nebo přímý zápis do DB?
Díky předem za zkušenosti!
4. 6. 2014 09:28:07
https://webtrh.cz/diskuse/import-xml-feedu-tridy-prestashopu-vs-primy-zapis-do-db/#reply1029319
puhy.cz
verified
rating uzivatele
(5 hodnocení)
4. 6. 2014 09:48:58
Rychlejší je zápis přímo do db, to je bez debat. Ale dost jsem se s tím vytrápil. Přes třídy to budeš mít jednodušší a hlavně přenositelné mezi více verzemi...
4. 6. 2014 09:48:58
https://webtrh.cz/diskuse/import-xml-feedu-tridy-prestashopu-vs-primy-zapis-do-db/#reply1029318
zasche
verified
rating uzivatele
(1 hodnocení)
4. 6. 2014 10:05:56
Díky, taky mám pocit, že do DB je to rychlejší, ale těžko hledám jakoukoliv dokumentaci, takže podle vzorových kategorií a produktů odhaduju správný způsob vložení ane vždy najdu správné souvislosti. Na verzi 1.4 to nějak mám rozchozeno, ale v 1.5 těžko dopočítávám nleft a nright, u obrázků produktů zase komplikovaně tvořím stromové adresáře pro uložení obrázků, což je novinka v 1.5. Bohužel i k třídám je dokumentace nic moc, takže u new Category() jsem momentálně pohořel, že se mi nedaří ukládat id_category, jelikož je definováno jako auto_increment. Ale při importu z csv lze přepis id_category zapnout, takže to nějak musí jít. Nemáš tip na nějakou lepší dokumentaci než je na prestashop.com?
4. 6. 2014 10:05:56
https://webtrh.cz/diskuse/import-xml-feedu-tridy-prestashopu-vs-primy-zapis-do-db/#reply1029317
puhy.cz
verified
rating uzivatele
(5 hodnocení)
4. 6. 2014 10:55:49
Tak id_category nepřepisuj. Vždyť si to samo přidá další id v řadě. nleft a nright jde pak hromadně přegenerovat:
strom přegeneruješ takto:
4. 6. 2014 10:55:49
https://webtrh.cz/diskuse/import-xml-feedu-tridy-prestashopu-vs-primy-zapis-do-db/#reply1029316
zasche
verified
rating uzivatele
(1 hodnocení)
4. 6. 2014 11:10:11
Chtěl jsem nechat původní importované id, jelikož mám 2 xml feedy, kategorie a produkty. A v produktech je odkaz na id kategorie z xml kategorie. Tzn. pokud id z xml kategorií při importu "ztratím", tak budu komplikovaně zařazovat produkty do kategorií. A stejně tak budu komplikovaně updatovat a zneplatňovat kategorie při pravidelném update kategorií z xml.
4. 6. 2014 11:10:11
https://webtrh.cz/diskuse/import-xml-feedu-tridy-prestashopu-vs-primy-zapis-do-db/#reply1029315
puhy.cz
verified
rating uzivatele
(5 hodnocení)
4. 6. 2014 11:14:06
Kdyby někdo věděl jak na to, taky by mě to zajímalo.
4. 6. 2014 11:14:06
https://webtrh.cz/diskuse/import-xml-feedu-tridy-prestashopu-vs-primy-zapis-do-db/#reply1029314
zasche
verified
rating uzivatele
(1 hodnocení)
4. 6. 2014 11:19:33
Zkusím pátrat dál, případně dám vědět. Podle dokumentace by mělo fungovat new Product ((int)$product_id, true) jako update zboží. Tak jsem chtěl obdobně použít new Category ((int)$category_id), ale tvoří to vlatní nové kategorie s vlastním id. A dokumentace nula ...
---------- Příspěvek doplněn 04.06.2014 v 11:32 ----------
V diskusích jsem našel, že lze použít Category::insert() a Category::update(). Večer to zkusím otestovat a dám vědět.
---------- Příspěvek doplněn 05.06.2014 v 09:50 ----------
Tak jsem to včera zkoušel a efekt je stejný = vlastní id_category. V diskusích jsem našel, že jiná varianta než přímý zápis do DB, abych tam dostal vlastní id_category, není.
4. 6. 2014 11:19:33
https://webtrh.cz/diskuse/import-xml-feedu-tridy-prestashopu-vs-primy-zapis-do-db/#reply1029313
Ja jsem to vyresil tak, ze jsem vyuzil importu pomoci CSV, jen jsem to zautomatizoval.
11. 6. 2014 17:55:59
https://webtrh.cz/diskuse/import-xml-feedu-tridy-prestashopu-vs-primy-zapis-do-db/#reply1029312
zasche
verified
rating uzivatele
(1 hodnocení)
11. 6. 2014 20:54:55
Napsal josef.jebavy;1097250
Ja jsem to vyresil tak, ze jsem vyuzil importu pomoci CSV, jen jsem to zautomatizoval.
Jak v PHP převedu xml na csv jsem našel, asi i najdu, zda je třeba csv o některá pole "obohatit", import csv snad automaticky taky dokážu naprogramovat ... ale jak to stíhá Prestashop? Kolik položek z csv nahráváš? a jak velký soubor? nevyprší timout?
11. 6. 2014 20:54:55
https://webtrh.cz/diskuse/import-xml-feedu-tridy-prestashopu-vs-primy-zapis-do-db/#reply1029311
Napsal zasche;1097275
ale jak to stíhá Prestashop? Kolik položek z csv nahráváš? a jak velký soubor? nevyprší timout?
Pokud by slo o rychlost, tak by clovek musel zvolit pristup rovnou do DB...
Problém plyne z kombinace vykonu DB, webseveru a timeautu. Ale pro bezny eshop by s tim nemel byt problem.
Na vlastnim serveru jsem s tim nemel problem a tam jsem zkousel az 50 tisisc produktu. Samozrejme jsem musel spravne nakonfigurovat server!
U wedosu meli nejakou chyby, takze databaze to nezvladala, a kdyz to opravili tak kvuli timeoutu to i pak zvladlo importovat jen cca 100-200 novych polozek zbozi a to jsem zkousel maximalne polovicni pocet zbozi.
Na jinem hostingu nakonfigurovanem pro Prestashop to chodilo bez problemu a i docela svizne.
12. 6. 2014 10:16:34
https://webtrh.cz/diskuse/import-xml-feedu-tridy-prestashopu-vs-primy-zapis-do-db/#reply1029310
zasche
verified
rating uzivatele
(1 hodnocení)
12. 6. 2014 10:22:31
Aha, to abych opustil Wedos :-) Potřebuji alespoň 2x denně nahrát nebo updatovat až 6000 položek ... Asi se tedy poperu se zápisem přímo do DB, tak mi to teď relativně funguje. Díky
12. 6. 2014 10:22:31
https://webtrh.cz/diskuse/import-xml-feedu-tridy-prestashopu-vs-primy-zapis-do-db/#reply1029309
Napsal zasche;1097385
Až to vyzkoušíš, tak dej prosím vědět, zajímalo by mě jak rychlé to bude atd.
12. 6. 2014 10:27:07
https://webtrh.cz/diskuse/import-xml-feedu-tridy-prestashopu-vs-primy-zapis-do-db/#reply1029308
zasche
verified
rating uzivatele
(1 hodnocení)
12. 6. 2014 10:41:43
ok, dám ... tak jak to mám teď (stažení xml na server, rozparsování a ukládání přímo do DB struktur Prestashopu), tak to zvládne uložení cca 1000 položek do timeoutu (webhosting Wedos NoLimit bez balíčku Extra) ... když to xml na 5-6 spuštění načtu, tak už to nechám běžet přes cron a update položek už to zvládne na jeden zátah celé xml (odhadem 50 nových produktů, zbytek update ceny a variant, před vlastním update nejdřív všechno zboží označím jako neplatné a s updatem ho znovu zplatním) ... problém je ale v tom, že přímým zápisem do DB obcházím definované třídy Presty, které spouštějí různé kontroly a triggery, takže zápis zboží není 100% korektní a mám pocit, že to celý eshop zpomaluje ...
A jinak, zkoušel jsem načítat větší xml a okolo cca 14.000 položek timeoutuje už i update ... takže jsem to řešil postupným načítáním xml, kdy jsem po každém načtení nebo update položky ukládal do DB vlastní proměnnou LastID, která si pamatovala poslední uloženou položku a při dalším pokusu načíst xml se všechny položky až do LastID přeskočily a začaly se načítat až další, až do timeoutu nebo pokud dosáhl poslední položky, začal import od začátku.
12. 6. 2014 10:41:43
https://webtrh.cz/diskuse/import-xml-feedu-tridy-prestashopu-vs-primy-zapis-do-db/#reply1029307
Pro odpověď se přihlašte.
Přihlásit