Не зарегистрирован
Вход
Забыли пароль?
Регистрация
Подписаться
Сэкономьте время — перед вопросом на форуме узнайте, как найти ответ быстрее
По техническим проблемам необходимо обращаться в Консультационный центр

Поиск по форуму: 

Приглашаем в блог Amiro.CMS. Регулярные обзоры, опыт, решения, практикумы.

Форум  ->   Интернет Магазин  ->  смена типа переменной

Вопросы по настройке магазина, каталога.

Добавлено: 20.07.16 13:19:00 #1



Регистрация: 05.12.13
Сообщений: 20


Обратиться по имени

В шаблоне письма _order_letters_ru есть переменные total и amount, обе - строки, нужно перевести их в числовой формат, есть такая возможность?



Добавлено: 20.07.16 20:46:31 #2



Регистрация: 26.05.08
Сообщений: 984


Обратиться по имени

##setvar @_total = intval(total)##



Добавлено: 21.07.16 11:19:04 #3



Регистрация: 05.12.13
Сообщений: 20


Обратиться по имени

не работает похоже((



Добавлено: 21.07.16 11:44:45 #4

Партнер



Регистрация: 13.01.16
Сообщений: 35


Обратиться по имени

li.ch, можно уточнить цель конвертации?



Добавлено: 21.07.16 13:53:30 #5



Регистрация: 05.12.13
Сообщений: 20


Обратиться по имени

нужно проверить сумму заказа и в случае, если она выше определенного числа, отправить сообщение о предоставлении ссылки на другие товары



Добавлено: 21.07.16 14:48:12 #6

Партнер



Регистрация: 13.01.16
Сообщений: 35


Обратиться по имени

li.ch, суммировать не в шаблоне собрались, надеюсь? В PHP достаточно методов конвертации.
Если речь про total, попробуйте
##IF(floatval(total) > ....)



Добавлено: 21.07.16 15:29:40 #7



Регистрация: 05.12.13
Сообщений: 20


Обратиться по имени

суммировать ничего не собираюсь, только проверить сумму



Добавлено: 21.07.16 16:11:12 #8

Партнер


Регистрация: 22.02.09
Сообщений: 469


Обратиться по имени

Нет, как я понимаю, total - это сумма заказа с форматированием и все это не будет работать при наличии разделителя тысяч и/или разделителя дробной части, отличной от точки или при наличии префикса валюты.
И, например, 1,000 руб. после floatval превратится в 1
В простом варианте из примера выше можно только предварительно удалить разделитель тысяч прямо в шаблоне:
##setvar @_total = floatval(str_replace(",", "", total))##

В более сложном и общем случае нужно выносить это в функцию, в которой получать из настроек разделители, а так же префиксы и постфиксы валют и все это удалять или заменять на точку (для разделителя дробной части).

P.S. и я предполагаю, что вы уже проверили доступные переменные и сумма в числовом виде в этот шаблон не передается.



Добавлено: 21.07.16 16:13:53 #9



Регистрация: 05.12.13
Сообщений: 20


Обратиться по имени

спасибо, разобралась, из-за запятой в строке преобразовывалось неверно
удалила запятую, всё заработало



Добавлено: 21.07.16 16:18:21 #10

Партнер



Регистрация: 13.01.16
Сообщений: 35


Обратиться по имени
Добавлено: 21.07.16 16:24:34 #11



Регистрация: 05.12.13
Сообщений: 20


Обратиться по имени

Евгений, спасибо, разобралась одновременно с вами))
да, если бы они передавались в числовом виде вопроса бы и не возникло)





Создать новую тему

Всего тем: 6629
Всего сообщений: 27746
Всего зарегистрированных пользователей: 48914
Последний зарегистрированный пользователь: user74945798