Краткая инструкция, по созданию онлайн калькуляторов с помощью конструктора форм.
Всё чаще пользователи конструктора стали спрашивать, как можно сделать онлайн калькулятор стоимости услуг в зависимости от выбранных параметров. Здесь рассмотрим один пример, как это сделать в рамках конструктора, не прибегая к хукам, хакам и прочим компонентам.
Рассмотрим пример расчёта стоимости междугородной перевозки автомобилей (читай: доставка груза или товара).
Для расчёта стоимости перевозки/доставки, необходимо знать расстояние и тип/вес авто.
Создаём форму с любыми нужными настройками. В ней создаём поля для выбора или ввода расстояния и типа авто.
Отправной точкой примем условно — город Москва.
Для выбора расстояния я использовал тип поля список с указанием в предустановленных значениях расстояния от города Москвы до указанного города и его название.
Можно сделать список проще — типа до 50 км, до 100 км, до 1000 км, до 10 000 км. Или вывести простое числовое поле для ввода количества километров пользователем.
Для указания типа авто используем радио-кнопки. В предустановленных значениях будем использовать повышающий коэффициент, но также можно указать стоимость, на сколько увеличится итоговая сумма при выборе типа автомобиля.
На этом основные параметры для расчёта стоимости перевозки автомобиля закончились. Теперь можно указать дополнительные параметры, которые будут влиять на общую стоимость перевозки. Например, добавим страхование автомобиля, вид перевозки автомобиля и мелкие опции, типа отправки уведомления в процессе перевозки.
Добавим радио-кнопки пользователю для выбора страховать или нет.
И если пользователь выберет "Да", покажем ему зависимое поле, где в предустановленных значениях укажем стоимость автомобиля.
Для выбора вида перевозки будет использовать обычное поле типа список, где в предустановленных значениях укажем на сколько изменится общая стоимость перевозки при выборе одного из пунктов. Тут можно использовать коэффициент и считать во сколько раз измениться стоимость. Поэтому формула расчёта любого калькулятор зависит от конкретной задачи и её начальных данных.
Осталось добавить опции для отправки уведомлений пользователю и написать формулу расчёта.
Сделаем выбор на отправку смс или письма на емаил с указанием стоимости каждой услуги.
Соответственно, при выборе смс или email, нам нужно спросить у пользователя номер телефона или емаил, куда отправлять уведомления. Сделаем их через зависимые поля.
Теперь осталось самое интересное — написать формулу для расчёта стоимости.
Создаём поле
В нём нас интересует поле ввода формулы, на остальные опции данного поля можно не обращать внимания, так как у формулы стоит высший приоритет обработки данных.
Здесь указана формула для расчёта и она может быть у вас своя в зависимости от начальных условий задачи. Но в нашем случае мы берём расстояние из поля destination, умножаем на коэффициент в зависимости от выбранного типа авто type_auto и умножаем на 50 — условная цифра стоимости перевозки одного километра. Эту цифру можно указать скрытым полем в форме и при необходимости изменить стоимость перевозки одного километра, менять только значение этого поля или менять здесь в самой формуле. Затем добавляем стоимость страховки (если есть). Стоимость страховки для примера расчитываем как два процента от суммы страховки, например указанную пользователем сумму price_auto умножаем на 2 процента. И затем добавляем стоимость выбранного типа перевозки и стоимость уведомлений.
Важное условие в этой строке формулы, это — все математические знаки, скобки и слова должны отделяться пробелами между собой.
В итоге получаем такую форму, где самое первое поле — "Направление доставки" не задействовано в расчётах стоимости. Хотя можно использовать и его.
Всё чаще пользователи конструктора стали спрашивать, как можно сделать онлайн калькулятор стоимости услуг в зависимости от выбранных параметров. Здесь рассмотрим один пример, как это сделать в рамках конструктора, не прибегая к хукам, хакам и прочим компонентам.
Рассмотрим пример расчёта стоимости междугородной перевозки автомобилей (читай: доставка груза или товара).
Для расчёта стоимости перевозки/доставки, необходимо знать расстояние и тип/вес авто.
Создаём форму с любыми нужными настройками. В ней создаём поля для выбора или ввода расстояния и типа авто.
Отправной точкой примем условно — город Москва.
Для выбора расстояния я использовал тип поля список с указанием в предустановленных значениях расстояния от города Москвы до указанного города и его название.
Можно сделать список проще — типа до 50 км, до 100 км, до 1000 км, до 10 000 км. Или вывести простое числовое поле для ввода количества километров пользователем.
Для указания типа авто используем радио-кнопки. В предустановленных значениях будем использовать повышающий коэффициент, но также можно указать стоимость, на сколько увеличится итоговая сумма при выборе типа автомобиля.
На этом основные параметры для расчёта стоимости перевозки автомобиля закончились. Теперь можно указать дополнительные параметры, которые будут влиять на общую стоимость перевозки. Например, добавим страхование автомобиля, вид перевозки автомобиля и мелкие опции, типа отправки уведомления в процессе перевозки.
Добавим радио-кнопки пользователю для выбора страховать или нет.
И если пользователь выберет "Да", покажем ему зависимое поле, где в предустановленных значениях укажем стоимость автомобиля.
Для выбора вида перевозки будет использовать обычное поле типа список, где в предустановленных значениях укажем на сколько изменится общая стоимость перевозки при выборе одного из пунктов. Тут можно использовать коэффициент и считать во сколько раз измениться стоимость. Поэтому формула расчёта любого калькулятор зависит от конкретной задачи и её начальных данных.
Осталось добавить опции для отправки уведомлений пользователю и написать формулу расчёта.
Сделаем выбор на отправку смс или письма на емаил с указанием стоимости каждой услуги.
Соответственно, при выборе смс или email, нам нужно спросить у пользователя номер телефона или емаил, куда отправлять уведомления. Сделаем их через зависимые поля.
Теперь осталось самое интересное — написать формулу для расчёта стоимости.
Создаём поле
В нём нас интересует поле ввода формулы, на остальные опции данного поля можно не обращать внимания, так как у формулы стоит высший приоритет обработки данных.
( destination * type_auto * 50 ) + ( price_auto * 0.02 ) + type + notice
Важное условие в этой строке формулы, это — все математические знаки, скобки и слова должны отделяться пробелами между собой.
В итоге получаем такую форму, где самое первое поле — "Направление доставки" не задействовано в расчётах стоимости. Хотя можно использовать и его.
Реклама #
Алексей Т 7 лет назад #
vikont 7 лет назад #
Loadырь 7 лет назад #
vikont 7 лет назад #
Чуток подробней можно?
Loadырь 7 лет назад #
Dorimen 7 лет назад #
lakomet 7 лет назад #
Dost 7 лет назад #
Def 7 лет назад #
Def 7 лет назад #
Def 7 лет назад #
Loadырь 7 лет назад #
Def 7 лет назад #
Def 7 лет назад #
Loadырь 7 лет назад #
letsgo 7 лет назад #
Def 7 лет назад #
Loadырь 7 лет назад #
"100500 | +100500 эвро - Пластиковая упаковка"
Lisandr 7 лет назад #
AndroS 7 лет назад #
Loadырь 7 лет назад #
Но в моём понятии, зависимость полей это, когда содержимое одного поля зависит от выбранного значения другого поля. То есть на странице есть, скажем два селектора и при выборе значения в первом селекторе, во втором селекторе изменяются значения и названия пунктов для выбора. А при выборе другого пункта у первого селектора во втором селекторе значения меняются на совсем другие. Но сам селектор при этом никуда не скрывается его имя не изменяется. Такого в конструкторе нет. В конструкторе можно сделать три селектора и при выборе в первом селекторе показывать второй селектор, и скрывать третий селектор. А при выборе другого пункта, показывать другие поля или скрывать третьи и т.п.
jorgovich 7 лет назад #
kssemenov 7 лет назад #
Спасибо.
Loadырь 7 лет назад #
kssemenov 7 лет назад #
traffs 7 лет назад #
Loadырь 7 лет назад #
AndroS 7 лет назад #
Еще вопрос: можно ли как-то сделать, чтоб при редактировании записи заполнялись несколько полей для расчетов, а в записи - показывались результаты расчетов, и в фильтре не поисковая строка, а уже диапазон числе задать можно было?
Ваши бы поля из iforms да в типы контентов, уважаемый Loadырь! Сложный компонент в освоении, а в типах ваших полей не хватает!
Loadырь 7 лет назад #
AndroS 7 лет назад #
IceBreaker 6 лет назад #
Вот у меня человек выбирает тип стекла такой-то
потом выбирает количество стёкол (стёкла все разные по размерам) мне нужно от человека получить отдельно размеры всех стёкол.
То есть из списка выбираем допустим 3 стекла
Должно появиться что-то вроде
Размеры стекла 1:
Ширина
Высота
Размеры стекла 2:
Ширина
Высота
Размеры стекла 3:
Ширина
Высота
Еще бы у каждого можно было бы поставить галочку (Закалённое: да или нет) от этого коэффициент на стоимость добавляется
Выбрал семь сткол, значит семь размеров нужно забить... Зависимость позволяет выбрать только один пункт из количества стекол, то есть если стекла 2, то поля появятся, а если три, то размеры второго стекла уже не появятся, зато будет видно размеры третьего стекла и тд, может можно в зависимостях как-то добавить пункт ЕСЛИ (если кол-во больше 2 допустим, то показать)
IceBreaker 6 лет назад #
Периметр общий, площадь, общая, всё это перемножено на коэффициенты, на стоимость за погонный метр. за квадратный метр, доставка по километражу и еще куча всяких цифр
Просто общая формула получится адской с пятерными скобками - это жесть, вот я создал поле периметр, в него забил формулу, но я не хочу, чтобы заказчик видел ценообразование, чтобы он видел периметр площадь, как всё это считается и из чего складывается, эти поля скрыть бы...... но в скрытом поле нет типа Математические вычисления...
Итоговая формула выглядела бы гораздо проще (стоимость периметра + стоимость площади + стоимость доставки + стоимость установки + стоимость еще чего-то)
Loadырь 6 лет назад #
Loadырь 6 лет назад #
IceBreaker 6 лет назад #
Калькуляторов у меня таких много под каждое изделие... Простеньким не обойтись... Вопрос денег, для каких-то клиентов цена должна быть разная (мебельщикам скидка должна быть, а обычный пользователь не должен знать про эти скидки)
Вы за усовершенствование возьмётесь? Сколько будет стоить и интересно ли?
Пока пойду искать что-то типа онлайн калькулятора со вставкой кода...
Loadырь 6 лет назад #
IceBreaker 6 лет назад #
есть ли у вас интерес или это лучше не к вам?
Loadырь 6 лет назад #
ideasdigger 6 лет назад #
Loadырь 6 лет назад #
IceBreaker 6 лет назад #
В принципе на iForms можно было бы сделать, но с некоторыми добавками
Я просто не спец в составлении ТЗ, могу как обычный человек сформулировать или просто нарисовать например в корел как должен выглядеть калькулятор и прописать формулы и что друг за другом открывается
Можно завести базу материалов и видов обработки в админк, во всех калькуляторах на сайте прописаны формулы - меняем цены на материалы и обработку - меняется и итоговая сумма, алгоритм расчёта впринципе не меняется, но иногда чтобы можно было корректировать, с возможностью вычисления промежуточных значений, (площадь периметр), потому как эти цифры учавствуют не только в ценообразовании, но и ,например, в формуле расчта количества крепёжных отверстий на стекле исходя из его длины, чтобы на каждую вещь не писать форсулу 10-ти этажную проще написать формулу типа perimetr * cost_za_metr + ploshad * cost_za_m2 = stoimost
как-то так
Если это графически как-то реализовать, то вообще круто, но это пока так в мечтах больше, чтобы на сайте можно было нарисовать стекло, указать где скругление, примерить рисунок из фотоальбома и прочие интересные вещи, но это может в новых версиях компонента, если он родится....
Loadырь 6 лет назад #
IceBreaker 6 лет назад #
В принципе на iForms можно было бы сделать, но с некоторыми добавками
Я просто не спец в составлении ТЗ, могу как обычный человек сформулировать или просто нарисовать например в корел как должен выглядеть калькулятор и прописать формулы и что друг за другом открывается
Можно завести базу материалов и видов обработки в админк, во всех калькуляторах на сайте прописаны формулы - меняем цены на материалы и обработку - меняется и итоговая сумма, алгоритм расчёта впринципе не меняется, но иногда чтобы можно было корректировать, с возможностью вычисления промежуточных значений, (площадь периметр), потому как эти цифры учавствуют не только в ценообразовании, но и ,например, в формуле расчта количества крепёжных отверстий на стекле исходя из его длины, чтобы на каждую вещь не писать форсулу 10-ти этажную проще написать формулу типа perimetr * cost_za_metr + ploshad * cost_za_m2 = stoimost
как-то так
Если это графически как-то реализовать, то вообще круто, но это пока так в мечтах больше, чтобы на сайте можно было нарисовать стекло, указать где скругление, примерить рисунок из фотоальбома и прочие интересные вещи, но это может в новых версиях компонента, если он родится....
AndroS 6 лет назад #
Loadырь 6 лет назад #
IceBreaker 6 лет назад #
А могут и не гости считать себе заказы с учётом скидки