miniShop2 - разделение цены в tpl.msOrder

Добрый день!

В корзине выводится общая стоимость заказа в которой включена и доставка. Как разделить эти суммы?

К примеру:

Сумма заказа: 1.000 руб.
Доставка: 300 руб.
Итого, с доставкой: 1.300 руб.

Спасибо!
Роман
01 октября 2018, 16:03
modx.pro
1
1 742
0

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

Ilya Gureshidze
01 октября 2018, 16:54
0
Роман, загляните в чанк tpl.msEmail и вы увидите, что в этом шаблоне есть 2 переменные: $total.cart_cost и $total.delivery_cost. Там есть условие, при котором, в случае $total.delivery_cost != 0 вывести их сумму. Измените вывод просто на две строчки подряд и вуаля) joxi.ru/Y2LMQo9C9OyNpA
    Роман
    01 октября 2018, 16:56
    0
    Не отрабатывает условие, у меня пусто!

    Оно не будет отрабатывать — это почтовое событие, или я что то не понял!

    Мне нужно это вывести в чанке tpl.msOrder
    Ilya Gureshidze
    01 октября 2018, 17:20
    -1
    да, прошу прощения, не туда посмотрел. Но тут аналогично, только в чанке tpl.msOrder. Вместо $order.cost ставить
    $order.cart_cost и $order.delivery_cost
      Роман
      01 октября 2018, 21:08
      0
      Вы пробовали это сами, у вас работает?
        Pavel Zarubin
        01 октября 2018, 21:11
        0
        Это не будет работать. Стоимость доставки минишоп определяет после оформления. Если вам надо определить стоимость доставки, то у объекта msDelivery есть метод getCost куда передается экземпляр корзины. Напишите свой сниппет и дергайте его по аяксу на событие изменения доставки
          Pavel Zarubin
          01 октября 2018, 21:12
          0
          Как пример — мой компонент который как раз именно таким образом и работает:
          modstore.pro/packages/delivery/ms2deliverycost
            Роман
            01 октября 2018, 21:19
            0
            Поступил немного проще. Повесил на JS событие которое скрывает лишнее
            Если выбрать доставку, то показываться: Итого, с доставкой
            Если выбрать самовывоз, то показываться: Итого

            Пока для этого проекта хватит, будет расширяться, будем думать!
              Evgeny Tarasov
              24 декабря 2018, 17:54
              0
              Уважаемый разработчик.
              Вы могли бы подсказать, как работает Ваше дополнение для описанной задачи?
              В описании к дополнению сказано — «Также компонент умеет рассчитывать как цену только доставки, так и цену всего заказа учитывая стоимость заказа», но о том как это сделать, ни слова.
                Роман
                24 декабря 2018, 20:41
                0
                Вы к кому обращаетесь?

                Решения из коробки нет, я лично использовал костыль, опять же нашел его тут же.
                  Evgeny Tarasov
                  24 декабря 2018, 21:26
                  0
                  Я обращался к Павлу Зарубину, потому как он указал на свое дополнение.
                  А Вы могли бы поделиться своим «костылем», каким образом это реализовано?
                    Роман
                    24 декабря 2018, 21:30
                    0
                    Поищите тут на сайте, в какой то из тем про цену нашел — уже не вспомню. Сайт отдан заказчику, там тоже посмотреть нет возможности.
                  Pavel Zarubin
                  24 декабря 2018, 22:42
                  0
                  Уважаемый пользователь, внимательно читайте описание дополнения:

                  modx.pro/solutions/15120
            Юрий
            23 января 2019, 17:54
            0
            Можно написать кастомный класс, расширяющий msOrder, переопределив в нем функцию getCost так, что бы она возвращала массив из двух значений: $cost и $delivery_cost. В дефолтном классе функция возвращает array['cost' => $cost_value]. Но придется дописать пару строчек в default.js, что бы значение стоимости доставки менялось в соответствующем контейнере tpl. Плюс хорошо бы дописать строчку в сниппет msOrder, хотя с работающим JS это не обязательно. Вот только с регистрацией кастомного класса надо будет поколдовать. У меня не получилось зарегить его по инструкции через ms2_services. Пришлось менять на него дефолтный класс в ms2_order_handler_class.
              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
              13