Joomla 5.2.2 Security & Bugfix Release
Joomla 5.2.2 je nyní k dispozici. Jedná se o bezpečnostní vydání pro Joomla 5.x.
virtuemart "spropitné"
18. kvě 2021 23:05 - 18. kvě 2021 23:05 #144375
Odpověď od Ernst

Joomla Expert
tak jsem pokročil o něco dál
ono se to vše správně do order_billTax v tabulce virtuemart_orders vše správně zapíše (tedy spropitné jako další daň).
Problém je jinde. V objednávce (backend, frondend, email) se ta daň nezobrazí odtud, ale ze spárované tabulky virtuemart_order_calc_rules.
Když tam hodnotu daně (spropitného) změním přímo v databázi, ta objednávka se zobrazuje tak jak chci.
Ale nevíte někdo, jak nastavením VM nebo tím pluginem dosáhnu změny v této tabulce?
Nebo jak udělat přepis /administrator/components/com_virtuemart/models/orders.php, protože mám obavu, že až zde budu muset provést ten zápis a byl bych rád aby to bylo upgradeodolné?
ono se to vše správně do order_billTax v tabulce virtuemart_orders vše správně zapíše (tedy spropitné jako další daň).
Problém je jinde. V objednávce (backend, frondend, email) se ta daň nezobrazí odtud, ale ze spárované tabulky virtuemart_order_calc_rules.
Když tam hodnotu daně (spropitného) změním přímo v databázi, ta objednávka se zobrazuje tak jak chci.
Ale nevíte někdo, jak nastavením VM nebo tím pluginem dosáhnu změny v této tabulce?
Nebo jak udělat přepis /administrator/components/com_virtuemart/models/orders.php, protože mám obavu, že až zde budu muset provést ten zápis a byl bych rád aby to bylo upgradeodolné?
21. kvě 2021 10:32 #144385
Odpověď od Ernst

Joomla Expert
Tak, plugin je hotov a funkční.
Trošku už se to začíná podobat out of box řešení, ale ještě vzdáleně.
Spropitné je přidáno jako daň typu TaxBill (Daň na účet). Tuto daň je nutné vytvořit ručně.
Vzhledem k tomu, že ji musím zapsat do tabulky virtuemart_order_calc_rules, tak pro její zápis používám ještě trigger plgVmConfirmedOrder.
Pro zadání výš spropitného slouží pole zákazníka. Zadání může být v % nebo jako částka v Kč.
Nevýhodou je, že částka spropitného se nezobrazuje v košíku, je až následně přidána k platbě. Možná tuto funkci ještě dodělám.
Pokud o toto řešení má někdo zájem, napište mi na email.
Trošku už se to začíná podobat out of box řešení, ale ještě vzdáleně.
Spropitné je přidáno jako daň typu TaxBill (Daň na účet). Tuto daň je nutné vytvořit ručně.
Vzhledem k tomu, že ji musím zapsat do tabulky virtuemart_order_calc_rules, tak pro její zápis používám ještě trigger plgVmConfirmedOrder.
Pro zadání výš spropitného slouží pole zákazníka. Zadání může být v % nebo jako částka v Kč.
Nevýhodou je, že částka spropitného se nezobrazuje v košíku, je až následně přidána k platbě. Možná tuto funkci ještě dodělám.
Pokud o toto řešení má někdo zájem, napište mi na email.
Poděkovali: Cony
21. kvě 2021 22:10 - 21. kvě 2021 22:10 #144392
Odpověď od Ernst

Joomla Expert
Ještě mám jeden dotaz. Co se dá zjistit v orderdone.php, tedy poděkování za objednávku.?
V $this nenajdu třeba id objednávky, neznáte někdo způsob jak zjistit něco co není v $this?
V $this nenajdu třeba id objednávky, neznáte někdo způsob jak zjistit něco co není v $this?
21. kvě 2021 22:41 #144393
Odpověď od Cony

Moderátor
Jojo, jeden z neduhů VM. VM z nějakého důvodu počítá s tím, že to vše řeší Payment plugin. To že pak při každém způsobu platby vypadá poděkování jinak, nebo že konverze je potřeba řešit u všech pluginů není nějak úplně domyšlené 
Osobně opět řeším opět systémovým pluginem, který ukládá ID objednávky do application input a v order done jej čtu odtamtud a objednávku si znovu nahraju.
Plugin
orderdone

Osobně opět řeším opět systémovým pluginem, který ukládá ID objednávky do application input a v order done jej čtu odtamtud a objednávku si znovu nahraju.
Plugin
Code:
public function plgVmOnUpdateOrderPayment($data) {
JFactory::getApplication()->input->set('virtuemart_order_id', $data->virtuemart_order_id);
}
orderdone
Code:
$order_id = JFactory::getApplication()->input->get('virtuemart_order_id');
if (!empty($order_id)) {
$orderModel = VmModel::getModel('orders');
$order = $orderModel->getOrder($order_id);
// konverze, poděkování a pod...
}
Poděkovali: Ernst
21. kvě 2021 22:53 - 21. kvě 2021 22:54 #144394
Odpověď od Ernst

Joomla Expert
Super elegantní řešení, tohle bych asi nevymyslel.
Běží to ok.
Díky moc, jsem dlužník.
Bude se to hodit i na jindy, protože děkovná stránka je dost chudá a často si zaslouží trochu rozšířit.
Běží to ok.
Díky moc, jsem dlužník.
Bude se to hodit i na jindy, protože děkovná stránka je dost chudá a často si zaslouží trochu rozšířit.
22. kvě 2021 23:52 - 22. kvě 2021 23:52 #144398
Odpověď od Ernst

Joomla Expert
dovolím se ještě jednou zeptat, netušíte jak do sublayout addtocart.php dostanu objekt košíku?
Nebo zda to vůbec jde.
Nebo zda to vůbec jde.