Prestashop-cli

O tomto návodu

Právě jsem pushnul poslední změny v prestashop-cli. Celý projekt vznikl jen díky mé lenosti :) Provozuji totiž obchod "odeli.cz" a často potřebuji dělat hromadné úpravy.
Ať už kvůli tomu, že jsem na začátku něco udělal špatně a to se promítlo do více produktů (jako DPH, viz níže) nebo prostě jen potřebuji hromadné změny či exporty. Snad bude tento návod a software užitečný více uživatelům. Samozřejmě je celý software poskytován pod GPLv3 licencí.

Použití

Teď si asi říkáte, k čemu že potřebujete command line u webového obchodu. Odpověď asi není úplně přímá, ale existuje :). Pro spoustu adminů je totiž shell velice výkonný nástroj, kterým jsou schopni spoustu věcí automatizovat. A to je to, co chceme. Po instalaci a načtení env.sh podle předešlého návodu se Vám nastaví prostředí včetně autocompletingu což se hodí. Můžete zkoušet příkazy pslist, psget, psenable, psdisable, psupdate, psdelete a v každém místě používat tabulátor jak jste zvyklí. Objeví se Vám možnosti každého z příkazů.

Instalace

Instalace je jednoduchá. Jediné, co budete potřebovat, je php, php-curl a pear. Celý projekt komunikuje s Prestashopem pouze pomocí web API, takže bude fungovat s každým Prestashopem, ať již ho máte na hostingu nebo na svém serveru. Pro správnou funkci budeme potřebovat funkční shell prostředí. To máme v linuxu buďto automaticky nebo bude potřeba do Windows nainstalovat Cygwin. Ale tímto se návod nezabývá. Návod na instalaci je přímo na webu projektu. Proto ho zde nebudu opakovat. Je to opravdu jednoduché. Pokud na něčem ztroskotáte, klidně mi napište a pokusím se Vám pomoci. Jde jen o to, abyste si projekt stáhli z gitu, vytvořili API klíč a vytvořili konfigurační soubor.

Přiklad s DPH

Vytvořili jste obchod a potřebujete u všech produktů vypnout daň. Tedy, jedna z vlastností produktu v Prestashopu je, zda se na něj mají vztahovat daňová pravidla a pokud ano, tak jaká. Tato informace je v proměnné id_tax_rules_group. Operace s produkty se děje přes kontejner product(s).

Nejprve si vylistujme všechny produkty ve Vašem obchodě. Nejprve pouze id, v druhém případě i s názvy.

pslist products
pslist products name

Následně zkusme filtr. Nyní vylistujeme pouze produkty s cenou vyšší než 10.

pslist products 'price>10'

Teď už se vrhneme na daňová pravidla. Vylistujeme si nejprve skupiny daní a následně vylistujme si všechny s daným ID.

pslist tax_rule_groups name

1 CZ Standard Rate \(21%\)
2 CZ Reduced Rate \(15%\)
3 DE Standard Rate \(19%\)
4 DE Reduced Rate \(7%\)
5 DE Foodstuff Rate \(7%\)
6 DE Books Rate \(7%\)
pslist products id_tax_rules_group=1 name

Jak je vidět, parametry pslist se dělí na filtry a properities. Pokud název obsahuje =,<,>,~,!=,!~, je interpretován jako filtr. V opačném případě se jedná o seznam atributů, které chceme ve výstupu vidět. Opět funguje Tabulátor, kde můžeter zjistit seznam dostupných atributů pro daný objekt. Nezapomeňte,  že apostrofy v tomto návodu jsou zásadní!

A teď přejdeme k tomu, kvůli čemu projekt vzniknul, a to je hromadná editace záznamů :) Do teď se jednalo o operace, které našemu Prestashopu neublížily, ale teď už budeme data měnit. Proto nezapomeňte na zálohy! Nepouštějte toto na Vašem shopu, pokud nevíte přesně, co děláte!

productids_with_czech_dph=$(pslist products id_tax_rules_group=1)
for p in $productids_with_czech_dph; do \
   psupdate product $p id_tax_rules_group=0 'price*=1.21' ;
done

Co že jsme to provedli? U všech záznamů, které mají typ daně nastaveno na České DPH, vypneme DPH a vynásobíme cenu*1.21, Bližší informace o syntaxi můžete nalézt spuštěním psupdate bez parametrů.

Příště si ukážeme, jak hromadně vyhledávat v popiscích výrobků a jak je hromadně měnit. Např. hromadný překlad všech popislů produktů do cizího jazyka.

 

Poslední komentáře

Bez komentářů.

Kdo je nový

  • radimk
  • limo