Как вывести процент скидки на странице товара в minishop2?

Здравствуйте! Подскажите пожалуйста как вывести в minishop2 по мимо старой цены процентное соотношение скидки т.е. на сколько процентов товар сейчас дешевле чем был ранее? За раннее Спасибо!
Aleksey
15 января 2018, 13:56
modx.pro
7
4 421
0

Комментарии: 15

Кирилл Спеваков
05 апреля 2018, 07:08
0
Тоже интересует, как в карточке товара отобразить разницу в процентах от старой цены и новой
    Aleksey
    05 апреля 2018, 07:43
    +1
    Я вывел вот так:
    <span>-{100 - ($price/$old_price*100)}%</span>
      Евгений Дубровин
      26 января 2019, 20:12
      0
      Алексей, здравствуйте.
      а как в чанке это вывести не подскажете?
      [[*old_price:subtract=`[[*price]]:div=`[[*old_price]]`:mpy=`100`]] казалось бы должно работать, но не работает из-за деления на переменную почему-то. т.е. вычитание работает, если делителем указать цпифру тоже, а разделить на старую цену не даёт.
      Ваш код у меня тоже в этом чанке не работает, хотя Феном вообще работает там.
      как быть?)
    Михаил
    05 апреля 2018, 08:48
    1
    +1
    Ребята, математика за 3-й класс:
    {if $old_price}
        {set $percent = (($old_price - $price)/($price/100))}
    {/if}
      Aleksey
      06 апреля 2018, 13:28
      0
      Так все просто, но люди часто интересуются как вывести процент скидки)
        Евгений Дубровин
        27 января 2019, 19:05
        0
        Михаил, здравствуйте. а как вывести этот $percent в чанке?
        нам надо в чанке productGallery (скидка в процентах указывается поверху фотогалереи товара),
        но пока не удаётся ни одним из описанных здесь способов :(
        Кирилл Спеваков
        05 апреля 2018, 09:23
        0
        Спасибо! и так и так работает, я вывел так {($old_price — $price)/($price/100)}
          Alexandr
          06 июня 2018, 13:08
          0
          У меня почему-то не работает. Добавляю в карточку товара, а он мне выводит обратно код
          {($old_price — $price)/($price/100)}
          , почему-то fenom не срабатывает. Помогите пожалуйста!!!
            Aleksey
            06 июня 2018, 15:53
            0
            А в системных настройках он включён?
              Aleksey
              06 июня 2018, 15:54
              0
              Надеюсь pdoTools установлен)
                Alexandr
                06 июня 2018, 16:56
                0
                Конечно установлен pdoTools, и в системных настройках включён. Решил проблему другим способом с помощью сниппета
                <?php
                $price = empty($price) ? 0 : str_replace(' ', '', $price);
                $old_price = empty($old_price) ? 0 : str_replace(' ', '', $old_price);
                
                if($old_price > 0){
                  return ''.((($old_price - $price) / $old_price) * 100);
                } 
                return '';
                  Евгений Дубровин
                  26 января 2019, 19:45
                  0
                  Александр, здравствуйте.
                  не подскажете, а как в чанке вывести этот процент скидки?
                  у нас чанк productGallery (картинки товара) и в нём надо вывести (значения [[*price]] и [[*old_price]] в нём работают, но разделить один на другой не выходит почему-то) количество процентов скидки.
                  делаю сниппет msDiscount с Вашим кодом, но в чанке он никак не хочет выводиться.
                  [[msDiscount]] и [[!msDiscount]] пробовал — тишина, цифра не выводится.
                  что-то не правильно делаю?
                    Евгений Дубровин
                    30 января 2019, 11:33
                    0
                    разобрался как вывести, но не работает именно из-за деления на $old_price
                    если делителем указать число, то работает, а вот на переменную делить не хочет, даже при том, что ставим условие if($old_price > 0)
                    в чём может быть дело?
                Vladislav Shuklin
                08 апреля 2019, 22:22
                0
                — {(100 * ($old_price — $price) / $price) | limit: 2} %
                  Глеб
                  11 апреля 2019, 13:38
                  3
                  0
                  вызов в чанке
                  {'@FILE snippets/discountPercent.php' | snippet : [
                    'price' => $price,
                    'old_price' => $old_price
                  ]}
                  discountPercent.php
                  <?
                  $price = empty($price) ? 0 : str_replace(' ', '', $price);
                  $old_price = empty($old_price) ? 0 : str_replace(' ', '', $old_price);
                  
                  if($old_price > 0){
                    $percent = ceil(100 - ($price * 100 / $old_price));
                    return '-'.$percent.'%';
                  } 
                  return '';
                    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                    15