Як налаштувати колонки прайс-листа для клієнтів

16 хв

Elbuz збирає прайс-лист для клієнтів із колонок, які ви задали один раз: назва, ціна, наявність, атрибути або власна формула. Заголовки пишете ви, значення програма бере свіжими з каталогу.

Коли це знадобиться:

  • Покупцю потрібен свій набір стовпців — колонки додаються з палітри полів, порядок задається стрілками.
  • Готового поля немає — формула в колонці рахує РРЦ або звичайну ціну, склеює назву з артикулом, перераховує за курсом.
  • Клієнт бачить «4123 USD» — правильна пара цінової колонки й колонки «Валюта» прибирає плутанину.
  • Колонка вийшла порожньою — пробний прогін кнопкою «Перевірити» показує значення кожної колонки до відправки.

З чого почати: картка шаблону «Прайс-лист (XLSX, CSV)» → вкладка «Вибір полів» → «Додати поле до вивантаження».

Що вміють колонки прайс-листа

  • Колонки з трьох джерел — поля каталогу, поля рядків прайсів і девʼять макросів: фото, категорії, атрибути, своя формула.
  • Свій заголовок — клієнт бачить у першому рядку рівно те, що ви написали в «Назві поля».
  • Охайні комірки — ціни заокруглені до двох знаків, перенесення рядків вирізані, порожнє значення — порожня комірка.
  • Формула в колонці — значення, якого немає в жодному полі.
  • Пробний прогін — показує результат на одному товарі й нічого не надсилає.
  • Будь-яка кількість цін — ціни каталогу й ціни з прайсів постачальників поруч.

Де це і хто має доступ

Меню
Довідники → Операції → Вивантаження даних → олівець у рядку шаблону → «Вибір полів»
Право доступу
вікно «Вивантаження даних» — одне право на список, картку й «Перевірити»
Підготувати
шаблон «Прайс-лист (XLSX, CSV)» — як створити

Як додати колонки і заголовки

Колонки файла задаються на вкладці «Вибір полів». Сітка «Вибрані поля» — це і є майбутня таблиця клієнта: скільки рядків у сітці, стільки колонок у файлі.

З трьома винятками, про які нижче: макрос «Атрибути товару» і галочка «Виводити значення за контрагентами» розкладають один рядок сітки на багато стовпців, а режим «Вивантажувати лише товари з прайсів» викидає з файла всі поля базового каталогу.

Кнопка «Додати поле до вивантаження» відкриває палітру полів із рядком пошуку «Пошук поля...» (нічого не знайшлося — палітра пише «Нічого не знайдено»). Поля в палітрі згруповані за трьома джерелами:

  • «Товари з базового каталогу» — усі колонки сітки товарів, разом з атрибутами, виведеними в сітку. Джерело цих полів — ваш ;
  • «Товари з прайс-листів» — усі колонки сітки рядків прайсів постачальників;
  • «Макро підстановки» — девʼять службових полів, яких у сітках немає.
Розкрита палітра полів із групами джерел
1Поле пошуку «Пошук поля...»
2Заголовок групи «Товари з базового каталогу»
3Заголовок групи «Макро підстановки»
  1. Пошук швидко фільтрує довгий список полів за назвою.
  2. Група «Товари з базового каталогу» містить стандартні поля товару.
  3. Група «Макро підстановки» містить розрахункові поля та посилання.

Ось що дає кожен третьої групи:

Поле в палітріЩо буде в колонці
Посилання на фото товаруусі фото товару одним рядком через роздільник посилань
Посилання на відео товаруусі відео так само
Всі коди категорій де знаходиться товарID категорій через кому
Всі коди категорій для товару (повна ієрархія ID)шлях ID від кореня дерева
Всі назви категорій де знаходиться товарназви категорій через роздільник категорій
Назва категорії, рівень Nназва категорії потрібного рівня окремою колонкою
Атрибути товарурозкладається на окрему колонку по кожному атрибуту
Атрибути товару із прайсуте саме по атрибутах із прайсів постачальників
Своя формулазаготовка під власний вираз. Додається не порожньою: у «Формулу» підставляється зразок CONCAT_WS(" ", "String1", "String2", "..."), і якщо його не переписати, у файл поїде рядок String1 String2 ...

«Свою формулу» і «Назву категорії, рівень N» можна додавати скільки завгодно разів — програма щоразу заводить нове поле. Решту полів двічі не додати: повтор мовчки відхиляється, а в палітрі таке поле показане як уже додане.

Як назвати і впорядкувати колонки

Перший рядок файла — це колонка сітки «Назва поля», і більше нічого. Не назва поля з довідника, не системне імʼя: коли ви додаєте поле, у «Назву поля» підставляється назва з палітри, а далі ви правите її прямо в комірці.

Клієнт побачить рівно те, що там написано. Порожня «Назва поля» дає порожній заголовок у файлі, і саме так виходять таблиці зі стовпцем без підпису.

Решта колонок сітки керує тим, як стовпець виглядає:

  • «Порядок» — місце колонки у файлі. Змінюється двома способами: стрілками в самому рядку і стрілками тулбара («Перемістити вибрану колонку вище» / «Перемістити вибрану колонку нижче»);
  • «Ширина» — ширина стовпця в XLSX, за замовчуванням 15 знаків. У CSV не застосовується;
  • «Джерело» — звідки поле, з кольоровою крапкою;
  • «Формула» — вираз, який рахує значення комірки;
  • «Сортування товарів» — номер цього поля в сортуванні файла;
  • «Виводити значення за контрагентами» — розкладає одну колонку на стовпець по кожному постачальнику;
  • «Вн. назва поля» — системне імʼя, тільки для читання.
Вкладка «Вибір полів» картки шаблону «Експорт з РРЦ»
1Кнопка «Додати поле до розвантаження»
2Стрілки переміщення колонки
3Колонка «Назва поля»
4Колонка «Формула»
5Колонка «Порядок»
  1. Кнопка «Додати поле до розвантаження» відкриває палітру доступних полів.
  2. Стрілки переміщують обране поле вище чи нижче у списку.
  3. «Назва поля» — підпис колонки, який побачить клієнт у файлі.
  4. «Формула» задає розрахункове значення поля, наприклад ціну з урахуванням РРЦ.
  5. «Порядок» визначає позицію колонки у вивантаженому файлі.

Кошик у рядку прибирає колонку, але спершу перепитує: «Видалити колонку з шаблону? Формулу та налаштування колонки буде втрачено.» Формулу після цього не відновити — якщо вона складна, скопіюйте текст перед видаленням.

Скільки колонок брати — вирішуєте ви, обмеження немає. Типовий прайс для клієнта — невелика таблиця на пʼять-вісім стовпців, а не вивантаження каталогу з усіма полями.

Що потрапляє в комірку

Значення поля проходить кілька перетворень, і знати про них варто, бо клієнт побачить саме результат.

  1. Порожнього місця не буває. Кожне поле обгортається так, що замість «немає значення» у файл іде порожня комірка, а не слово NULL.
  2. Ціни заокруглюються до двох знаків, числові поля — до цілого. Це стосується полів із типом «ціна» і «число» в довіднику полів: «Ціна», «Ціна собівартість», «Ціна РРЦ», «Стара ціна», «Ціна акція», «Ціна з прайс-листа». У XLSX будь-яка з цих колонок пишеться числом, а не текстом, — Excel одразу підсумовує її й сортує як число.
  3. З текстових полів вирізаються перенесення рядка й табуляція — саме тому довгий опис товару не розриває CSV на кілька рядків.
  4. Довгий текст в XLSX обрізається на 32 767 символах: це межа самого формату, не програми.

Колонка з формулою всі ці правила обходить: результат формули йде у файл таким, як його порахувала база, без заокруглення. Тому заокруглення пишіть усередині самої формули.

Як порахувати значення формулою

Формула потрібна, коли готового поля немає: віддати клієнту РРЦ, а якщо її немає — звичайну ціну; склеїти назву з артикулом; перерахувати ціну за курсом. Пишеться вона прямо в колонці «Формула» сітки полів, без квадратних дужок (у XML-шаблонах формулу беруть у [[ … ]] — тут ні).

Поля підставляються макросами виду {‹назва сітки›: ‹назва поля›}. Живий приклад із робочого шаблону — колонка з ціною:

IF({Товар БК: Ціна РРЦ} > 0, {Товар БК: Ціна РРЦ}, {Товар БК: Ціна})

Це читається як «якщо заповнена — бери її, інакше бери звичайну ціну». Так само працюють макроси до рядків прайсів ({Прайс: Ціна}) і до атрибутів товару — {Атрибут БК: Колір} виводить один атрибут окремим стовпцем.

Курс валюти підставляється макросом {CURRENCY_RATE_USD}; у нього є два синоніми — російськомовний {КУРС_ВАЛЮТЫ_USD} й український {КУРС_ВАЛЮТИ_USD}, усі три працюють однаково і в колонках-формулах, і в довільних значеннях. Курс береться з довідника валют заокругленим до двох знаків — для валют із дрібним курсом це помітно спотворює перерахунок.

Колонка виходить порожньою, а прогін іде далі. Кожна формула проходить перевірку безпеки, і та шукає в тексті службові слова SQL простим збігом підрядка, не розбираючи, де вони стоять.

Не пройшла перевірку — програма підставляє в цю колонку порожнє значення, решта файла формується як звичайно, а в журналі зʼявляється рядок із назвою колонки: «Формулу колонки «‹назва›» відхилено перевіркою безпеки — колонку вивантажено порожньою». Тобто пропажу видно, але тільки якщо відкрити журнал прогону.

Спотикаються на звичайних англійських словах усередині лапок: CONCAT("Updated: ", p.name) блокується через update, REPLACE(p.name, "Insert", "") — через insert, а CONCAT("Reunion ", p.name) — через union. Переписуйте такі формули без цих слів.

Перевірка стосується колонок із базового каталогу й макросів. У колонках із сітки «Товари з прайс-листів» формула йде в запит без неї: там таке слово колонку не обнулить, зате може зламати весь прогін.

Два різні збої з різними наслідками: один залишає без файла, другий — без однієї колонки. Плутати їх дорого, бо шукати доводиться в різних місцях
НіТакТакНіФормула написана в колонціСинтаксис цілий?коми в IF, парність дужокФайл не формується взагалі:у журналі «Помилка отриманнятоварів!»,картка операції червонаПеревірка безпеки:чи є в тексті службове слово SQL—update, insert, union?Колонка виходить порожньою,решта файла формується якзвичайно,у журналі рядок із назвою колонкиЗначення потрапляє в комірку
  • Дія або результат
  • Розвилка: далі шлях залежить від відповіді

Як подивитися, що вийде

Кнопка-колба «Перевірити» в шапці картки робить пробний прогін на одному товарі й показує результат парами «колонка = значення». Вона пише в окремий файл, нічого не надсилає й не чіпає робоче посилання — це єдиний безпечний спосіб побачити результат правки.

Прогін пройшов чисто — унизу зʼявиться «Помилок не знайдено: вивантаження сформовано коректно, усі макроси підставлено.» Для XLSX після ваших колонок може бути ще кілька сотень порожніх пар — це слід пробного режиму бібліотеки Excel, про який ідеться нижче.

Вікно «Перевірка шаблону вивантаження» з результатом пробного прогону
1Поле «ID товару»
2Підсумкове повідомлення перевірки
3Пари «колонка = значення»
  1. Поле «ID товару» — можна лишити порожнім, тоді береться перший товар, що підходить під умови вивантаження.
  2. Підсумкове повідомлення перевірки — одразу видно, чи знайдено помилки в шаблоні.
  3. Пари «колонка = значення» — результат підстановки формул і макросів для конкретного товару.

Синтаксична помилка у формулі зупиняє весь файл. Забута кома в IF або незакрита дужка ламають не одну колонку, а весь запит до бази: файл не формується взагалі. У журналі зʼявляється червоний рядок «Помилка отримання товарів!», а картка операції позначається помилкою.

Підсумковим рядком журналу операції стане «Вивантаження даних НЕ завершено: файл не сформовано», а дата останнього прогону в списку не зміниться. Щоб не ловити таке на бойовому прогоні, проганяйте кожну правку формули кнопкою «Перевірити».

Які ціни й валюту віддати клієнту

Скільки цін віддати клієнтові — вирішуєте ви, обмеження немає: скільки цінових колонок додали, стільки й поїде. Із базового каталогу доступні «Ціна», «Ціна РРЦ», «Ціна собівартість», «Стара ціна», «Ціна акція» і «Валюта». Із рядків прайсів — ті самі плюс «Ціна з прайс-листа», «Ціна мінімальна», «Ціна середня», «Ціна максимальна», «Курс валюти», «Прибуток» і «Прибуток %».

Два поля з підписами, схожими на ціну, цінами не є. «Фіксована ціна» — це прапорець «ціну зафіксовано, не оновлювати з прайсу», і в файл він іде як 0 або 1. «Динаміка ціни» — відсоток зміни, і він заокруглюється до цілого. Обидва є тільки в базовому каталозі, у сітці рядків прайсів їх немає.

Націнки на етапі вивантаження немає жодної: у файл іде те значення, що лежить у полі. Якщо клієнтові потрібна інша ціна, її або рахують формулою в колонці, або задають раніше — правилами ціноутворення під час оновлення каталогу з прайсів.

Колонки «Ціна» і «Валюта», узяті з прайс-листа, описують різні речі. Ось справжній рядок постачальника з демо-акаунта: «Ціна з прайс-листа» — 92,00, «Валюта» — USD, «Курс валюти» — 41,55, «Ціна собівартість» — 3 823,00, «Ціна» — 4 123,00.

Тобто в полі «Ціна» вже гривні (перераховані за курсом і з націнкою), а в полі «Валюта» досі стоїть валюта постачальника. Поставите ці дві колонки поруч — клієнт побачить «4123 USD».

Правильна пара з колонкою «Валюта» — тільки «Ціна з прайс-листа»: це і є ціна у валюті постачальника. Програма про таке не попереджає й нічого не перевіряє, ловиться це тільки очима у файлі.

У полів базового каталогу цієї пастки немає: у вивантаженні «Валюта» товару завжди замінюється кодом основної валюти акаунта, тому вона завжди відповідає ціні поруч.

Галочка «Вивантажувати хв. ціну на однакові товари у межах контрагента» рахує чесно: вона порівнює собівартість, а собівартість уже приведена до валюти акаунта, тобто складання різних валют тут не відбувається.

Десятковий роздільник у цінах завжди крапка — від сервера й від його налаштувань він не залежить. Якщо клієнтові потрібна кома, її доведеться зробити на його боці: у налаштуваннях імпорту або регіональних параметрах Excel.

Сценарії

Віддати клієнту РРЦ, а без неї — звичайну ціну

  • Що налаштувати: колонку «Своя формула» з виразом IF({Товар БК: Ціна РРЦ} > 0, {Товар БК: Ціна РРЦ}, {Товар БК: Ціна}) і заголовком, який зрозуміє клієнт.
  • Що вийде: у товарів із заповненою РРЦ у колонці буде РРЦ, у решти — звичайна ціна. Заокруглення допишіть у формулу: результат формули йде у файл без нього.

Клієнту потрібна ціна у валюті постачальника

  • Що налаштувати: з рядків прайсу — «Ціна з прайс-листа» і поруч «Валюта».
  • Що вийде: сума і код валюти описують одне й те саме. Пару «Ціна» + «Валюта» з прайсу не ставте: ціна там уже у вашій валюті (чому).

Клієнту потрібна інша ціна, ніж на сайті

  • Що налаштувати: формулу в цінову колонку або правила ціноутворення під час оновлення каталогу.
  • Що вийде: у файл іде пораховане значення. Окремої націнки на етапі вивантаження немає.

Що робити, коли колонка у файлі не та

Розбір частих проблем
Що ви бачитеЧому такЩо зробити
«Помилка отримання товарів!» — червоним рядком у журналі прогону Зламався запит вибірки — практично завжди це синтаксична помилка у «Формулі» однієї з колонок. Порожня «Формула» прогону не зупиняє: така колонка просто виходить порожньою Натисніть «Перевірити» в шапці картки — там буде текст помилки. Файл не сформовано: підсумковий рядок журналу — «Вивантаження даних НЕ завершено: файл не сформовано», картка операції позначена помилкою, за посиланням лишається попередній файл (про формулу)
«Одну з формул [[ ... ]] у шаблоні складено з помилкою. Перевірте коми між аргументами IF, парність дужок і лапок.» Пробний прогін знайшов синтаксичну помилку. Згадка про [[ ]] до прайс-листа не стосується: тут формули пишуть без дужок Перевірте коми між аргументами IF та парність дужок і лапок у колонці «Формула»
«Формулу колонки «‹назва›» відхилено перевіркою безпеки — колонку вивантажено порожньою» У формулі трапився заборонений підрядок — select, update, insert, union — і перевірка безпеки обнулила саме цю колонку Перепишіть формулу без цих слів, навіть якщо вони стоять усередині лапок (про формулу)
«Файл не сформовано. Спочатку виправте помилку вище — доки вона є, товари у вивантаження не потрапляють.» Пробний прогін не дійшов до формування файла через помилку вище Усуньте помилку, названу рядком вище у вікні перевірки
У файлі стовпець без заголовка У цієї колонки порожня «Назва поля» — саме звідти береться перший рядок Впишіть заголовок прямо в комірку «Назва поля» (про заголовки)
Ціна у файлі є, а валюта поруч чужа Колонки «Ціна» і «Валюта» з прайс-листа описують різне: ціна вже перерахована у вашу валюту, а код валюти лишився постачальника Поруч із «Валютою» ставте колонку «Ціна з прайс-листа» або не беріть «Валюту» з прайсу (про ціну й валюту)
«Видалити колонку з шаблону? Формулу та налаштування колонки буде втрачено.» Підтвердження видалення колонки Формулу після видалення не відновити — скопіюйте її текст, якщо він складний

Часті запитання

Колонка у файлі порожня, хоча формула написана. Чому?

Формула не пройшла перевірку безпеки: у тексті є update, insert, union чи select — навіть усередині лапок. Прогін іде далі, а журнал називає колонку. Перепишіть формулу без цих слів (про формулу).

Скільки цін можна віддати клієнту в одному файлі?

Скільки завгодно: скільки цінових колонок додали, стільки й поїде. «Фіксована ціна» ціною не є — це прапорець, у файлі він буде 0 або 1 (про ціни).

Чи можна вставити у прайс самі фотографії товарів?

Ні. Колонкою «Посилання на фото товару» виводяться посилання на фото, самих картинок у файлі не буде. Галочка «Вивантажувати фото» відповідає за заливку файлів фото на FTP, і в хмарній версії її немає.

Як змінити десятковий роздільник у цінах на кому?

У шаблоні — ніяк: у цінах завжди крапка. Кому клієнт задає у своєму імпорті або в регіональних параметрах Excel.

Чому одне поле не вдається додати в шаблон вдруге?

Повтор поля мовчки відхиляється, а в палітрі воно показане як уже додане. Двічі і більше додаються тільки «Своя формула» і «Назва категорії, рівень N».

Суміжні теми

Чи була стаття корисною?