Калькулятори
Будуйте калькулятори продуктів — параметри, матеріали, розрахунки за формулами, деталі виробництва та шаблони.
Огляд
Калькулятор — це самостійний розрахунковий рушій для одного продукту: набір параметрів, видимих клієнту (ширина, колір, напрямок відчинення, …), список матеріалів із каталогу вашого проєкту та розрахунки, які перетворюють значення параметрів на кількості матеріалів і ціну. Калькулятори використовуються всередині замовлень, можуть бути передані клієнтам за публічним посиланням або вбудовані як віджет на ваш сайт, а також опубліковані в міжпроєктній вітрині, щоб інші користувачі Configo могли їх скопіювати.
Відкрийте розділ Калькулятори в сайдбарі проєкту, щоб побачити список. Натисніть Додати, щоб створити новий, або значок редагування на наявному рядку, щоб його відкрити. Редактор поділено на сім вкладок: Налаштування, Матеріали, Параметри, Розрахунки, Деталі, Шаблони та Перегляд.
Поки ви редагуєте, зміни зберігаються чернеткою в сесійному сховищі браузера і надсилаються на сервер лише коли ви натискаєте Зберегти у правому верхньому куті. Перезавантаження сторінки зберігає чернетку; закриття вкладки — ні.
Налаштування
Загальні
- Назва (обов'язково) — внутрішня назва, показана у списку калькуляторів. Клієнтам не показується.
- Шаблон назви продукту — заголовок, що генерується для кожної конфігурації, наприклад
Плісе 16мм $width x $height $color. Посилайтеся на будь-який параметр за його ID змінної ($width,$color, …); значення підставляється наживо в міру заповнення форми клієнтом. Звичайний текст навколо змінних зберігається як є — залишайте хоча б один неалфавітний символ (пробіл,×,-) між двома змінними, інакше вони розпізнаються як один ідентифікатор ($widthxчитається як одна змінна з ім'ямwidthx, а не$width, за якою йдеx). - Одиниця продукту — одиниця виміру одного готового сконфігурованого продукту (штука, комплект тощо). Це окрема величина від одиниць виміру окремих матеріалів, з яких він збирається.
Більше, ніж проста підстановка
Шаблон — це не лише заміна змінних на значення: усе всередині ${ … } обчислюється як вираз — тією ж мовою, що й
код формул: порівняння, розгалуження ? : і вбудовані функції. Три речі, які треба знати:
- Змінна — це її значення. Усередині
${ … }$side— значення параметра, а$side, написане всередині рядка в лапках, підставляється в цей рядок — тож для тексту'$side'і$sideвзаємозамінні:${lower('$side')}або${'$system' == 'Uni' ? 'Закрита ПВХ' : '$system'}. Поза${ … }звичайний$widthпрацює як і раніше. - Текстові помічники — функції, а не методи:
lower(…),upper(…),trim(…). Жодного.toLowerCase()— у мові шаблонів узагалі немає звернення до властивостей і виклику методів, і шаблон із ними не збережеться. - Параметр, якого клієнт не торкався, читається як
[none], а не як порожній рядок. Тому необов'язкове поле, підставлене напряму, надрукує в назві буквальне[none]— натомість захистіть його, а текст, що має з'явитися, оформіть вкладеним шаблоном у зворотних лапках:${'$note' != '[none]' ? `(примітка: ${lower('$note')})` : ''}
Шаблон може займати кілька рядків. Реалістичний приклад, що поєднує все:
${'$system' == 'Uni' ? 'Закрита ПВХ' : '$system'};
тканина — ${lower('$cloth')} $color;
$width×$height мм
Вкладка Перегляд показує підсумкову назву наживо — це єдиний спосіб перевірити шаблон, оскільки назва не входить до розбивки за ціною.
Ціноутворення
Цей розділ визначає, як складається підсумкова ціна. Точне розуміння того, що робить кожне поле — і чого воно не робить, — допомагає уникнути подвійного обліку витрат.
- Вартість робіт і Амортизація — фіксовані суми, що додаються один раз на сконфігуровану одиницю, понад підсумки за матеріалами. Обидва поля — це статичні числа, а не формули: вони не масштабуються за шириною, висотою, кількістю чи будь-яким значенням параметра і не можуть бути зроблені умовними.
- Множник ціни — множить кожну ціну матеріалу (закупівельну, продажу та дилерську) на цей коефіцієнт.
Використовуйте
1, щоб залишити ціни без змін; застосовуйте його для конвертації валют, якщо ваш каталог матеріалів оцінено в іншій валюті, ніж та, у якій ви продаєте. - Кількість знаків після коми — до скількох знаків після коми округляються розраховані ціни.
Три колонки ціни (закупівля / продаж / дилер) розраховуються з розбивки за матеріалами так:
| Включає матеріали | Включає вартість робіт + амортизацію | Залежить від множника ціни | |
|---|---|---|---|
| Закупівля | ✅ | ❌ | ✅ (лише матеріали) |
| Продаж | ✅ | ✅ | ✅ (лише матеріали) |
| Дилер | ✅ | ✅ | ✅ (лише матеріали) |
Два наслідки, про які варто знати до налаштування реального продукту:
- Закупівельна ціна ніколи не включає вартість робіт чи амортизацію. Вона відображає лише базову собівартість за матеріалами. Якщо вам потрібно, щоб праця чи накладні витрати відображалися в закупівельній ціні/собівартості, вартість робіт/амортизація для цього не підійдуть — натомість доведеться додати рядок матеріалу (див. нижче).
- Вартість робіт і амортизація додаються однаково і до ціни продажу, і до дилерської ціни — немає способу задати різну вартість праці для роздрібних і дилерських клієнтів через ці поля, і множник ціни їх не масштабує (він масштабує лише ціни матеріалів).
- Кожна цінова колонка збирається лише з тих цін, які реально заповнені. Матеріал із дилерською ціною, залишеною
рівною
0, не дає внеску в дилерську колонку — вона не підміняється мовчки ціною продажу. Якщо в каталозі заповнені лише закупівельна й роздрібна ціни, дилерська сума для будь-якої конфігурації дорівнюватиме лише вартості робіт плюс амортизація, і для всіх, кому ця колонка видима, це виглядає як зламаний калькулятор. Або заповніть дилерські ціни по всьому каталогу, або взагалі не показуйте дилерську ціну (див. права доступу до цін у віджеті).
Моделювання праці й накладних витрат: два підходи, обирайте свідомо
Є два різні способи додати в калькулятор оплату праці/збирання/монтажу, і поводяться вони по-різному — якщо їх переплутати, можна випадково порахувати вартість двічі або, навпаки, недорахувати:
Поле Вартість робіт / Амортизація (Налаштування → Ціноутворення) — найпростіший варіант. Використовуйте його, коли оплата праці — це фіксована сума на сконфігуровану одиницю, однакова для роздрібної та дилерської ціни, і не повинна масштабуватися за розміром чи залежати від якогось параметра (наприклад, пласка «плата за збирання»).
Матеріал із формулою розрахунку — використовуйте цей варіант, коли вартість праці має:
- масштабуватися за параметром (наприклад,
$width + $heightдля часу різання), або - бути умовною (наприклад, нараховуватися лише при виборі певної опції), або
- мати окремі закупівельну/роздрібну/дилерську ціни, або
- з'являтися окремим рядком у таблиці деталізації матеріалів, видимій клієнту.
Щоб змоделювати працю таким способом, додайте матеріал (наприклад, «Монтаж») з одиницею на кшталт
штабогод, потім створіть для нього розрахунок із формулою, яка повертає кількість праці (часто просто константа1або значення, що залежить від умови). Оскільки це матеріал, він також масштабується множником ціни і (якщо задано) відсотком відходів, що зазвичай не те, що потрібно для праці, — встановіть відсоток відходів у0для трудових матеріалів.- масштабуватися за параметром (наприклад,
Який би підхід ви не обрали, не використовуйте обидва для однієї й тієї ж статті витрат — це порахує її двічі.
Видимість
- Можна копіювати — дозволяє скопіювати цей калькулятор до інших проєктів через міжпроєктну вітрину (див. Вітрина та публікація нижче).
- Публічний доступ — дозволяє будь-кому з посиланням відкрити цей калькулятор без членства в проєкті. Потрібно для вбудовування публічного віджета.
- Показувати деталізацію — чи показувати клієнту таблицю деталізації матеріалів (кількості та ціни за рядками), чи лише підсумкову суму. Вимкніть, якщо не хочете, щоб клієнти вираховували собівартість матеріалів із постатейного списку.
Матеріали
Вкладка Матеріали перелічує всі матеріали, які може використовувати цей калькулятор. Натисніть Додати, щоб прикріпити один:
- Знайдіть наявний матеріал із каталогу матеріалів вашого проєкту за назвою та оберіть його з результатів, або
- Введіть нову назву напряму — новий матеріал буде створено в каталозі вашого проєкту одразу після збереження тут.
У обох випадках ви редагуєте реальний запис матеріалу проєкту (назва, група, артикул, одиниця, закупівельна/ роздрібна/дилерська ціна, відсоток відходів і YAML-властивості) — зміни, зроблені тут, відображаються і на сторінці Матеріали проєкту, і навпаки.
Лише прикріплені тут матеріали доступні для використання на вкладках Параметри, Розрахунки та Деталі цього калькулятора. Матеріал, на який не посилається жоден Розрахунок чи Деталь, позначається невеликою позначкою «Не використовується в жодному розрахунку чи деталі» під його назвою — швидкий спосіб помітити забуті матеріали, перш ніж про них остаточно забудуть.
Перейменування матеріалу може мовчки зламати калькулятор. Скрізь, де клієнт обирає матеріал через «Список вибору» або «Список із зображенням», прив'язаний до групи, зберігається й порівнюється саме назва матеріалу — тому будь-яка умова на кшталт «Система = Беста Міні» та будь-яке значення за замовчуванням, що називає цей матеріал, перестають збігатися в мить перейменування. Помилки при цьому не буде; уражені формули просто перестануть застосовуватися. Після перейменування перевірте умови та значення за замовчуванням, що посилалися на стару назву.
Параметри
Параметри — це поля введення, які заповнює клієнт. Кожен параметр має:
Назву — відображуваний текст поля.
ID змінної — як параметр згадується у формулах і шаблонах, наприклад
$width. Повинен починатися з$і не може бути змінений після створення параметра.Ширину — скільки з 12 колонок сітки займає поле в макеті форми.
Тип — один із:
Тип Опис Текст Однорядкове текстове поле. Багаторядковий текст Багаторядкове текстове поле. Число Числове поле з необов'язковими мін/макс/кроком. Список вибору Випадний список. Варіанти беруться з одного з кількох джерел (нижче). Список із зображенням Як список вибору, але варіанти відображаються клікабельними мініатюрами, взятими з групи матеріалів (зображення й назва кожного матеріалу стають варіантом). Список із залежністю Випадний список, доступні варіанти якого фільтруються за збігом властивостей матеріалу з поточним значенням одного або кількох інших параметрів — корисно для каскадних списків (наприклад, спершу обрати серію, а потім бачити лише доступні в цій серії кольори). Матеріали Дозволяє клієнту напряму обрати один або кілька матеріалів (з кількостями) із групи матеріалів або набору груп, замість того щоб кількість виводилася формулою. Значення за замовчуванням — попередньо заповнене значення, показане при завантаженні або скиданні калькулятора. Для всіх типів «Список вибору» значення за замовчуванням має бути написане точно як один із варіантів, з яких воно обирається, — назва матеріалу або елемент вашого списку JSON/YAML. Значення, що не збігається ні з чим (випадковий переклад, перейменований матеріал, інше написання), не залишає поле порожнім: поле мовчки відкочується до першого варіанта у списку, тому калькулятор непомітно стартує не з того матеріалу, який ви мали на увазі, і жодної ознаки помилки немає. Залиште значення за замовчуванням порожнім, якщо хочете, щоб клієнт обрав сам, — лише порожнє значення залишає поле необраним при завантаженні.
Цей самий відкат і забезпечує узгодженість залежних списків: коли змінюється попередній параметр і поточний вибір перестає входити до запропонованих варіантів, поле переходить на перший придатний, і ціна перераховується.
Джерела опцій (тип «Список вибору»)
- JSON / YAML — фіксований, вручну заданий список рядків-варіантів.
- Група матеріалів — один варіант на кожну окрему назву матеріалу в обраній групі.
- Властивість групи — один варіант на кожне окреме значення обраної властивості серед усіх матеріалів групи (читається з YAML-властивостей кожного матеріалу).
- Властивість матеріалу — один варіант на кожне значення, знайдене в конкретній властивості конкретного матеріалу (корисно, коли властивість цього матеріалу сама є масивом варіантів, наприклад список доступних кольорів).
Використовуйте панель Перегляд внизу форми додавання/редагування параметра, щоб побачити, як саме параметр буде відображатися, ще до збереження.
Розрахунки
Розрахунки перетворюють значення параметрів на кількості матеріалів. Кожен розрахунок націлений на один матеріал (або, якщо залишити ціллю назву групи замість конкретного матеріалу, динамічно визначає матеріал цієї групи, що збігається з поточним вибором клієнта) і містить одну або кілька формул. Вибір матеріалу/групи підтримує пошук — вводьте текст для фільтрації замість прокручування всього каталогу.
- Формули обчислюються за АБО — використовується перша формула, чиї умови виконані і чий код дає кількість більшу за 0; решта пропускаються. Додавайте кілька формул (до 15), щоб виразити «різна формула для різного сценарію» для того самого матеріалу — наприклад, одна формула довжини при виборі порогової опції, інша — коли її не обрано.
- Умови всередині формули обчислюються за І (до 10 штук). Кожна умова порівнює поточне значення параметра із
заданим значенням за допомогою оператора:
дорівнює,не дорівнює,більше,менше,включає,не включає. - Код формули — це арифметичний вираз:
+ - * / % **, порівняння (==!====!==<<=>>=),&&||??!таумова ? a : b. Його обчислює власний парсер виразів Configo, а не JavaScript: звернення до властивостей немає (Math.ceil— синтаксична помилка, пишітьceil), і викликати щось поза списком нижче не можна. Формула може посилатися на будь-який параметр за його ID змінної ($width,$height, …) і використовувати вбудовані помічники, доступні через кнопку ƒ:abs,round,ceil,floor,trunc,max,min,sin/cos/tan/asin/acos/atan/atan2,pow,sqrt,exp,log,log10,random, текстовіlower,upper,trimта константиPI,E,LN2,LN10,SQRT2,SQRT1_2. Результат трактується як необхідну кількість цього матеріалу в його власній одиниці виміру.
Формула без умов застосовується завжди — так виражається «потрібно завжди, незалежно від вибору клієнта» (наприклад, фіксований комплект фурнітури). Нова формула за замовчуванням створюється без умов; натисніть І, щоб додати умову, лише якщо формулу дійсно потрібно обмежити значенням параметра.
Одиниці ніде не конвертуються — це завдання формули
Результат формули використовується як кількість саме в тій одиниці, у якій указана ціна матеріалу, без жодної конвертації. Параметри зазвичай заповнюються в міліметрах, а матеріали коштують за квадратний або погонний метр, тому переведення — ваше завдання, всередині формули:
- за м² (
sm):($width / 1000) * ($height / 1000) - за погонний метр (
lm,m):$width / 1000 - за штуку (
pcs): звичайна кількість, часто просто1або2
Помилитеся — ніхто не поскаржиться: тканина з ціною за м², що отримала формулу з результатом у мм², просто виявиться в мільйон разів дорожчою, і зовні це має вигляд робочого калькулятора. Це найдорожча помилка в цьому розділі, тому перевіряйте першу пораховану цифру кожного нового матеріалу в Перегляді проти ціни, яку ви вже знаєте.
Два корисні прийоми, обидва трапляються в реальних каталогах:
- Мінімальний розрахунковий розмір —
max(1400, $height)рахує мінімум 1400 мм за висотою, яким би коротким не було замовлення. - Фіксований припуск —
max(1400, $height) + 200додає 200 мм матеріалу на підгини та заворот. Це альтернатива відсотку відходів у матеріалу, який додає пропорційний припуск — використовуйте щось одне, не обидва разом.
Якщо умову залишено без обраної змінної, вона автоматично видаляється при збереженні, а не залишається мовчки робити формулу невиконуваною — так наполовину заповнена умова не може випадково занулити матеріал.
Поле коду формули перевіряється в міру введення: синтаксична помилка чи помилка посилання показується червоним прямо
під полем (наприклад, Expected ")"), тож не потрібно перемикатися на Перегляд, щоб виявити помилку. Під час
збереження та сама перевірка проходить по всіх формулах і шаблону назви — калькулятор із виразом, який парсер не може
прочитати, не збережеться, а помилка вкаже на конкретну формулу.
Якщо у матеріалу задано відсоток відходів (вкладка Матеріали), розрахована кількість автоматично збільшується на цей відсоток перед оцінкою вартості.
Деталі
Деталі формують виробничий лист — список розкрою, за яким реально ріже цех, окремо від видимої клієнту деталізації матеріалів (яка лише підсумовує, скільки матеріалу витрачається, а не як він розкроюється). Кожна Деталь — це один окремий відріз: матеріал, розмір (одна формула на вимір — 1D, 2D або 3D) і Кількість, що показує, скільки однакових копій цього конкретного відрізу потрібно. Умови працюють за тією ж моделлю АБО-формул / І-умов, що й Розрахунки, з тією ж живою перевіркою синтаксису під полем формули.
Деталь — це один відрізок, а не один профіль. Якщо рамний профіль йде по всьому периметру продукту, він ріжеться не одним шматком, а чотирма: два відрізки довжиною за шириною, два — довжиною за висотою. Змоделюйте це як дві Деталі, а не одну:
- Деталь 1: матеріал = рамний профіль, розмір =
$width, Кількість = 2 - Деталь 2: матеріал = рамний профіль, розмір =
$height, Кількість = 2
Одна Деталь із Кількістю 1 і розміром $width описує лише один відрізок довжиною за шириною — вона мовчки викидає
зі списку розкрою обидва відрізки за висотою. Щоразу, коли матеріал витрачається кількома по-різному розміченими
(або по-різному лічильними) шматками на одиницю продукції, задавайте кожному окремому шматку свою Деталь.
- Кількість та Одиниця товару — скільки однакових копій цього конкретного шматка ріжеться і в якій одиниці.
- Тип розміру — 1D, 2D або 3D, визначає, скільки формул розміру потрібно заповнити (наприклад, лише ширину, або ширину × висоту).
- Одиниця матеріалу та Одиниця розміру — одиниця, у якій виражається підсумковий вимір.
Вибір матеріалу підтримує пошук так само, як у Розрахунках. Щоб перевірити розраховані розміри й кількості перед збереженням, перемкніться на вкладку Перегляд — там, прямо під деталізацією матеріалів, наживо показується виробничий список за кожною Деталлю.
Шаблони
Шаблони — це іменовані придатні до повторного використання знімки значень параметрів (наприклад, «Стандарт 800×2100 Білий»), які клієнт може обрати з випадного списку, щоб миттєво заповнити всю форму замість ручного налаштування.
Щоб створити шаблон: натисніть Додати шаблон, заповніть форму калькулятора праворуч значеннями, які хочете зберегти, натисніть Зберегти як шаблон (це фіксує поточні значення), задайте назву в полі зверху, потім підтвердьте кнопкою Зберегти. Редагування наявного шаблону повторно застосовує його збережені значення у форму, щоб ви могли їх скоригувати й зберегти знову.
Перегляд
Живий, повністю робочий екземпляр калькулятора саме таким, яким його побачить клієнт, що використовує все, що зараз у чернетці (включно з незбереженими змінами). Використовуйте його після кожної зміни в Параметрах, Матеріалах чи Розрахунках, щоб переконатися, що кількості, умовні гілки та підсумкова ціна поводяться як очікується, — це найшвидший спосіб виявити невідповідну формулу чи забуту умову до збереження.
Якщо у калькулятора є будь-які Деталі, під деталізацією матеріалів показується таблиця виробничого списку з розрахованими матеріалом, розміром і кількістю для кожної підхожої Деталі — перераховується наживо в міру зміни значень параметрів на тій самій панелі, тож Деталі та Розрахунки можна звіряти пліч-о-пліч на тих самих вхідних даних.
Вітрина та публікація
- Вітрина (
Калькулятори → Вітринау сайдбарі) — це каталог калькуляторів з усіх проєктів Configo, позначених як Можна копіювати. Звідти можна переглянути будь-який із представлених калькуляторів і Скопіювати його у свій проєкт як відправну точку, разом з усіма матеріалами. - Публічний віджет — коли у калькулятора увімкнено налаштування Публічний доступ, він стає доступним за
публічною URL-адресою без входу в систему і може бути вбудований як iframe-віджет на зовнішній сайт. Віджет
надсилає батьківській сторінці події
calculatedіaddToCartчерезpostMessage, тож зовнішній магазин може реагувати на зміни конфігурації та обробляти оформлення замовлення. Доступність вбудовування віджета залежить від вашого тарифу.
Поради
- Віддавайте перевагу Вартості робіт над трудовим матеріалом щоразу, коли плата справді фіксована — це одне поле замість матеріалу + розрахунку, і менше того, що потрібно тримати синхронізованим.
- Встановлюйте відсоток відходів у 0 для будь-якого матеріалу, який не є фізичним витратним товаром (праця, фіксовані збори, змодельовані як матеріали, тощо).
- Червона помилка під полем формули ловить лише синтаксичні помилки й помилки посилань — вона не підкаже, що логіка формули невірна (наприклад, помилка на одиницю в умові). Використовуйте Перегляд, щоб переконатися в реальних розрахованих числах, а не лише в тому, що формула виконується без помилок.
- Слідкуйте за позначкою «Не використовується в жодному розрахунку чи деталі» на вкладці Матеріали — вона ловить матеріали, які ви прикріпили, але забули підключити.