Přihlásit se

Košík - motivator k nákupu

15. lis 2018 22:28 - 15. lis 2018 22:31 #137722
Odpověď od Ernst
Joomla Expert
tak jsem se na vyžádání ještě podíval na ten kód do modulu košík:
Code:
<div class="motivator"> <?php if ($data->billTotal == 0) { ?> <span style="animation: blinker 2s linear infinite;">Při objednávce nad 5000,- je doprava zdarma!</span> <?php } elseif ($data->billTotal < 5000) { ?> <span style="animation: blinker 2s linear infinite;">Chcete dopravu zdarma? Přidejte ještě zboží za: <?php echo (5000 - ($data->billTotal)) ?>,-</span> <?php } else { ?> <span style="font-weight: 700; color: #109d16;">Vaše objednávka bude dopravena zdarma!</span> <?php } ?> </div>

kód je správně až na jedno ale:
$data->billTotal vrátí řetězec “Celkem 373,00 Kč”
To jistě chápeš, že nemůžeš porovnávat s numerickou hodnotou.
Takže pravdivě ti to vyhodnotí jen první podmínku, pokud je košík prázdný a řetězec je tudíž "" (prázdný)
Je tedy nutné ten řetězec převést na číslo, aby se to dalo porovnat. Je více možností jak to převést na číslo, ale problém by byl, pokud by tam byly oddělovače tisíců, to by se to dle formátu muselo ještě upravit. Jestli je oddělovač desetinných míst tečka nebo čárka je jedno.
Vidím dvě možnosti. Pokud chci opravdu vycházet z proměnné $data->billTotal:
Code:
$celkem=floatval(preg_replace(array("/[^0-9,.]/","/[.,]/"), array("","."), $data->billTotal))
nebo mohu použít proměnnou $data->billTotal_net. Tady ale neznám VM tak důkladně, abych mohl říct, že ty dvě proměnný vyjadřují vždy stejnou cenu.:
Code:
$celkem=floatval(str_replace(",",".",$data->billTotal_net))

takže celý kód bude vypadat například:
Code:
<div class="motivator"> <?php $celkem = floatval(preg_replace(array("/[^0-9,.]/","/[.,]/"), array("","."), $data->billTotal)) ?> <?php if ($celkem = 0) { ?> <span style="animation: blinker 2s linear infinite;">Při objednávce nad 5000,- je doprava zdarma!</span> <?php } elseif ($celkem < 5000) { ?> <span style="animation: blinker 2s linear infinite;">Chcete dopravu zdarma? Přidejte ještě zboží za: <?php echo (5000 - ($celkem)) ?>,-</span> <?php } else { ?> <span style="font-weight: 700; color: #109d16;">Vaše objednávka bude dopravena zdarma!</span> <?php } ?> </div>

16. lis 2018 00:16 #137726
Odpověď od Rudolf
Joomla Expert
Tož chlapi, celé to tak krásně píšete až je radost pohledět :)

ale zapomněli jste na to že změna ceny musí běžet ajaxem, jinak si to programujete jen pro programování a je to v reálném eshopu nepoužitelné.

Jak jsem psal, podíval bych se po modulu a komponentě Free Shipping info, která to má již vyřešené.

MiniJoomla! - www.minijoomla.cz - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla

16. lis 2018 00:29 #137727
Odpověď od Ernst
Joomla Expert
a proč by to mělo běžet ajaxem, když zobrazení ceny v modulu košíku ajaxem neběží a stránka se po přidání zboží do košíku vždy znova načte?
My přeci cenu neměníme, jen k ní zobrazujeme info :ohmy:

16. lis 2018 00:35 #137728
Odpověď od Rudolf
Joomla Expert
Eshop s reload stránky po přidání produktu do košíku?

Aha, tak pokud máte tuto verzi chování eshopu.

MiniJoomla! - www.minijoomla.cz - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla

16. lis 2018 00:40 #137729
Odpověď od Ernst
Joomla Expert
Ano, je to pro VM

16. lis 2018 01:16 #137730
Odpověď od Rudolf
Joomla Expert
Rozumím, tak to bude asi nějaká starší verze, já už 3 roky používám tyto věci ajaxové

- od té doby co je pro VM k dispozici ajaxový košík a ajaxová komponenta Free shipping info
- od té doby co to má alza a zákazníci to chtějí taky

Jinak mi vyhrožují jinými systémy :D

MiniJoomla! - www.minijoomla.cz - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla

16. lis 2018 02:37 #137731
Odpověď od Cony
Moderátor

Rudolf Baláš napsal: - od té doby co to má alza a zákazníci to chtějí taky

Jinak mi vyhrožují jinými systémy :D


:cheer: Jéjej to znám - "Dyť to má alza (mall, facebook, google, amazon), to jen okopírujete" :P

16. lis 2018 04:27 - 16. lis 2018 04:29 #137732
Odpověď od Rudolf
Joomla Expert
Kdyby byl Max co k čemu a nevymýšlel již 3 roky přechod virtuemartu na wordpress, kde mu pšenka stejně nepokvete, tak to má v základu.

Ale nebuďte smutný, až rozjedeme portal minijoomla.org tak tam najdete všechny doplňky z portalu EasyJoomla.org v nové verzi a plus nové verze od nás včetně toho Free Shipping info.

Pak si to můžete koupit za mrzký peníz pokud to budete chtít :)

MiniJoomla! - www.minijoomla.cz - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla

16. lis 2018 09:37 #137734
Odpověď od marvays
Uživatel

Ernst napsal: tak jsem se na vyžádání ještě podíval na ten kód do modulu košík:

takže celý kód bude vypadat například:

Code:
<div class="motivator"> <?php $celkem = floatval(preg_replace(array("/[^0-9,.]/","/[.,]/"), array("","."), $data->billTotal)) ?> <?php if ($celkem = 0) { ?> <span style="animation: blinker 2s linear infinite;">Při objednávce nad 5000,- je doprava zdarma!</span> <?php } elseif ($celkem < 5000) { ?> <span style="animation: blinker 2s linear infinite;">Chcete dopravu zdarma? Přidejte ještě zboží za: <?php echo (5000 - ($celkem)) ?>,-</span> <?php } else { ?> <span style="font-weight: 700; color: #109d16;">Vaše objednávka bude dopravena zdarma!</span> <?php } ?> </div>


Vyzkoušeno. posunuli jsme se hodně dopředu. Ale . . .

hned na startu to přeskočí první podmínku. i když jsem změnil podmínku na ==0 tak ji přeskočí a zobrazí podmínku druhou. Tuhle dopdmínku to ale počítá zvláštně. Pokud mám prázdný košík, tak bych měl mít výzvu na přidání do košíku za 5000,-. Místo toho mi to počítá na 4905 a někde se nám zatoulalo 95 kaček. Možná by pomohlo změnit druhou podmínku na větší než 0 a menší než 5000,-

třetí podmínka vypadá dobře.

ajax by byl luxus, takhle musím pořešit, aby se mi nenačítal košík do cache.

Třetí podmínka funguje správně.

16. lis 2018 09:41 #137735
Odpověď od marvays
Uživatel

Rudolf Baláš napsal: a ajaxová komponenta Free shipping info


Máte link na tu komponentu? Na forek VMnet mi toho vyskakuje mraky a vždy se to tváří jako balík něčeho. nepoznám, kterou máte na mysli.

16. lis 2018 09:58 #137736
Odpověď od Ernst
Joomla Expert
Ahoj Rudo, máš pravdu, pokud je v konfiguraci vm zapanutý ajaxový košík, tak se to bude chovat špatně (zaktualizuje se cena a ne ten text).
Já si tu možnost ajaxu v košíku neuvědomil.

musí se do default.php v přepisu košíku v šablone doplnit js, který ten text taky aktualizuje.

16. lis 2018 11:32 #137740
Odpověď od Ernst
Joomla Expert
Marvays napsal

hned na startu to přeskočí první podmínku. i když jsem změnil podmínku na ==0 tak ji přeskočí a zobrazí podmínku druhou. Tuhle dopdmínku to ale počítá zvláštně. Pokud mám prázdný košík, tak bych měl mít výzvu na přidání do košíku za 5000,-. Místo toho mi to počítá na 4905 a někde se nám zatoulalo 95 kaček. Možná by pomohlo změnit druhou podmínku na větší než 0 a menší než 5000,-

sorry jako, ta podmínka musí být <?php if ($celkem <= 0) { ?> místo <?php if ($celkem = 0) { ?> , to jsem přehlédl. Musí to tak být, protože $celkem je typu float.

Ten ajax není zas tak složitý uvede variantu pro něj, která bude fungovat i při vypnutém ajax, takže pro obojí jedno řešení.

musí se změnit /modules/mod_virtuemart_cart/assets/js/update_cart.js.
ten ale není chráněn při upgrade VM, takže by jsi ho musel znovu měnit po každém upgrade.
Nejsem v JS tak zběhlý, abych věděl jak js umístit do souboru default.php v přepisu modulu košíku v šabloně.

Pokud mi zde někdo poradí, budu velmi rád.

16. lis 2018 13:29 #137746
Odpověď od marvays
Uživatel
Už to počítá správně, je to blbne při prázdném košíku.
[img

16. lis 2018 15:17 #137752
Odpověď od Ernst
Joomla Expert
Já už to předělal i pro ten ajax a některé chyby jsem při testu opravil.
Ještě to otestuji a pak zde uveřejním, asi večer

16. lis 2018 15:43 #137754
Odpověď od marvays
Uživatel

Ernst napsal: Já už to předělal i pro ten ajax a některé chyby jsem při testu opravil.
Ještě to otestuji a pak zde uveřejním, asi večer


To abych ti večer klepnul husu. Nebo raději králíka? :)

Powered by Fórum