Условие отправки реквизитов по СМС только суммы товаров

Хочу сделать кнопку без изменения статуса заказа, высылать покупателю реквизиты для оплаты. Но мне нужна итоговая сумма количества товара, без учета доставки. Например купили Карандаш за 450 руб, а высылаю смс, что вам нужно перевести на указанную карту 450 руб. Какое условие использовать? Беру это {wa_currency($order.total, $order.currency)}., мне шлет сумму вместе с доставкой, мне нужно без доставки

5 ответов

  • 1
    dez 25 декабря 2018 15:39 #

    {wa_currency($item.price * $item.quantity, $order.currency)} использую это мне приходит смс с 0 руб

  • 1
    dez 25 декабря 2018 15:52 #

    Ну нашел ответ вроди на свой вопрос нужно обернуться все в 

    {foreach $order.items as $item}    ... {/foreach}
    

    Решение нашел тут, если кому интересно https://support.webasyst.ru/sh...

    • +2
      replicant replicant 25 декабря 2018 17:46 #

      {$order.total-$order.shipping} выдаст вам сумму товаров с учетом скидки. Если скидка 0, то просто будет равно сумме за товары. Для случая, когда не используется $order.tax или равен нулю.

      В шаблоне СМС пишете примерно так "сумма к оплате за товары {$order.total-$order.shipping} руб."

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

      • +1
        dez dez 26 декабря 2018 11:45 #

        к сожалению считает не корректно и добавляет к сумме ещё какие то цифры.Должно быть 1 392,80 руб, а в смс приходит 1352.81352.8 

        • +2
          replicant replicant 27 декабря 2018 08:51 #

          У меня так работает уже очень долгое время.
          Всегда правильно считает, но order.tax не использую. Эта опция в движке выключена.
          Математика там простая. Надо разбираться с шаблоном СМС. Его видеть надо.

          total - общий итог
          price*quantity - только товары
          discount - скидка
          tax - налоги
          shipping - доставка

          если tax = 0
          total - shipping = price*quantity - discount
          потому что total = price*quantity - discount + shipping
          т.е. total - shipping всегда покажет правильную сумму при любой скидке или без нее

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

          Кстати, если не ошибаюсь, то subtotal в шаблоне sms-уведомлений недоступен. По крайней мере на 6 версии, поэтому пришлось отнимать доставку от общего итога. В итоге пробуйте разные варианты и найдете оптимальный для себя способ. Задача не сложная.

          З.Ы. Но это так. Мысли вслух. Всех с Наступающим!

  • 1
    dez 25 декабря 2018 15:59 #

    Теперь вопрос как заставить учитывать сумму товаров - скидка = сумма со скидкой. Это реально сделать, кто в курсе?

  • 1
    dez 26 декабря 2018 12:28 #

    Какой то бред, беру условия те что используются на емеил и блин нормально работает только если одна позиция в заказе, если три позиции, то в смс приходится не общая сумма, а просто цена товара, 155,189,520. А должно быть просто сумма. Бесит

    {foreach $order.items as $item}
    {wa_currency($item.price * $item.quantity, $order.currency)}
    {/foreach}
    • +1
      Алексей Алексей Webasyst 26 декабря 2018 18:47 #

      Вы скопировали, не разбираясь, что именно. Код должен быть примерно такой

      {$subtotal = 0}
      {foreach $order.items as $item}
      {$subtotal += $item.price * $item.quantity}
      {/foreach}
      {wa_currency($subtotal, $order.currency)}

      • +1
        dez dez 27 декабря 2018 10:29 #

        Не работает, при отправки тестового снизу красным пишет 

        Syntax Error in template "252e9274cb80b8cdc7b5a2a76101dbf710fbad12" on line 4 "{$subtotal += $item.price * $item.quantity}" - Unexpected "= "

        • +2
          replicant replicant 27 декабря 2018 14:26 #

          В шпаргалке написано вот так. Поэтому ещё раз внимательно получите значения всех указанных переменных для тестового заказа, а потом отнимите последовательно из итога ненужное.


          В 7 версии ничего не изменилось в этом плане. Все переменные, необходимые для расчета, уже известны.


          Теперь заказ



          Шаблон СМС такой



          Итоговое сообщение такое (в шаблоне некоторые переменные идут с 4-знаками после, но результат арифметического действия уже будет без лишних нулей, в принципе лишние знаки легко убираются модификатором)
          • +1
            dez dez 27 декабря 2018 15:08 #

            Чесно говоря, я уже запутался, я простой пользователь ШШ,  а не программист, я не понимаю, шпаргалки эти. Я создал кнопку без изменения статуса заказа, слать человеку смс с данным для оплаты, без учета доставки. Но что бы в смс была общая сумма всех товаров, учитывалось скидка, купона или накопительная, всё. Я говорю по телефону с покупателем, кнопку тык, все смс ушла с номером моей карты и там четко нужная сумма. Борюсь уже третий день. У меня только получается корректно слать данные, если в заказе 1 товар и нету скидки, а если позиций три и более и есть скидка, шлю с мобильника руками)=

            • +2
              replicant replicant 27 декабря 2018 15:21 #

              Я тоже простой пользователь SS. Готовое решение есть на скриншотах. Количество товаров тут не важно, потому что всё уже заранее посчитано хоть для 1 товара, хоть для 100.

              Покажите лучше свой шаблон СМС (можно затереть реквизиты) и тестовый заказ.

              • +1
                dez dez 27 декабря 2018 15:28 #

                Смс приходит просто  сумма товара, если заказали три позиции, приходит вот так.

                • +2
                  replicant replicant 27 декабря 2018 16:21 #

                  А если в шаблон забить вот такое и просто прогнать тестовое СМС и сравнить с заказом?

                  Итого {$order.total} Товары со скидкой {$order.total-$order.shipping} Доставка {$order.shipping} Скидка {$order.discount}

                  Нужно видеть конечно скрин тестового заказа и итоговую СМС, отправленную по этому шаблону, чтобы понять как оно у вас там считается и всё ли верно .

                  • +1
                    dez dez 27 декабря 2018 16:43 #

                    Вот сделал заказ по вашему шаблону. Заказ и смс, что получилось. В идеале, что я хочу должно быть, сумма двух товаров = 977 грн минус скидка -39,08, получается 937,92. Вот такая сумма должна уходить покупателю по смс

  • 1
    dez 27 декабря 2018 16:57 #

    Странно, как я понял мне нужно 

    {$order.total-$order.shipping} 

    Вчера Вы мне этот вариант предлагали, но не приходила смс не единой суммой, а цена каждого товара, как я показывал выше на принскрине. Сейчас все нормально О.о

    • +2
      replicant replicant 27 декабря 2018 19:01 #

      Просто вчера в спешке что-нибудь не так сделали. Бывает.

      • +1
        dez dez 27 декабря 2018 19:02 #

        Спасибо, за помощь. Если, что не так я вернусь в этот пост)))

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

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