Pokud jsem to pochopil správně, tak máte problém s tím, že když člověk nakoupí za více jak 3000 (měl by dostat dopravu zdarma) a zároveň použije voucher, který mu tu cenu sníží pod 3000 a zůstane mu doprava zdarma což vy nechcete.
Jestli je to tedy správně, tak si myslím, že je to tím jakým způsobem se rozhoduje o dopravě zdarma. V OC to funguje tak, že při zadání dopravy se volá funkce getQuote(...) z catalog/model/shipping/<vase implemantace dopravy>.php, ve které se určí cena dopravy. Z pravidla jsem viděl, že se cena dopravy určuje podle $this->cart->geTotal() / $this->cart->getSubTotal() což vrátí mezisoučet s/bez DPH kde nejsou započítány žádné vouchery ani kupóny. To by potom znamenalo, že když zákazník má cenu zboží vyšší než 3000 tak se vám cena dopravy nastaví na 0 a potom v pozdějším počítání reálné celkové ceny se vám samozřejmě nezapočítá žádná doprava i když cena klesne pod 3000. Nevím přesně jak to máte vy, ale určitě bych hledal tady.
Jestli je to tedy správně, tak si myslím, že je to tím jakým způsobem se rozhoduje o dopravě zdarma. V OC to funguje tak, že při zadání dopravy se volá funkce getQuote(...) z catalog/model/shipping/<vase implemantace dopravy>.php, ve které se určí cena dopravy. Z pravidla jsem viděl, že se cena dopravy určuje podle $this->cart->geTotal() / $this->cart->getSubTotal() což vrátí mezisoučet s/bez DPH kde nejsou započítány žádné vouchery ani kupóny. To by potom znamenalo, že když zákazník má cenu zboží vyšší než 3000 tak se vám cena dopravy nastaví na 0 a potom v pozdějším počítání reálné celkové ceny se vám samozřejmě nezapočítá žádná doprava i když cena klesne pod 3000. Nevím přesně jak to máte vy, ale určitě bych hledal tady.
Přesně tak to je, jak by jste to navrhoval řešit?
Pro dopravu používám aktuálně toto rozšíření, jelikož umožňuje nastavit jinou cenu pro Slovensko. Funguje i na nové verzi, samozřejmě byl problém i v základním modulu, takže v rozšíření chybu nehledat.
Napadá mě doprogramovat tu cenu zdarma přímo do tohoto rozšíření s ohledem na vouchery.
Pro dopravu používám aktuálně toto rozšíření, jelikož umožňuje nastavit jinou cenu pro Slovensko. Funguje i na nové verzi, samozřejmě byl problém i v základním modulu, takže v rozšíření chybu nehledat.
Napadá mě doprogramovat tu cenu zdarma přímo do tohoto rozšíření s ohledem na vouchery.
Nezkoušel jsem to, ale nejspíš bych do souboru catalog/model/total/shipping.php přidal před
něco takového
mělo by to fungovat tak, že když se bude dopočítávat cena, tak se podíváme jestli jsou zadané nějáké vouchery nebo kupóny a pokud ano tak zkontrolujeme jestli je celková cena menší než 3000. Pokud ano tak se přenastaví cena dopravného na zadarmo. Jinak tady cenu nastavuji natvrdo do kódu lepší řešení by bylo, načítat hodnotu z DB a v administraci umožnit nějakou editaci, také si nejsem jistý jestli hodnota uložená v $total je s nebo bez DPH, pokud je bez tak by se buď musela přepočítat a nebo limit pro dopravu zdarma napsat bez DPH.
Code: Select all
$total_data[] = array(
'code' => 'shipping',
'title' => $this->session->data['shipping_method']['title'],
'text' => $this->currency->format($this->session->data['shipping_method']['cost']),
'value' => $this->session->data['shipping_method']['cost'],
'sort_order' => $this->config->get('shipping_sort_order')
);
Code: Select all
if((isset($total_data['voucher']) || isset($total_data['coupon'])) && $total <= 3000) {
$this->session->data['shipping_method']['cost'] = 0;
}
Who is online
Users browsing this forum: No registered users and 5 guests