« GoPay modul pro Prestashop 1.5 | Heureka - ověřeno zákazníky » |
Prestashop 1.4 byl a je slu?ný eshop, ale vůči verzi 1.5 je to přece jen chudý příbuzný. Tvorba cen a slev, mobilní téma, multistore, sklady ... cokoliv z toho mů?e být dostačujícím důvodem pro upgrade.
Jak tedy na upgrade prestashopu?
První mo?ností která se nabízí je vestavěný autoupgrade modul, který je ve verzi 1.5 opravdu propracovaný a snadno umo?ní přechod mezi subverzemi 1.5. Podle dokumentace je pou?itelný i pro přechod z verze 1.4 na 1.5. Nicméně jak je konstatováno v manuálu "Sadly, not all upgrades are successful" a četné stí?nosti u?ivatelů nasvědčují ?e tomu tak opravdu je. Osobně pou?ívám metodu ručního reimportu produktů zalo?enou na mém modulu CSV export/import. Postup je poměrně spolehlivý a lze jej pou?ít i pro přechod z verzí Prestashop 1.2 a 1.3. Pokud ale pou?íváte kombinace zbo?í a nemáte trochu více ne? bě?né znalosti práce s počítačem, nejspí?e neuspějete. V ka?dém případě pracujte se dvěma oddělenými eshopy - původním "ostrém" a novém "cvičném" do kterého data přená?íte.
Nejprve vyře?te ?ablonu
?ablona z 1.4 na nové Prestě fungovat nebude. Nemá ani valný smysl pokou?et se ji upravit systémem dílčích změn. Dokumentace doporučuje začít z čisté výchozí ?ablony pro 1.5 a změny do ní zapracovat znovu. I v praxi jsem se přesvědčil ?e je to druhé nejlep?í ře?ení. První nejlep?í ře?ení je zakoupit nějakou hotovou moderní a případně i responsivní ?ablonu pro 1.5. Dal?ím omezením jsou úpravy eshopu dělané na míru o které při update buď přijdete nebo nebudou fungovat, ale to zde nebudu rozebírat.
Modul CSV export/import
1. Stáhněte si modul Prestashop CSV export/import ve verzi upravené pro import do 1.5. K modulu je přilo?en celkem podrobný manuál. Nainstalujte modul na původní eshop a vyexportujte CSV soubory pro zbo?í, adresy, zákazníky, výrobce, dodavatele a kategorie.
2. Na novém eshopu budete potřebovat obrázky produktů ze starého eshopu. Nejjednodu??í je překopírovat celý adresář "/img/p" do "upload/p". Pokud ale pou?íváte nový systém ukládání obrázků, bude potřeba do cílového adresáře ručně překopírovat v?echny výchozí obrázky, poznáte je podle toho ?e jejich jméno sestává jen z čísel oddělených pomlčkou a koncovky.
Vlastní import
Kategorie
na novén eshopu se přihla?te do phpMyAdmin a proveďte dotazy:
DELETE from ps_category WHERE id_category > 2;
DELETE from ps_category_lang WHERE id_category > 2;
DELETE from ps_category_group WHERE id_category > 2;
DELETE from ps_category_shop WHERE id_category > 2;
DELETE from ps_category_product WHERE 1;
Nyní nahrajte soubor category.csv přes funkci Pokročilé nastavení - Import z CSV - Nahrát. Pak soubor vyberte a zaklikněte volbu
Vynutit v?echna ID. Klikněte na "Dal?í krok" a do políčka vynechat řádků napi?te 2, aby se přeskočilo textové záhlaví sloupců a kategorie Home kterou jsme ponechali nesmazanou.
Po dokončení importu je potřeba upravit rodiče opět v phpMyAdmin
UPDATE ps_category SET id_parent=2 WHERE id_parent=1 AND id_category > 2;
UPDATE ps_category SET level_depth=(level_depth+1) WHERE id_category > 2;
Nakonec je je?tě potřeba asi Presta přepočítala strom kategorií. Nejjednodu?eji toho lze docílit přidáním, ulo?ením a opětovným vymazáním libovolné kategorie v administraci.
Dodavatelé a výrobci
Lze snadno nahrát z supplier.csv a manufacturer.csv s volbami Vynutit v?echan ID a Smazat původní před importem. Ve druhém kroku pochopitelně vynecháme první řádek aby se přeskočily textové popisky sloupců.
Adresy a zákazníci
Opět je nutné vynutit ID a smazat původní adresy či zákazníky. Navíc zále?í na pořadí, první se nahrávají zákazníci. Dal?í komplikací je chybějící id_customer v adresách, díky čemu? se posune pořadí sloupců, proto je potřeba téměř v?echny sloupce nastavit ručně ve druhém kroku.
Produkty
Produkty jsou často ve více souborech, které je potřeba nahrát postupně. Staré produkty sma?te jen při nahrávání prvního souboru, naopak ID je potřeba vynutit v?dy. Vět?ina sloupců souhlasí, ale minimálně sloupec s cestami obrázků je potřeba nastavit.
Kombinace
A? dosud byl postup poměrně jednoduchý a nepotřebovali jsme ani ?ádné zvlá?tní prostředky. Nicméně modul CSV Improt/Export kombinace neumí a k jejich přenesení je téměř nezbytné mít nějaký nástroj pro práci s databází. Pou?ívám Navicat, který umí mj. porovnat tabulky a vygenerovat příkazy pro úpravu jejich struktury
a) porovnejte strukturu tabulek směrem nový eshop - starý eshop, vygenerujte a ulo?te skript pro její synchronizaci. Týká se to jen tabulek souvisejích s attributy, viz dále.
b) přeneste kompletně tabulky i data ze starého eshopu na nový. Nově přenesené tabulky pochopitelně nemají správnou strukturu, ale k domu dojdeme později. Jedná se o tabulky
ps_attribute
ps_attribute_group
ps_attribute_group_lang
ps_attribute_impact
ps_attribute_lang
ps_feature
ps_feature_lang
ps_feature_product
ps_feature_value
ps_feature_value_lang
ps_product_attribute
ps_product_attribute_combination
ps_product_attribute_image
c) ulo?eným synchronizačním skriptem opravte databázi na novém eshopu. Toto se bude v?dy li?it podle konkrétních verzí. Opravdu potřebujete svůj skript, následující by nemusel fungovat v lep?ím případě vůbec, v hor?ím by se mohla zavléci skrytá chyba
ALTER TABLE `ps_attribute` ADD COLUMN `position` int(10) unsigned NOT NULL DEFAULT '0';
ALTER TABLE `ps_attribute_group` ADD COLUMN `group_type` enum('select','radio','color') NOT NULL DEFAULT 'select';
ALTER TABLE `ps_attribute_group` ADD COLUMN `position` int(10) unsigned NOT NULL DEFAULT '0';
ALTER TABLE `ps_attribute_impact` MODIFY COLUMN `weight` decimal(20,6) NOT NULL;
ALTER TABLE `ps_feature` ADD COLUMN `position` int(10) unsigned NOT NULL DEFAULT '0';
ALTER TABLE `ps_feature_lang` ADD INDEX `id_lang` (`id_lang`,`name`);
ALTER TABLE `ps_feature_product` ADD INDEX `id_product` (`id_product`);
ALTER TABLE `ps_product_attribute` MODIFY COLUMN `weight` decimal(20,6) NOT NULL DEFAULT '0.000000';
ALTER TABLE `ps_product_attribute` ADD COLUMN `available_date` date NOT NULL;
d) Nová verze Prestashopu má výrazně více tabulek, ne v?echny byly vpředcházejících dvou krocích naplněny. Následující příkazy by měly situaci napravit:
TRUNCATE TABLE ps_attribute_shop;
INSERT INTO ps_attribute_shop SELECT id_attribute, 1 FROM ps_attribute;
TRUNCATE TABLE `ps_attribute_group_shop` ;
INSERT INTO `ps_attribute_group_shop` SELECT id_attribute_group, 1 FROM ps_attribute_group;
TRUNCATE TABLE `ps_product_attribute_shop` ;
INSERT INTO `ps_product_attribute_shop` SELECT id_product_attribute, 1, wholesale_price, price, ecotax, weight, unit_price_impact, default_on, minimal_quantity, available_date FROM `ps_product_attribute`;
TRUNCATE TABLE ps_feature_shop;
INSERT INTO ps_feature_shop SELECT id_feature, 1 FROM ps_feature;
INSERT INTO ps_stock_available SELECT null, id_product, id_product_attribute, 1,0, quantity, 0,2 FROM ps_product_attribute
Trackback URL (right click and copy shortcut/link location)
This post has 24192 feedbacks awaiting moderation...