Хук order_calculate_discount добавление и удаление скидок

http://www.webasyst.ru/developers/docs/plugins/hooks/shop/order_calculate_discount/
хочу добавить всем покупателям скидку в 10р
привязал хук
'order_calculate_discount' => 'calculate_discount',

public function calculate_discount($params)
{
//print_r($params); // входящие параметры верны
$return['total']="10";
return $return; // размер скидки остался прежним
}

объясните подробней как дать скидку, а лучше как отменить уже данную на определенную группу товаров.

3 ответа

  • 0
    Дмитрий тимофеев 10 октября 2013 04:02 #
    $return['total']="10";
    $return['discount']=10.10;
    $return['discount']=10;
    $return = 10.10;
    ничего не меняет. (сверху последний вариант из тестов)
  • 0
    Дмитрий тимофеев 10 октября 2013 04:13 #
    правельный ответ по поводу давания скидки
    $return = 10.10;
    /webasyst/shop/?action=settings#/discounts/coupons/ не забудьте "Если к заказу применимо более одного правила, как должна рассчитываться скидка?" сумма.
    а по поводу отмены отпределенной из скидок всеже прошу помощи?
  • 0
    Леонид Вакуленко Webasyst 10 октября 2013 04:49 #
    Используя хуки, нельзя отменить скидку, данную другим плагином (ну или встроенную).

    Можно вернуть отрицательную скидку. Она будет работать как наценка, если в настройках указано использовать сумму применимых скидок, а не максимум. В принципе сработает, но лучше так не делать. Интуиция подсказывает, что очень легко наступить на какие-нибудь неочевидные грабли...
    • +1
      Genasyst Genasyst 11 августа 2016 12:57 #

      Отрицательная скидка не работает! shopDiscounts::calculate там условие в конце return min(max(0, $discount), ifset($order['total'], 0));

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите