Stavimednes.cz aneb nakupujeme v Prestashopu na délku

09/16/13 | by Václav Mach [mail] | Categories: Bugy

stavímednes.cz

 

Url:   http://stavimednes.cz/

 

Realizace: 2013

 

Verze shopu: 1.5.2

 

Provedené úpravy:

- zalomení dodaného designu

- úpravy zdrojového kodu Prestashop  podle zadání majitele

 

Hostováno:  prestahost.cz

 

Zákazník:  Okenní a stavební centrum

 

Co je na webu zajímavého

zbo?í, například li?ty lze nakupovat na metry včetně desetin, eshop správně vypočítává celkové součty. Tak?e pokud si zákazník koupí 2 ks li?ty 1.6 m dlouhé,  eshop sečte délky a v ko?íku se objeví celková délka 3.2 m.  Celkově je eshop slu?ně přizpůsoben na prodej zbo?í po kusech, metrech či balení...

 

 
 

Problémy s prestashop cookies - přihlá?ení zákazníka a ko?ík nejsou funkční

08/27/13 | by Václav Mach [mail] | Categories: Bugy

Problém se příle?itostně objevuje po upgrade eshopu, případně přechodu na Prestashop z jiného systému. Obvyklé příznaky:

- dříve registrovaní zákazníci se nemohou přihlásit

- zbo?í přidané do ko?íku záhadně mizí

- často se děje jen na Google Chrome a/ nebo IE

 

Na toto téma jsou dohledatelná relevantní vlákna na prestashop foru, která vesměs ústí v doporučení "sma?te cookies" případně  "přesměrujte doménu na jiný tvar. 

 

Problém je způsobený chováním cookies - cookie nastavená pro doménu bez subdomény (tj. pro tvar mojedomena.cz) je rozpoznána i na subdoménách (tedy např. na www.mojedomena.cz) a zmate prohlí?eč.  Domníval jsem se ?e toto mů?e vzniknout jen pokud byl obchod dříve provozován na doméně bez www a po upgradu pře?el na tvar s www, ale není to tak. Minimálně v prestashop 1.5.2 a pravděpodobně i v dal?ích je chyba která věc dost komplikuje:

  • v administraci  prestashopu je nastavena doména obchodu www.mojedomena.cz
  • zákazník si zadá tvar bez www
  • eshop jej na pozadí přesměruje na tvar s www ale mezitím mu stačí nastavit "chybnou" cookie pro tvar bez www

Přesvědčil jsem se o tom na vlastní oči sledováním cookies v Chrome.  Ruční odstranění cookie pro tvar bez www okam?itě zfunkčnilo jak registraci tak ko?ík.

 

Ře?ení

je potřeba o?etřit 2 odli?né problémy

a) zabránit nastavení chybné cookie. K tomu je nutné aby k přesměrování do?lo dříve ne? to udělá eshop. Ře?ením je dopsat 2 řádky do souboru .htaccess který najdete v rootu svého eshopu, hned za RewriteEngine on:

RewriteCond %{HTTP_HOST} ^mojedomena.cz
RewriteRule (.*) http://www.mojedomena.cz/$1 [R=301,L]

webový server pak po?adavky přesměruje je?tě dříve ne? se k nim dostane engine presty

b) postarat se o u?ivatele kteří ji? chybnou cookie mají. To je trochu komplikované tím ?e prestashop si cookie ?ifruje. Jméno cookie je na?těstí ?ifrováno poměrně jednodu?e a hlavně pro v?echny u?ivatele stejně. Zjistit se dá např. v Chrome - otevřte si eshop na doméně bez www (pochopitelně předtím ne? jste provedli úpravy v .htaccess, nevadí ale  pokud Vás při tom přesměruje presta na tvar s www ). Pak v Chrome - ikonka v pravém rohu - Nastavení .... dole Zobrazit roz?ířená nastavení .... Ochrana soukromí .... Nastavení obsahu ... V?echny soubory cookie a data z webu

v okně které se otevře je v pravo nahoře vyhledávací pole do kterého zadejte prvních několik písmen ze jména domény (bez www). Měly by se zobrazit cookie jak pro doménu s www tak bez www, zajímá Vás cookie pro doménu bez www. Její jméno bude nějaký nepříli? hezký očividně nesmyslný řetězec - a právě ten je potřeba okopírovat. Pak u? stačí vytvořit soubor FrontController.php:

<?php

class FrontController extends FrontControllerCore
{
public function init()
    {
     
        global $useSSL, $cookie, $smarty, $cart, $iso, $defaultCountry, $protocol_link, $protocol_content, $link, $css_files, $js_files, $currency;
     
          if(isset($_COOKIE['9963c4e1fb4770546fb795abf44b4b34'])) {
        $time=mktime()-86400;
        setcookie('9963c4e1fb4770546fb795abf44b4b34', '', $time, '/', 'mojedomena.cz', 0, true);
         }
    
      parent::init();
     
    }
}

- vytvořte soubor v čistém textovém editoru jako je např.  pspad

- místo mojedomena.cz napi?te jméno Va?í domény bez www

- místo "9963c4e1fb4770546fb795abf44b4b34" pou?ijte nalezené jméno cookie

- hotový soubor nakopírujte do adresáře /override/classes/controller pod jménem FrontController.php

- pravděpodobně bude potřeba smazat soubor /cache/class_index.php

- pokud se při přidání zbo?í do ko?íku objeví zpráva "text status parse error" nebo web vůbec nefunguje  odstraňte z upraveného FrontController  v?echny mezery  za poslední závorkou a přesvěčte se ?e pou?íváte skutečně čistý textový editor, který si nepřidává ?ádné řídící znaky

 

Summary: Cookies, customer login and cart problems in Prestashop:

if the shop domain is www.mydomain.com, the problem is most likely caused by cookie set for the domain mydomain.com (not containing www)

- redirect to the www.mydomain.com already in .htaccess, this prevents prestashop from accidentally setting the wrong "no www" cookie

- find out the encrypted "no www" cookie name using Chrome browser

- use the name to delete the unvanted cookie in the overriden FrontController class (this help customers with the browser already "infected" by the wrong cookie

 

 



Permalink

Hromadné úpravy produktů v Prestashop 1.5 - modul QuickUpdate

07/04/13 | by Václav Mach [mail] | Categories: Moduly
 

Procházet mezi produkty, přepínat taby a upravovat například ceny nebo attributy zbo?í jeden po druhém mů?e být docela zdlouhavé. Ře?ení je několik.

  • úplná automatizace načítáním z XML feedů. Toto je asi nejlep?í ře?ení, ale nejde pou?ít pokud ?ádný zdrojový feed není k dispozici.  Skripty pro načítání také nemohou z principu být zcela univerzální, v?dy je potřeba udělat nějaké úpravy namíru konkrétnímu feedu
  • desktop program, konkrétně Store  Manager. Program který je spou?těný na PC se doká?e vzdáleně připojit k databázi Prestashopu,  díky můstku dokonce i v případě ?e port pro databázi je na serveru zvenčí zavřený.  Program není levný a před nákupem  doporučuji důkladně otestovat trial verzi.  Nejedná se o to ?e by program nebyl funkční, to určitě je, nicméně ne ka?dému musí styl práce s programem vyhovovat.
  • Moduly pro rychlou zprávu. Takových modulů bylo k dispozici několik pro verzi 1.4, nicméně kdy? jsme s jedním zákazníkem hledali ře?ení pro verzi 1.5, nepodařilo se nám ?ádný vyhovující nalézt (v době kdy čtete tento článek se mohla situace ji? změnit).  Zákazník zakoupil modul QuickUpdate s tím ?e se jej snad podaří nějak zprovoznit. Zbytek článku se týká právě tohoto modulu.

Quickupdate modul pro Prestashop

Instalace

Modul si při instalaci překopíruje část souborů do adresáře /admin, co? je případně potřeba zkontrolovat.

Spu?tění

Po instalaci se QuickUpdate objeví v menu pro rychlý přístup, které je umístěno v horním pruhu administrace vedle hledání.  Kliknutím se dostanete do samostatné, podle mého názoru velmi dobře ře?ené obrazovky pro rychlou editaci. Jedná se o formu přehledné editovatelné mří?ky. Práce je velmi rychlá a pohodlná.

 

Pou?itelnost ve verzi 1.5

Modul lze instalovat a je i částečně funkční.  Pro dal?í zprovoznění bylo potřeba provést několik zásahů do zdrojového kodu, ty nebyly slo?ité, ale poměrně dost času si vy?ádalo se v modulu vůbec zorientovat. Po těchto modifikacích modul umo?ňuje plnohodnotnou editaci kombinací (attributů)  zbo?í včetně jejich cen, co? byl důvod pro který je pořízen.  Je pravděpodobné ?e zprovoznění dal?ích funkcí modulu (např. nahrávání obrázků) by si vy?ádalo dodatečné zásahy.

 

Celkové hodnocení

plus

  • zjevně povedené u?ivatelské prostředí, rychlé a pohodlné
  • kod je napsán se zajímavým nadhledem ukazující na práci kvalitního programátora
  • cena je výrazně ni??í ne? u desktop programu Store Manager a hromadná on-line editace se zdá pohotověj?í ne? samostatá desktop aplikace

minus

  • modul není zatím pou?itelný pro Prestashop 1.5 bez úprav
  • podpora ze strany autora modulu je laxní - na email nijak nereagoval

Export do zbo?í a Heureka - modul zbo?í snad zase o něco lep?í

03/09/13 | by Václav Mach [mail] | Categories: Moduly

Modul zbo?í respektive Srovnávače zbo?í - export (heureka.cz, zbozi.cz) pro 1.5 se dočkal výrazné předělávky zaměřené na 2 zásadní problémy

a) dostupnost zbo?í

b) párování s kategoriemi Heureka

 

Dostupnost zbo?í

Asi před půl rokem se v modulu objevila funkce parsování čísel z textové dostupnosti, tedy textu který se zadává v kartě produktu, na podkartě mno?ství: zobrazovaný text, pokud je skladem .  Podobná funkce je nezbytná u? z toho důvodu ?e Heureka i Zbo?í jsou na údaje o dostupnosti velmi citlivé. Nicméně nastavení bylo poněkud nepru?né a ne ka?dý chce psát do textu číslovky. Proto se modul dočkal vylep?ení:

  • přehledněj?í a přitom podrobněj?í nastavení
  • lep?í parsování číslovek, např. "3-5 dnů" ji? není 35 ale 3, 24 hodin není 24 dnů ale jen  jeden
  • porozumění některým textům neobsahujícím číslovky,  konkrétně je vyhodnoceno slovo " ... ihned ......" nebo "skladem"

Heureka kategorie

Stará bolest řady u?ivatelů Prestashopu, přitom přesné spárování mů?e výrazně zvednou prodej. Na očividné ře?ení mě přivedl jeden klient. Pokud do nějakého jinak nevyu?itého pole v administraci  zbo?í zadáte číslo kategorie, objeví se pro produkt ve feedu CATEGORYTEXT přesně podle fullname z Heureky.

 

Pochopitelně je na modulu je?tě hodně věcí které by si zaslou?ili vylep?it. Řadu z nich mám v plánu, nevím ale jak mi to časové mo?nosti dovolí. Nicméně pokud si stáhnete novou verzi modulu a zjistíte ?e nefunguje něco co očividně fungovat má, napi?te na info[zavináč]prestahost.cz, pokud to jen trochu půjde, opravím.

 

 

 

Mazání objednávek v Prestashop 1.5

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

V Prestashop 1.4 existoval jednoduchý trik jak v administraci zpřístupnit popelnici na mazání objednávek.  V nověj?í verzi 1.5 lze tého? výsledku dosáhnout hůře. Původně jsem se domníval ?e je to velmi jednoduché. Na prestashop foru je tomuto problému věnována řada postů které končí tvrzením "přidejte  jeden řádek s delete". 

Nicméně věci jsou slo?itěj?í, alespoň  v Prestashop 1.5.6 . Nevím zda je to záměr, proto?e mazat objednávky mů?e být v rozporu s pravidly EU, v ka?dém případě takto přidaná akce "deleteorder" sma?e jen vlastní objednávku bez přidru?ených záznamů. Důsledek? V následných objednávkách se mohou náhodně objevovat extra produkty pocházející právě ze smazaných objednávek. Jinými slovy, pokud nechcete mít v objednávkách zbo?í které si zákazník neobjednal, postupujte takto:

  • vyhledejte soubor /override/controllers/admin/AdminOrdersController.php
  • otevřte je v textovém editoru typu PSpad
  • obsah souboru změňte na toto:

<?php

class AdminOrdersController extends AdminOrdersControllerCore
{
    public function __construct()
    {      $this->addRowAction('delete');
         parent::__construct();
    }

}

 

  • Stejným způsobem je potřeba vytvořit nebo upravit /override/classes/orders/Order.php
  • následně sma?te soubor /cache/class_index.php

<?php
  class Order extends OrderCore {
    
      public function delete() {
         $result=parent::delete();
         if($result) {
             $this-> deleteAssociations();
       
         }
         return $result;
      }
    
  }

 

Summary: deleting orders in Prestashop 1.5.6

Deleting orders is not supported in Prestashop and merely adding the delete action may result in unwanted extra products in successive orders. To delete orders safely, you need to override both  /override/controllers/admin/AdminOrdersController.php and /override/classes/orders/Order.php

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