Версия для печати
Оригинальная версия ( http://prestadev.ru/forum/tema-15.html )

PrestaShop CMS :: Русская поддержка интернет-магазина PrestaShop > Модули, плагины > [ХАК] Общие скидки


Разместил: Алекс Время: 18-06-2009 00:33
Хак общие скидки - скидка считается от общей суммы, можно заложить любые параметры скидок.



Сообщение отредактировано Алекс 26-01-2010 16:59 ...

Разместил: dervish Время: 12-01-2010 15:40
Имеется ввиду общие скидки на все товары или как?

Разместил: Алекс Время: 12-01-2010 17:09
Да, вродебы. Если понадобится стукните поищу.

Разместил: Алекс Время: 26-01-2010 15:58
Хак "Общие скидки"

Открываем clases/cart.php и в самом конце пишем:
Код:
function oTotal()
{
$products = $this->getProducts();
foreach ($products AS $product)
        {
$price = floatval(Product::getPriceStatic(intval($product['id_product']), $withTaxes, intval($product['id_product_attribute']), 6, NULL, false, true, $product['quantity']));
$total_price = $price * intval($product['quantity']);
$order_total += $total_price;
}
return intval($order_total);
}


function oDiscount()
{
# параметры
$th1 = 1000;
$th2 = 5000;
$d1 = 10;
$d2 = 20;


    if ($this->oTotal() >= $th1 and $this->oTotal() < $th2) {$discounts = $d1;}
    if ($this->oTotal() >= $th2) {$discounts = $d2;}
            
return $discounts;
}


в функции function getOrderTotal меняем
Код:
return floatval($order_total);

на
Код:
return $order_total-$this->oDiscount();

:drinks:

Разместил: dervish Время: 26-01-2010 18:08
Большое спасибо. Буду тестить.

Разместил: антон Время: 27-01-2010 03:13
О.К. Спасибо, все работает.

Разместил: chestor Время: 17-02-2010 20:36
А подскажите где настройка параметров скидки?

$th1 = 1000;
$th2 = 5000;
$d1 = 10;
$d2 = 20;

$th от суммы?
$d1 - процент?

что к чему?


Сообщение отредактировано chestor 17-02-2010 16:40 ...

Разместил: chestor Время: 17-02-2010 21:00
Ещё у меня появляется ошибка после изменения этой строчки return $order_total-$this->oDiscount();

в 635 строчке, если поменять обратно, то работает, но естественно без скидок.

Разместил: ssmobile Время: 12-04-2010 16:22
У вас есть этот модуль рабочий ?


Сообщение отредактировано ssmobile 12-04-2010 17:22 ...

Разместил: Valaykhal Время: 19-08-2010 04:35
Цитата:( Алекс @ 26-01-2010 11:58 Смотреть сообщение )
Хак "Общие скидки"

Открываем clases/cart.php и в самом конце пишем: 
Код:
function oTotal()
{
$products = $this->getProducts();
foreach ($products AS $product)
        {
$price = floatval(Product::getPriceStatic(intval($product['id_product']), $withTaxes, intval($product['id_product_attribute']), 6, NULL, false, true, $product['quantity']));
$total_price = $price * intval($product['quantity']);
$order_total += $total_price;
}
return intval($order_total);
}


function oDiscount()
{
# параметры
$th1 = 1000;
$th2 = 5000;
$d1 = 10;
$d2 = 20;


    if ($this->oTotal() >= $th1 and $this->oTotal() < $th2) {$discounts = $d1;}
    if ($this->oTotal() >= $th2) {$discounts = $d2;}
            
return $discounts;
}


в функции function getOrderTotal меняем 
Код:
return floatval($order_total);

на
Код:
return $order_total-$this->oDiscount();

:drinks:

В новой версии 1.3.1.1 не работает такой способ, а скиду от суммы заказа оч надо. Подскажите как решить?

Разместил: Striatum Время: 24-08-2010 18:10
Захотелось воспользоваться этим хаком, версия престы 1.5, но появилась проблема как у chestor:

в функции function getOrderTotal меняем
Код:
return floatval($order_total);

на
Код:
return $order_total-$this->oDiscount();

и появляется ошибка и корзина не работает.
Подскажите, из-за чего так?
Антон, ты писал, что у тебя работает, подскажи как надо

Разместил: Striatum Время: 26-08-2010 01:33
То есть моя версия престы 1.2.5 конечно.
Пожалуйста, подскажите, из-за чего может быть ошибка

Разместил: kvazi Время: 16-09-2010 19:57
аналогично, не пашет


Разместил: picaso Время: 04-10-2010 02:41
Ни кто так и не разобрался? Тоже очень надо.

Разместил: DStalker Время: 14-03-2011 23:13
Тут всё просто.

строку:

$total_price = $price * intval($product['quantity']);


заменить на:

$total_price = $price * intval($product['cart_quantity']);

Разместил: DStalker Время: 14-03-2011 23:13
и показывает теперь

...
Итого купонов: -xxx руб.


Сообщение было отредактировано DStalker в 14-03-2011 23:16 ...

Разместил: senior426 Время: 18-11-2011 17:43
Кто знает как использовать этот хак в престе 1.4 ?


Сообщение отредактировано senior426 18-11-2011 12:44 ...

Разместил: gabder Время: 22-02-2012 20:18
как решить в версии 1.4 там нет функции return floatval($order_total);

только есть return intval($order_total);

www.prestadev.ru