GoPay modul pro Prestashop 1.5

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

 Platební brána GoPay  je poměrně oblíbená a pou?ívá ji hodně zákazníků hostujícich na Prestahost .  GoPay nabízí modul pro Prestashop ale kupodivu je?tě nezjistil existenci verze 1.5 a tak na ní modul nefunguje. Na?těstí lze modul koupit na internetu a tím jsem také donedávna vyřizoval v?echny dotazy. Tento týden jsem spí?e náhodou otestoval zda neplacený modul nefunguje také na verzi 1.5 - a opravdu funkční nebyl. Nicméně mě to nedalo abych se nepodíval do logů, co se tedy modulu nelíbí .... a překvapivě chyba vznikla zcela mimo modul, při pokusu odeslat email v místech kde byla vy?adováno vytvoření odkazu. Pak ji? stačilo jen pár minut  strávených s Google:  Call to a member function getPageLink() on a non-object .

Jedná se o problém který trápí i jiné platební moduly a lze jej vyře?it velmi snadno, dopsáním několika řádek kodu. Rozhodl jsem se nevystavit  upravený modul ke sta?ení jako celek, důvodů je několik, například ten ?e je to spí?e  jen patch ne? skutečný upgrade. Nicméně takto upravený GoPay modul na prestashop 1.5 funguje.

Konkrétní oprava modulu GoPay pro Prestashop 1.5:

otevřte si v textovém editoru typu Notepad soubor gopay.php a upravte jeho metodu __construct takto (změny vyznačeny tučně):

    public function __construct()
    {
        $this->name = 'gopay';
        $this->tab = 'payments_gateways';
        $this->version = '1.9';
       
        $this->currencies = true;
        $this->currencies_mode = 'radio';

        parent::__construct();

        $this->page = basename(__FILE__, '.php');
        $this->displayName = $this->l('GoPay');
        $this->description = $this->l('Platí GoPay');
        $this->confirmUninstall = $this->l('Opravdu chcete smazat platební modul GoPay?');
       
        if (empty(Context::getContext()->link))
             Context::getContext()->link = new Link();
      }

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

Heureka - ověřeno zákazníky

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

Heureka je pro některé eshopy vynikající prodejní kanál. A je?tě mnohem lep?í, pokud se podaří získat certifikát "Ověřeno zákazníky". 

Modul Heureka - ověřeno zákazníky pro Prestu je ke sta?ení zdarma a funguje bez nějakých vět?ích připomínek ze strany u?ivatelů na Prestashopu 1.4 a očividně i Prestashop 1.5 .

Nicméně co kdy? se podaří certikát získat?  Následující příklad je pro Prestu 1.4.

?edě:  existující kod v .tpl

oran?ově: kod od heureka

zeleně: klíč který bude v zaslaném kodu odli?ný

1. Osazení banneru ověřeno zákazníky.

Zdaleka nejjednodu??í je pou?ít nějaký nevyu?itý blok, například blok reklamy. Takto vypadá upravený blockadvertising.tpl (pozor mů?e být u modulu nebo v adresáři tématu)

<!-- MODULE Block advertising -->
<div class="advertising_block">
{literal}
<div id="showHeurekaBadgeHere-3"></div><script type="text/javascript">
//<![CDATA[
var _hwq = _hwq || [];
    _hwq.push(['setKey', 'nejakyklic123456']);_hwq.push(['showWidget', '3', '16687', 'domena.cz', 'domena-cz']);(function() {
    var ho = document.createElement('script'); ho.type = 'text/javascript'; ho.async = true;
    ho.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.heureka.cz/direct/i/gjs.php?n=wdgt&sak=nejakyklic123456';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ho, s);
})();
//]]>
</script>
{/literal}
 </div>
<!-- /MODULE Block advertising -->

2. Klouzavý banner

Umístěno v header.tpl, vypsán je malý výsek z header.tpl plus nově přidaný kod

   <script type="text/javascript">
      var baseDir = '{$content_dir}';
    var static_token = '{$static_token}';
    var token = '{$token}';
    var priceDisplayPrecision = {$priceDisplayPrecision*$currency->decimals};
      var priceDisplayMethod = {$priceDisplay};
     var roundMode = {$roundMode};
 </script>
 {literal}
 <script type="text/javascript">
  //<![CDATA[
 var _hwq = _hwq || [];
    _hwq.push(['setKey', 'nejakyklic123456']);_hwq.push(['setTopPos', '60']);_hwq.push(['showWidget', '22']);(function() {
     var ho = document.createElement('script'); ho.type = 'text/javascript'; ho.async = true;
    ho.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.heureka.cz/direct/i/gjs.php?n=wdgt&sak=nejakyklic123456'';
     var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ho, s);
 })();
 </script>
 {/literal}

Reeflexdesign.com

12/23/12 | by Václav Mach [mail] | Categories: Projekty

 

 

Reeflex Design

Url:   http://reeflexdesign.com/

Realizace: 2012

Verze shopu: 1.4.8

?ablona:  zalomen návrh majitele

Hostováno:  hosting majitele

Zákazník: Reeflexdesign.com


Co je na webu zajímavého:

- do eshopu jsme zalomili  opravdu zajímavý grafický návrh dodaný majitelem - stojí za prohlédnutí

- extrémně zjednodu?ený nákupní proces, přeprogramovaný opět podle zadání majitele. Jednodu??í objednávka u? asi být nemů?e


Nastavení DPH 21% v Prestashop 1.5

12/23/12 | by Václav Mach [mail] | Categories: Tipy a návody

Od nového roku platí pro vět?inu zbo?í a slu?eb DPH 21% sazba DPH. Nastavit ji v Prestashop 1.5 lze 2 způsoby.  Ne? se k nim dostaneme, shrňme si základní informace o daních v Prestashopu.

Daně -  definují vý?i daňové sazby, tedy procento DPH.

 

Pravidla pro daně - pod touto zálo?kou se skrývají vlastně skupiny daňových pravidel. Do ka?dé skupiny lze pak přidat jedno či více konkrétních pravidel.  Pravidlo mů?e být omezeno na jednu zemi a pravidla v rámci skupiny se od sebe mohou li?it pou?itou daňovou sazbou. Tj.  kdy? přiřazujete v cenách produktu daňové pravidlo, přiřadí se vlastně skupina a konkrétní pravidlo z této skupiny, tedy i vý?e daňové sazby,   se aplikuje podle země zákazníka.

 

 

Jak tedy nastavit v Prestashop DPH 21%?

1) Zdaleka nejjednodu??í je přepsat DPH 20% na na sazbu 21 procent. 

Nicméně setkal s hlá?kou "do?lo k chybě v aktualizaci objektu tax" kdy eshop místo aktualizace vytvořil novou daň. Po jejím smazání a opětovné změně DPH20 na 21 se ji? chyba nevyskytla a blí?e jsem ji nezkoumal.

 

2) Přidání nové daňové sazby (DPH) je slo?itěj?í. 

Novou daň budete muset přidat,  pokud z nějakého důvodu potřebujete zachovat DPH 20% i s její sazbou.  Postup uvádím také jako ilustraci toho jak v Prestashop obecně přidat novou sazbu DPH:

a) Vytvořit a ulo?it novou daňovou sazbu Lokalizace - Daně - Přidat nový

b) Vytvořit novou skupinu pravidel Lokalizace - Pravidla pro daně - Přidat nový ... Ulo?it a zůstat

c) Po ulo?ení se zpřístupnilo tlačítko Přidat nové daňové pravidlo vpravo nahoře

Je potřeba vybrat zemi, daňovou sazbu a poté kliknout na button Ulo?it a zůstat - viz obrázek:

d) Nové pravidlo se objeví v seznamu

 

 

 

e) Nyní se přesvědčíme ?e daň opravdu funguje

f)  Pokud máte více výrobků, asi nebudete chtít měnit jejich daňovou sazbu ručně. Nejrychleji hromadnou změnu provedeme v databázi např. přes phpMyAdmin.

Update ps_product SET id_tax_rules_group=11;
Update ps_product_shop SET id_tax_rules_group=11;

 

Je potřeba znát číslo daňového pravidla, v na?em případě je to 11, viz následující obrázek.

 

Permalink

Pages: << 1 2 3 4 5 6 >>

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