« GoPay modul pro Prestashop 1.5Heureka - ověřeno zákazníky »

Upgrade Prestashopu na verzi 1.5

02/20/13 | by Václav Mach [mail] | Categories: Tipy a návody

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

Permalink

Trackback address for this post

Trackback URL (right click and copy shortcut/link location)

1 comment

Comment from: Václav Mach [Member] Email
Václav MachU verze 1.56 si prestashop do tabulky kategorií tvrdo?íjně přidává vynechané (na původním eshopu smazané) kategorie.

DELETE FROM ps_category WHERE NOT EXISTS (SELECT id_category from ps_category_lang where ps_category_lang.id_category = ps_category.id_category)
11/11/13 @ 14:35

This post has 1016 feedbacks awaiting moderation...

Prestashop je eshopové open source ře?ení které a vytlačuji ostatní platformy včetně komerčních. Za svou úspě?nost vděčí zejména maximálnímu zaměření na podporu prodeje, vynikající roz?iřitelnosti v podobě stovek modulů a minimálním nárokům na provoz. Zdarma je nejen Prestashop, ale i řada modulů, cca 120 z nich je přibaleno ji? k základní instalaci.

Contents

XML Feeds

blog software