Як Elbuz сам розмічає колонки прайсу і коли кличе AI

19 хв

Elbuz сам знаходить у файлі постачальника колонки з назвою, ціною, артикулом і наявністю: звіряє заголовки зі словником, а незнайомі колонки віддає AI, який дивиться ще й на значення. Розмічати новий прайс з нуля руками не потрібно.

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

  • Підключаєте нового постачальника — колонки розмічаються на першому ж файлі, на звичайному прайсі джерело одразу готове.
  • Заголовки у файлі незвичні — кнопка «Зіставити автоматично» добере решту колонок через AI.
  • Автопідбір розмітив не так, як очікували — механізмів три, і видно, який із них що знайшов.

З чого почати: картка джерела → секція «Колонки» → «Майстер стовпців» → «Зіставити автоматично».

Що вміє автопідбір

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

Меню
Довідники → Обробка прайс-листів → Список прайс-листів
Кнопка
картка джерела → «Колонки» → «Майстер стовпців» → «Зіставити автоматично»
Вимкнути
Кабінет → Налаштування системи → «Прайс-листи» → «Визначати колонки автоматично»
Право доступу
вікно «Список прайс-листів» у «Правах груп»
Підготувати
завантажений файл прайсу: без нього звіряти нічого

Чому автопідбір буває різним: три механізми

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

МеханізмКоли працюєЩо з чим звіряє
Розбір під час завантаження файлусам, і лише поки прайс ще не розмічений — зокрема на першому файлі з пошти, за посиланням чи з FTPзаголовки колонок зі словником на 142 ключі, плюс перевірка перших рядків даних
Кнопка «Зіставити автоматично»коли ви її натиснули, у будь-який моментзаголовки колонок із назвами полів системи, залишок — із AI
Автоналаштування нового джереласам, коли джерело щойно створенете саме, що кнопка, плюс те, що вже знайшов розбір файлу

Як колонки розмічаються під час завантаження файлу

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

У словнику 142 ключі: 67 для табличних форматів і 75 для XML. Для таблиць збіг шукається за входженням — заголовок «Артикул виробника (P/N)» упізнається за шматком «Артикул». Для XML звірка точна, слово в слово, — інакше теги vendor і vendorCode плуталися б між собою.

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

ПолеЗаголовки, які впізнаються
НайменуванняНаименование, Найменування, Товар, Номенклатура, Name, Назва, Название
ЦінаЦена, Price, Опт, Дилер, Ціна
Ціна РРЦRecommendedPrice, РРЦ, МРЦ, Роздріб, Розница
Артикул виробникаArtNumber, Артикул, P/N, Article, SKU, Код произв, Code, ISBN, EAN
Артикул контрагентаProductID, Код
Статус наявності (з прайсу)amount, Quantity, Наличие, Наявність, Кол-во, Кількість, Qty, Stock, Склад, Резерв, Колво, Остатки, Залишок
ВиробникVendor, Производитель, Виробник, Бренд, Brand, Марка
Категорія з прайсуcategory, CategoryName, Group, Категория, Категорія, Группа
МодельМодель
Опис короткийОписание, Опис, Description
ВагаВес, Вага, Weight
ГарантіяГарантия, Гарантія, Гар (мес)

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

Одне поле дістається одній колонці. Щойно поле зайняте, наступні колонки з тим самим полем пропускаються — інакше «ЦенаГРН», «ЦенаРЦ» і «Цена промо» стали б ціною всі три. Виграє та колонка, що стоїть у файлі лівіше. А якщо один заголовок підходить під ключі різних полів, дістанеться те поле, чий ключ стоїть у словнику раніше.

Для таблиць програма після словника заглядає в перші рядки даних — у двох випадках, які інакше розмічалися б неправильно:

  • Колонки з назвою немає, а є «Модель». Назву програма складає з виробника й моделі, адресою C,{ },D. Якщо ж модель у файлі вже починається з виробника («Aiwa JH24DT180S»), назвою стає сама модель — без «Aiwa Aiwa …».
  • «Артикул» складається лише з цифр, а поруч є окрема «Модель». Такий артикул — внутрішній код постачальника, тож він стає «Артикулом контрагента», а «Артикулом виробника» — модель. Модель із брендом усередині артикулом виробника не стає: з нею не спрацювало б зіставлення з каталогом.

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

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

Механізм вимикається однією настройкою: «Визначати колонки автоматично» у розділі «Прайс-листи», група «Завантаження та розбір», вікна Кабінет → Налаштування системи. За замовчуванням вона увімкнена.

Налаштування «Визначати колонки автоматично» в розділі «Прайс-листи» кабінету
1Перемикач «Визначати колонки автоматично»
  1. Перемикач «Визначати колонки автоматично» вмикає автопідбір адрес колонок для нових і оновлених прайс-листів.

Друга умова важливіша за першу: розбір працює лише на новому прайсі. Для книги Excel і для CSV — доки в джерелі не збережені імена колонок; для XML — доки, крім того, в жодного поля немає адреси.

Подвійна умова для XML зʼявилася після випадку, коли автоматично додана колонка «Валюта» перевела гривневий прайс у долари й помножила всі ціни на курс. Для JSON цього механізму немає взагалі.

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

Що робить кнопка «Зіставити автоматично»

Кнопка з чарівною паличкою стоїть угорі вікна майстра. Вона робить не те саме, що розбір файлу.

Словник із 142 заголовків кнопка не використовує. Вона бере заголовок кожної ще не розміченої колонки й звіряє його з назвами полів системи — по входженню в будь-який бік, без урахування регістру.

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

Що не зіставилося назвою, кнопка передає AI — але лише тоді, коли лишилися колонки із заголовками. Поки він працює, висить повідомлення «AI аналізує прайс…» — чекати доводиться до хвилини. Результат — повідомлення «AI зіставив полів:» і число. Це число загальне: у нього входять і пари, знайдені за назвою поля, а не тільки те, що дав AI.

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

Відповідь сервер перевіряє: усе, чого немає в списках, відкидається, і зайняти одну колонку двічі AI не дасть.

Обидва кроки нічого не псують. Колонки, яким ви вже призначили поле, кнопка не чіпає, і вже зайняте поле нікому не віддасть. Тож натиснути її на половині роботи безпечно: вона добере те, що лишилося, а вашу частину лишить як є.

Три колонки були без поля: «Категорія» і «РРЦ» кнопка знайшла за назвою поля, «Наличие на складе» віддала AI — у підсумку одне число на всі
Що покаже кнопка після натискання. Коли за назвами розібрано всі колонки із заголовками, до AI кнопка не звертається. Гілка «Так» під ромбом «Сервер відповів?» — звичайний випадок: число в повідомленні рахує і збіги за назвами, і пари від AI; якщо AI відмовив, слідом іде червоне повідомлення з причиною. Гілка «Ні» — збіги за назвами тоді вже збережені, а «Помилка AI-підказки» зʼявиться лише тоді, коли їх не знайшлося зовсім
НіТакТакТакНіAI відмовивНіТакНіНатиснуто «Зіставитиавтоматично»Вільні колонки звіряютьсяз назвами полів системиЗнайдені паризберігаються в розміткуЛишилися вільні колонкиіз заголовком?Разом знайденохоч одну пару?Запит до AIСервер відповів?Із відповіді беруться тільки пари,де колонка й поле ще вільні«AI зіставив полів:» і число«Не вдалося зіставитиавтоматично»Червоне повідомленняз причиною відмовиЩось знайшлосяза назвами полів?«Помилка AI-підказки»
  • Початок або кінець
  • Дія або результат
  • Розвилка: далі шлях залежить від відповіді

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

Як налаштовується щойно створене джерело

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

Далі вирішує одна умова: якщо не знайшлася ціна або не знайшлося ключове поле (назва чи артикул) — викликається AI. Знайдено і ціну, і ключове поле — до AI не доходить зовсім. На звичайному прайсі так і буває, чекати нема чого.

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

Коли підключається AI, а коли до нього не доходить. Жовтий ромб — розвилка: обидві дороги ведуть до одного «готово», просто різними шляхами
ТакНіТакНіДжерело щойно створенеВраховується те,що знайшов розбір файлуЗаголовки звіряютьсяз назвами полівЗнайдено цінуі ключове поле —назву або артикул?Джерело готове:крок «Завантаження товарів»Викликається AI — добирає полез колонок, що лишилисяТепер є цінаі назва або артикул?«Не вдалося визначити цінуабо ключове поле»і кнопка «Налаштувати колонки»
  • Дія або результат
  • Розвилка: далі шлях залежить від відповіді

Сам процес видно в картці як чотири кроки під заголовком «Налаштовуємо джерело автоматично»: «Формат файлу», «Зіставлення колонок», «Завантаження товарів», «Готово». Для JSON другий крок нічого не дає — автопідбору для цього формату немає на жодному з трьох рівнів.

Сценарії

Новий прайс зі звичними заголовками

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

Колонки без заголовка або з підписом «Кол-2»

Ні словник, ні звірка з назвами полів таку колонку не впізнають. Відкрийте майстер і натисніть «Зіставити автоматично». Що вийде: AI отримає приклади значень і за ними призначить поле; колонки, які ви вже розмітили, він не чіпає.

Розмітка заплуталася остаточно

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

Що робити, коли автопідбір не спрацював

Розбір частих проблем
Що ви бачитеЧому такЩо зробити
«Не вдалося зіставити автоматично», часом слідом червоне «AI не знайшов зіставлень» Автопідбір не знайшов жодної нової пари: заголовки не схожі на назви полів системи, а AI нічого не дав. Другий випадок із тим самим текстом — AI відповів, але всі його пари вже зайняті Перевірте, чи не призначене потрібне поле іншій колонці — одне поле дістається одній колонці; далі розмічайте руками, почніть із назви, ціни й артикула (як працює кнопка)
«Помилка AI-підказки», «AI повернув порожню відповідь», «Не вдалося розібрати відповідь AI» Запит до AI не вдався або відповідь не розібралася. «Помилка AI-підказки» буває й тоді, коли у вас немає доступу до вікна прайс-листів Повторіть пізніше. Пари, знайдені за назвами полів, при цьому вже застосовані — заново вони не загубляться
«Файл прайсу не знайдено або не завантажено» Автопідбір викликано, а файлу в джерелі немає Завантажте файл у секції «Джерело» картки (завантаження прайсу)
«Не вдалося визначити ціну або ключове поле. Перевірте зіставлення колонок вручну.» Автоналаштування нового джерела не знайшло ціну і/або назву з артикулом Натисніть «Налаштувати колонки» і розмітьте те, чого бракує (автоналаштування джерела)

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

Натиснув «Зіставити автоматично», а результат гірший, ніж був при завантаженні файлу. Чому?

Це різні механізми. Розбір файлу звіряє заголовки зі словником, де є «Кол-во» і «P/N». Кнопка звіряє заголовок із назвою поля системи, а решту віддає AI. Детальніше: три механізми.

Завантажив новий файл у розмічене джерело — чому автопідбір не спрацював?

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

Скільки чекати, поки AI розмітить колонки?

До хвилини. Поки AI працює, висить повідомлення «AI аналізує прайс…», потім — «AI зіставив полів:» і число. Детальніше: кнопка «Зіставити автоматично».

Чи можна вимкнути автопідбір?

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

Чому для JSON автопідбір нічого не дає?

Для JSON автопідбору немає на жодному з трьох рівнів, розмітка повністю ручна. Детальніше: розмітка JSON.

Суміжні теми

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