Получить информацию о примененных скидках к заказу

Хочу написать плагин, который будет фиксировать цену товара, и защищать от влияния промокодов, скидок от других плагинов и т.д.

Как я понял, единственный возможный вариант, это возвращать в хук order_calculate_discount отрицательное значение. Если в магазине стоит режим суммирования скидок, то это сработает. Конечно, если стоит максимально возможная скидка - то все это не сработает, и это плохо. Но речь не об этом.

В order_calculate_discount мы получаем массив параметров заказа, где есть товары и нечто вроде этого:

'params' => 
    array (
      'coupon_discount' => 250.0,
    ),

Есть ли какой-то способ получить информацию о промокоде: скидка фиксированная или процентная? И что делать с плагинами, например гибкие скидки или акции + спецпредложения?

1 ответ

  • 1
    Minya Jam 26 ноября 2016 18:34 #

    Приветствую. Нашли решение?

    • +1
      Quasar Quasar 26 ноября 2016 19:12 #

      Пока нет, к сожалению.

      • +1
        Minya Jam Minya Jam 27 ноября 2016 18:19 #

        Получить информацию о примененных скидках можно, но вот применить свои правила в контексте вычисления order_calculate_discount по всей видимости не получиться.

        • +1
          Quasar Quasar 27 ноября 2016 19:10 #

          Мне получилось отменить скидку, только если в настройках поселения стоит режим суммирования скидок, тогда передаем отрицательное число, и скидка начинает уменьшаться. А если у вас получилось вычленить инфу о примененных скидках, то почему собственную логику нельзя реализовать?

          • +1
            Minya Jam Minya Jam 27 ноября 2016 22:10 #

            Это не отмена скидки, это вычисление скидки на уровне плагина. Да, в режиме максимум нельзя никак повлиять на вычисление скидки, тут только приоритет - у кого больше.

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

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