Формула — це правило, за яким програма сама заповнює поле товару замість вас: рахує ціну з націнкою, складає назву з виробника й артикула, копіює значення з одного поля в інше. Одна формула — одне поле-приймач, і застосовується вона одразу до всього каталогу або до відібраної частини.
У програмі два різні набори формул, і плутати їх дорого. Формули прайс-листа працюють із рядками прайсу постачальника — з тим, що надіслав контрагент. Формули каталогу, про які ця стаття, працюють із вашими картками товарів: з тим, що вже лежить у базовому каталозі й поїде на сайт.
Де це у програмі
Формули каталогу живуть не в картці товару, а у вікні пакетного оновлення — там, де каталог оновлюється з прайс-листів. Це логічно: формули майже завжди доводять до розуму те, що щойно приїхало від постачальника. Але те саме вікно відкривається й прямо з каталогу, коли до прайсів воно стосунку не має.
- З пакетного оновлення
- Довідники → Обробка прайс-листів → «Оновлення базового каталогу» → вкладка «Формули» (третя в ряду, з іконкою калькулятора)
- З базового каталогу
- меню дій вікна каталогу → «Налаштувати формули для полів»
- Вмикання в оновленні
- прапорець «Застосовувати формули» на вкладці «Налаштування»
1
Список формул2
Редактор формули3
Перемикач «Активність»- Список зліва — кожен рядок це формула, назва рядка відповідає полю-приймачу.
- У редакторі праворуч розташований вираз обраної формули; поля вставляються через «Поля для формул» або Ctrl+Space.
- Вимкнена формула («Активність» знято) не враховується під час перерахунку.
Прапорець і вкладка — різні речі. У вкладці ви складаєте формули й можете застосувати їх вручну кнопкою. Прапорець «Застосовувати формули» вирішує, чи рахувати їх під час пакетного оновлення каталогу з прайсів. Формула може бути активною, а прапорець знятий — тоді вона спрацює тільки тоді, коли ви натиснете кнопку самі.
Як влаштоване вікно
Вікно поділене навпіл. Ліворуч — список формул, по рядку на кожну. Праворуч — редактор тієї, яку ви виділили: клік по рядку зліва перемальовує праву панель. Поки нічого не виділено, замість редактора висять три кроки-підказки — що натиснути, щоб з'явилася перша формула.
Над обома панелями — ряд кнопок: «Додати формулу» (відкриває пошук по полях каталогу, там же можна створити нове поле), «Застосувати формули», чарівна паличка ШІ-помічника, кошик для вибраного рядка, оновлення списку й посилання «Довідка».
Список ліворуч
У списку зібрано те, за чим формулу шукають і чим керують гуртом:
| Колонка списку | Що задає |
|---|---|
| «Назва поля» | поле-приймач: куди запишеться результат. Воно ж служить назвою формули |
| «Примітка» | текст для себе: навіщо ця формула. За півроку ви скажете собі дякую |
| «Порядок» | черговість: формула з меншим числом рахується раніше |
| «Активність» | вимкнена формула не рахується взагалі |
| «Тільки для читання» | підпис довший: «не замінювати значення при парсингу». Поле, заповнене формулою, не затреться тим, що прийде із сайту постачальника |
| «Застосовувати при завантаженні БК із зовнішніх джерел» | рахувати формулу ще й тоді, коли каталог приходить ззовні — через API маркетплейсу чи тунель |
| «Мова» | мова, для якої складено правило; поруч кнопка, щоб її змінити |
Значення в цих колонках правлять подвійним кліком просто в рядку. Ширину списку тягнуть мишкою за смужку між панелями, а самі колонки прокручуються — тому у вузькому вікні видно тільки «Назву поля» й «Примітку». Самого виразу в списку немає взагалі: формула живе праворуч.
Редактор праворуч
Угорі — ім'я вибраного поля й перемикач «Активність», той самий, що в колонці списку. Далі кнопка «Поля для формул», кнопка «Застосувати цю формулу» і саме поле виразу з підсвіткою синтаксису. Під ним — два перемикачі («Тільки для читання» і «Застосовувати при завантаженні БК із зовнішніх джерел»), «Примітка» і згорнутий блок «Умова застосування (необов'язково)».
Кнопки «Зберегти» тут немає й не потрібно: зміни йдуть у базу самі, а біля заголовка спалахує напис «Збережено» з часом.
Поле у формулу вставляють не руками — набраний з пам'яті макрос і є найчастішою причиною помилок. Кнопка «Поля для формул» відкриває довідник із пошуком і колонками «Поле», «Група», «Макрос», «Код»: клік по рядку показує опис поля внизу, подвійний клік — вставляє макрос у позицію курсора. Те саме дає Ctrl+Space прямо в редакторі. Підказка під полем каже це прямо: «Подвійний клік по полю в правій панелі вставляє макрос у позицію курсора; Ctrl+Space — автодоповнення.»
Доступні три групи джерел: поля каталогу ({Товар БК: …}), поля прайсу ({Прайс: …}) і поля контрагента. Тобто формула каталогу може дотягнутися до прайсу — але тільки для зіставлених товарів, як і в зворотному напрямку.
Коли формула рахується
Точок запуску три, і різниця між ними — головне, що варто засвоїти.
- Вручну. Кнопка «Застосувати формули» над списком рахує всі активні формули. Кнопка «Застосувати цю формулу» в редакторі робить те саме для однієї вибраної — так перевіряють нову формулу, не чіпаючи решту.
- Під час пакетного оновлення з прайсів. Якщо на вкладці «Налаштування» стоїть «Застосовувати формули», вони порахуються в тому ж прогоні, яким каталог оновлюється від постачальників.
- Під час завантаження каталогу ззовні. Тільки для формул із прапорцем «Застосовувати при завантаженні БК із зовнішніх джерел».
Перед кожним запуском програма мовчки перевіряє формулу — і криву не виконує: решта формул відпрацює, а на пропущені ви отримаєте вікно «Помилки у формулах» зі списком полів і номерів правил. Кнопка «Запитати ШІ-помічника» в цьому вікні передає помічникові самі вирази, щоб він пояснив, що не так.
Формула перезаписує поле, а не доповнює його. Якщо в приймачі було значення, вписане руками, після прогону його не буде. Захисту «застосувати один раз» у формул немає: вираз {Товар БК: Ціна} * 1.1, записаний у поле «Ціна», підніматиме ціну на десять відсотків при кожному запуску. Формулу, яка читає й пише те саме поле, запускають один раз і перевіряють результат, а не тиснуть кнопку «про всяк випадок».
Порядок усередині прогону задається колонкою «Порядок». Це важливо, коли одна формула користується результатом іншої: щоб зібрана назва потрапила у формулу, яка рахує з неї щось далі, у першої порядок має бути меншим.
Мова має значення
Формула прив'язана до мови. Текстові поля — назва, описи, мета-теги — у кожної мови свої, тому й формула для них своя. Склали правило українською — англійська версія поля лишиться такою, якою була.
Числові поля — ціни, габарити, кількість — від мови не залежать, і для них це не має значення.
Готові рецепти
Чотири задачі, заради яких формули каталогу заводять найчастіше.
Внутрішній артикул лічильником
Потрібно, коли товари приходять без свого коду, а свій наскрізний номер потрібен. Для цього є окремий блок, який не схожий на решту виразів:
[[НайтиМаксДобавить1{Товар БК: Артикул (внутрішній)}]]
Працює він так: програма знаходить у вказаному полі найбільше число по всьому каталогу й далі видає кожному товару наступне. Нецифрові символи при пошуку максимуму ігноруються, тож префікси на кшталт ART- лічильник не збивають. У блока є два синоніми — max_add_1 і ЗнайтиМаксДодати1, пишіть будь-який.
Звузьте таку формулу умовою застосування «поле порожнє». Інакше кожен запуск перенумерує весь каталог заново, і артикули, які ви вже віддали на маркетплейси, поїдуть.
Штрихкод EAN-13
Макрос {GENERATOR_EAN13} видає коректний штрихкод формату EAN-13 із контрольною цифрою. Використовують так само, як лічильник: у поле штрихкоду, з умовою «порожньо», щоб не переписати те, що вже є.
Копіювання між полем і характеристикою
Характеристики теж доступні формулі — до них звертаються за їхнім кодом. Це закриває дві дзеркальні задачі: покласти значення характеристики у звичайне поле (щоб воно поїхало у фід, де характеристик немає) і навпаки — заповнити характеристику зі звичайного поля.
Найпростіший спосіб не помилитися з кодом — вставити характеристику зі списку полів праворуч, а не набирати вручну.
Ціна з оглядкою на щось
Найчастіший клас формул — перерахунок ціни. Кілька прикладів, які достатньо підставити:
| Що потрібно | Формула |
|---|---|
| Не продавати дорожче за рекомендовану ціну | IF({Товар БК: Ціна РРЦ} > 0 AND {Товар БК: Ціна} > {Товар БК: Ціна РРЦ}, {Товар БК: Ціна РРЦ}, {Товар БК: Ціна}) |
| Ціна = РРЦ мінус 5 %, а якщо РРЦ немає — лишити як є | CASE WHEN {Товар БК: Ціна РРЦ} > 1 THEN {Товар БК: Ціна РРЦ} * 0.95 ELSE {Товар БК: Ціна} END |
| Округлити до цілого | ROUND({Товар БК: Ціна}, 0) |
| Зібрати назву з виробника й артикула | CONCAT({Товар БК: Виробник}, ' ', {Товар БК: Артикул виробника}) |
Перевірка > 0 і > 1 у прикладах із рекомендованою ціною не косметична: товарів без РРЦ зазвичай більшість, і без перевірки їхня ціна перетворилася б на нуль.
Ціни конкурентів у формулі теж доступні — але не як окреме «поле конкурента». Конкурент у Elbuz — це такий самий контрагент зі своїм прайсом, тож його ціна приходить у товар каталогу через зіставлення, а формула бере її з полів прайсу. Порядок дій той самий, що з постачальником: завантажити прайс, зіставити товари, і аж тоді писати формулу.
Умова застосування: звузити формулу до частини товарів
Блок «Умова застосування (необов'язково)» внизу редактора відбирає товари, до яких формула взагалі дійде. Без умови правило застосується до всього каталогу.
Умову не пишуть текстом — її збирають кнопками. «Додати» ставить один рядок «поле — операція — значення», «Додати групу» — вкладену групу з власним «і / або». Готове зберігають кнопкою «Зберегти», скидають — «Скинути». Під конструктором програма переказує зібране звичайними словами: перш ніж запускати формулу на весь каталог, прочитайте цей переказ — він показує, що ви справді відібрали.
Умова потрібна майже завжди, і не заради швидкості, а заради безпеки. Три типові приклади: рахувати тільки для однієї категорії, тільки для товарів одного виробника, тільки там, де поле-приймач ще порожнє. Останній варіант рятує від подвійного застосування краще за будь-яку обережність.
Є ще один відбір, який діє поза вашою умовою: товари з прапорцем «Не оновлювати» формули не чіпають взагалі. Це той самий прапорець, який захищає картку від перезапису з прайсу, і на формули він поширюється так само.
Чого формули не роблять
- Не відкочуються. Скасування немає: прорахували не те — доведеться прораховувати назад іншою формулою або відновлювати з резервної копії.
- Не рахують підсумки. Функції на кшталт SUM, AVG, COUNT у виразі не працюють: формула рахується для кожного товару окремо.
- Не заміняють націнку. Для ціноутворення за правилами є окремий механізм — він зручніший і має захист від повторного застосування.
- Не переносять значення між мовами. Текстове поле рахується тією мовою, для якої складена формула.
Розбір частих проблем
| Що ви бачите | Чому так | Що зробити |
|---|---|---|
| Натиснув кнопку — нічого не змінилося | формула вимкнена або умова застосування не пропустила жодного товару | перевірте перемикач «Активність» і переказ умови під конструктором |
| Вискочило вікно «Помилки у формулах» | у виразі синтаксична помилка; програма перевіряє формули перед запуском і криві пропускає, решту застосовує | виправте перелічені формули за номерами правил; кнопка «Запитати ШІ-помічника» передасть їх помічникові |
| Порахувалося не в усіх товарах | у пропущених стоїть прапорець «Не оновлювати» | зніміть прапорець у тих картках, які формула має чіпати |
| Ціна виросла вдруге після повторного запуску | формула читає й пише те саме поле, захисту від повторного застосування немає | додайте умову застосування або перерахуйте ціну від вихідного поля, а не від себе |
| Значення, вписане руками, зникло | формула перезаписує поле цілком | увімкніть «Тільки для читання» або додайте умову «поле порожнє» |
| Порахувалося тільки українською | формула прив'язана до мови | складіть таку саму для іншої мови |
| Артикули перенумерувалися заново | лічильник запустився без умови застосування | додайте умову «поле порожнє» — і більше не запускайте без неї |
| Формула з полем прайсу дала порожньо | товар не зіставлений із рядком прайсу | спершу зіставте товари, формули рахуйте після цього |
Часті питання
Чим формули каталогу відрізняються від формул прайс-листа?
Тим, що вони пишуть. Формули прайсу міняють рядки прайсу постачальника, формули каталогу — ваші картки товарів. Синтаксис і набір функцій однакові, вікна різні.
Чи можна відкотити помилкову формулу?
Ні, скасування немає. Перед формулою, яка чіпає ціни всього каталогу, є сенс зробити резервну копію — або спершу запустити її з умовою на одну категорію й подивитися результат.
Як зробити, щоб формула спрацювала лише один раз?
Окремої галочки для цього немає. Робочий спосіб — умова застосування «поле-приймач порожнє»: такій формулі просто нема що рахувати вдруге.
Як пронумерувати товари власним артикулом?
Блоком [[НайтиМаксДобавить1{Товар БК: Артикул (внутрішній)}]]: програма знаходить найбільше число в полі й видає кожному наступне. Обов'язково з умовою на порожнє поле, інакше кожен запуск перенумерує каталог заново.
Чи можна формулою заповнити характеристику товару?
Так, характеристики доступні як поля. Вставляйте потрібну зі списку праворуч, щоб не помилитися з кодом.
Де кнопка «Зберегти» у вікні формул?
Її немає: редактор зберігає зміни сам, і біля заголовка з'являється напис «Збережено» з часом. Окрему кнопку «Зберегти» має лише блок «Умова застосування» — умову треба підтвердити.
Формули рахуються самі чи їх треба запускати?
І так, і так. Кнопка у вкладці рахує їх зараз. Прапорець «Застосовувати формули» на першій вкладці вмикає їх у пакетному оновленні каталогу з прайсів. Окремий прапорець у рядку формули додає її ще й до завантаження каталогу із зовнішніх джерел.
Суміжні теми
- Формули для полів прайс-листа — той самий синтаксис, але для рядків постачальника.
- Оновлення базового каталогу з прайс-листів — вікно, у якому живе вкладка «Формули».
- Правила ціноутворення — коли ціну краще рахувати не формулою, а націнкою.
- Довідник атрибутів — звідки беруться характеристики, які формула вміє заповнювати.

