Як зібрати власне правило зіставлення товарів

18 хв

Elbuz дозволяє скласти власне правило зіставлення під конкретного постачальника: яке поле каталогу з яким полем прайсу порівнювати і за якою умовою. Після цього кожне завантаження прайсу звʼязує такі рядки без вас.

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

  • Артикул захований у довгій назві — умова ~ знайде артикул каталогу всередині назви з прайсу.
  • Пари збігаються випадково — другий рядок правила додає умову «і», наприклад «і бренд той самий».
  • Назви різняться службовими словами — список «Очищати слова» прибирає їх з обох сторін перед порівнянням.
  • Коротке значення чіпляється до чого завгодно — мінімальна довжина відкидає «1», «шт» і «-».

З чого почати: «Налаштування зіставлення товарів» прайсу → «Додати вид зіставлення» → «Індивідуальний тип зіставлення».

Що вміє власне правило

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

  • Будь-яка пара полів — поле каталогу, поле прайсу й одна з пʼяти умов порівняння.
  • До десяти рядків через «і» — пара ставиться, лише коли збіглися всі, плюс галочки «Враховувати виробника», «… категорію», «… контрагента», «… магазин».
  • Очистка значень — кирилиця, спецсимволи, список слів і мінімальна довжина, окремо для кожного рядка.
  • Пошук через індекс — умови i~ та i~~ беруть найкращий збіг повнотекстового пошуку.
  • Скільки завгодно правил на один прайс — кожне зі своєю назвою й місцем у черзі видів.

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

Інші входи
«Список прайс-листів» → джерело → «Ще» → «Правила обробки» → «Налаштування зіставлення товарів»
Право доступу
вікно «Типи зіставлення товарів» у «Правах груп»
Підготувати
прайс, у якому потрібна колонка справді заповнена

Пункту меню у вікна немає. Правило діє лише в тому прайсі, де його створено.

Як додати індивідуальний вид

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

Далі — наскрізний приклад. Постачальник «Кабель-Опт» присилає дві колонки: «Найменування» зі значенням Кабель USB-C Baseus CAKW-01 1м і «Виробник» зі значенням Baseus. Окремої колонки з артикулом у нього немає. У каталозі артикул виробника лежить у своєму полі — CAKW-01, бренд той самий.

Крок 1. Додати вид

«Додати вид зіставлення» → «Індивідуальний тип зіставлення». Програма спитає назву: діалог «Новий тип зіставлення», поле «Назва типу зіставлення», Порожню назву не приймає — скаже «Необхідно ввести назву типу зіставлення!». Назва довільна, у прикладі назвемо вид «Артикул у назві + виробник».

Розкрите меню кнопки «Додати вид зіставлення» з переліком недоданих видів
1Пункт «Індивідуальний тип зіставлення»
2Інші пункти меню
  1. Порожній шаблон, який можна додавати до прайс-листа скільки завгодно разів.
  2. Види зіставлення, яких у цього прайс-листа ще немає; вже додані сюди не потрапляють.

Після додавання зʼявиться тост «Успішно додано», а вид стане в лівий список. Місце в списку задайте перетягуванням: цей вид точніший за пошук по найменуванню, отже має стояти вище за нього.

Як вибрати поля для рядка правила

Крок 2. Додати рядок правила

Праворуч відкриється таблиця з колонками «Поле базового каталогу», «Логічна умова для порівняння», «Поле з прайс-листу», далі галочки очистки й обліку, «Мінімальна довжина», «Порядок» і «Активність». У порожнього виду рядків немає — правило збирається з нуля.

Кнопка «+» над таблицею відкриває список полів базового каталогу; подвійний клік по потрібному рядку переносить поле в правило. Зайвий рядок прибирає кошик. Новий рядок створюється з умовою =, мінімальною довжиною 6 і ввімкненою «Активністю»; поле прайсу в нього поки порожнє.

Панель налаштування виду зіставлення «Пошук за найменуванням товару» з таблицею полів правила
1Кнопка «+»
2Поле базового каталогу
3Логічна умова для порівняння
4Поле з прайс-листу
5Мінімальна довжина
6Активність
  1. Кнопка «+» над таблицею відкриває список полів базового каталогу — поле переноситься в правило подвійним кліком.
  2. Колонка «Поле базового каталогу» — сторона каталогу, не редагується прямо в комірці.
  3. Колонка «Логічна умова для порівняння» — п'ять значень, від точного співпадіння до пошуку за входженням.
  4. Колонка «Поле з прайс-листу» — сторона постачальника, обирається кнопкою в комірці.
  5. Колонка «Мінімальна довжина» — значення коротші відкидаються з порівняння з обох сторін.
  6. Колонка «Активність» — вимкнений рядок у прогін не йде.

У списку полів каталогу — усі поля картки товару плюс усі активні атрибути ваших товарів, тому рядків там тисячі (у нашій базі понад три тисячі): користуйтеся фільтром.

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

Чотири поля зі списку вибирати не можна — product_selected, progressbar_product_scoring_filling_card, progressbar_total_attribute_empty і «Довжина» (код product_length): вони існують лише в сітці каталогу, даних за ними немає, і порівняння не відпрацює.

Розкритий список полів базового каталогу над таблицею правила, з фільтром «Найменування»
1Колонка «Найменування»
2Колонка «ID поля»
3Рядок фільтра над сіткою
4Підказка про подвійний клік
  1. Назви повторюються — самі по собі вони не називають поле однозначно.
  2. Єдина колонка, яка однозначно називає поле.
  3. Список полів тисячорядковий, без фільтра його не пройти.
  4. Саме подвійним кліком обране поле переноситься у правило.

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

Діалог «Виберіть» з розкритим списком полів прайс-листу для комірки правила зіставлення
1Випадаюче поле
2Список значень
  1. Єдиний елемент діалогу — потрібне значення шукають введенням з клавіатури.
  2. Тільки назви полів прайсу, без кодів і без позначки, яка колонка файлу куди вантажиться.

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

Перед вибором подивіться в сітку товарів цього прайсу і переконайтеся, що колонка справді заповнена.

У прикладі перший рядок правила виглядає так: поле каталогу «Артикул виробника», поле прайсу «Найменування».

Яку умову порівняння вибрати

Крок 3. Вибрати умову

У колонці «Логічна умова для порівняння» рівно пʼять значень. Ось що кожне з них дасть на наших даних: у каталозі CAKW-01, у прайсі Кабель USB-C Baseus CAKW-01 1м.

УмоваЩо робитьЗбіг на прикладіКоли брати
=повний збіг обох значеньні — рядки різніартикули, штрихкоди, посилання: там, де значення повне й однакове з обох боків
~значення каталогу шукається всередині значення прайсутаку прайсі довгий рядок, у каталозі короткий: артикул усередині найменування
~~значення прайсу шукається всередині значення каталогунідзеркальний випадок: довга назва в каталозі, короткий артикул у прайсі
i~те саме, що ~, але через пошуковий індекс прайсівзалежить від індексулише при ввімкненому індексі (пошуковий індекс)
i~~те саме, що ~~, але через пошуковий індекс каталогузалежить від індексулише при ввімкненому індексі

Перед порівнянням програма прибирає з обох значень усі пробіли — завжди, незалежно від галочок. Тому «Кабель USB-C 1 м» і «Кабель USB-C 1м» для неї однакові, а наш рядок прайсу до моменту порівняння виглядає як кабельusb-cbaseuscakw-011м. Артикул cakw-01 у ньому є, отже умова ~ спрацює.

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

Як звузити правило: мінімальна довжина і другий рядок

Крок 4. Мінімальна довжина

Мінімальна довжина міряється після всієї очистки — після зняття кирилиці, спецсимволів, слів зі списку й пробілів. І вона не «пропускає» рядок повз перевірку, а видаляє коротке значення з порівняння з обох боків: із каталогу і з прайсу. Сенс перевірки — відсікати сміттєві короткі значення на кшталт «1», «шт» або «-», під які інакше підійшло б будь-що. Значення 0 вимикає перевірку.

У нашому прикладі cakw-01 — сім символів, при значенні 6 проходить.

Пастка на майбутнє: якщо другим рядком правила ви поставите «Виробник = Виробник» і лишите там ту саму мінімальну довжину 6, бренд Baseus (рівно шість) пройде, а LG (два) — ні, і всі товари цього бренду зникнуть із порівняння. Правило для них не спрацює взагалі. Для коротких значень ставте 0.

Мінімальна довжина, галочки очистки й галочки «Враховувати …» — властивості окремого рядка правила, а не виду цілком. У кожного рядка свої.

Крок 5. Другий рядок і як рядки складаються

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

Додамо в приклад другий рядок: поле каталогу «ID виробника», умова =, поле прайсу «Виробник», мінімальна довжина 0. Назви полів різні, і це не помилка: у списку полів каталогу бренд підписаний саме «ID виробника», а під час порівняння програма сама підставляє замість ідентифікатора назву бренду. Тепер артикул мусить знайтися в назві і бренд мусить збігтися — випадкових пар стане помітно менше.

Одна плата за це: у товару каталогу без бренду значення виходить порожнім. З рядками прайсу, де виробник вказаний, такий товар уже не зіставиться, зате може зійтися з рядком, у якого виробник теж порожній. Якщо після другого рядка правило «перестало знаходити половину», перевірте спочатку виробника в картках.

Обмеження й тихі місця, про які варто памʼятати:

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

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

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

Як прибрати зайві слова перед порівнянням

Під таблицею полів є поле «Очищати слова» з плейсхолдером «список слів, кожне на новому рядку». Формат саме такий: одне слово на рядок.

Список належить тому рядку правила, який виділений у таблиці, а не виду цілком. У правилі з двох рядків списків слів теж два, і ви бачите список того рядка, що зараз підсвічений. Клацнули по іншому рядку — поле перезаповнилося його списком.

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

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

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

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

Що відбувається зі значенням одного рядка правила до порівняння. Галочки діють на обидві сторони, а мінімальна довжина міряється вже після всіх очисток
ТакНіТакНіЗначення поля каталогу і поляпрайсупереводяться в нижній регістрHTML-коди лапок, амперсанда,пробілуі кутових дужок стаютьзвичайними символамиУ рядку правила ввімкнено«Видаляти кирилицю»?Вирізаються кириличні літериВвімкнено«Видаляти спецсимволи»?Вирізаються пробілиі спецсимволиВирізаються слова зі списку«Очищати слова»цього рядка, потім глобальніправила очищення слівПрибираються всі пробілиЗначення, коротші за «Мінімальнадовжина»,відкидаються з обох сторін.Значення 0 вимикає перевіркуПорівняння за «Логічна умова дляпорівняння»і галочками «Враховувати …»
  • Дія або результат
  • Розвилка: далі шлях залежить від відповіді

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

Нижня частина панелі з полем «Очищати слова», кнопками та згенерованим списком слів
1Поле «Очищати слова»
2Кнопка «Сформувати список слів»
3Кнопка «Відкрити глобальні правила очищення слів»
4Зібрані слова
  1. Слово на рядок; слова вирізаються з обох сторін порівняння, і список свій для кожного рядка правила.
  2. Збирає кандидатів із незіставлених товарів цього прайс-листа; кнопка безпечна — сама нічого не записує.
  3. Веде до правил очищення слів, спільних для всіх прайс-листів.
  4. Зібрані слова виводяться під кнопкою; у поле «Очищати слова» їх переносять вручну.

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

Коли працюють умови i~ та i~~

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

Обидва перемикачі живуть у вікні «Налаштування системи», розділ «Пошук». Це небезпечні налаштування: програма перепитає «Налаштування впливає на роботу всієї системи. Застосувати зміну?».

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

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

Обидва пошукові індекси вмикаються окремо і за замовчуванням вимкнені: поки індекс не ввімкнено, умова i~~ не працює.

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

Як перевірити правило

Передперегляду правила й пробного прогону у вікні немає. Робочий порядок такий: змінили правило — запустили зіставлення — подивилися журнал і сітку товарів прайсу.

  • Скільки знайшов кожен вид, пише журнал роботи рядком «Всього знайдено товарів: N».
  • Які пари поставлено, видно в сітці товарів прайсу: поля «Товар знайдено», «ID товару БК» і колонка «Вигляд прив'язки».
  • Сумісність полів програма не перевіряє: числове поле каталогу й текстове поле прайсу виберуться поруч без попередження.
  • Чи заповнене поле прайсу у вашого джерела, список полів не показує — дивіться сітку товарів прайсу.

Запуск зіставлення знімає всі звʼязки прайсу. Як не втратити ручні пари — Як перезапустити зіставлення прайсу.

Сценарії

Артикул у назві, а бренд окремою колонкою

Що зробити. Додайте індивідуальний вид. Перший рядок: «Артикул виробника» ~ «Найменування». Другий рядок: «ID виробника» = «Виробник», мінімальна довжина 0. Перетягніть вид вище за «Пошук за найменуванням товару».

Що вийде. Пара ставиться, коли артикул каталогу знайшовся в назві рядка і бренд збігся: CAKW-01 у «Кабель USB-C Baseus CAKW-01 1м» від Baseus.

Чого не буде. Товари каталогу без бренду не зіставляться з рядками, де виробник указаний. Рядок правила з порожнім полем прайсу випадає з правила мовчки.

Назви в прайсі й каталозі різняться службовими словами

Що зробити. Виділіть рядок правила, натисніть «Сформувати список слів» і перенесіть зайві слова в поле «Очищати слова» — по слову на рядок.

Що вийде. Слова прибираються з обох сторін порівняння до вимірювання мінімальної довжини, і назви, що різнилися лише ними, збігаються.

Чого не буде. Слово вирізається як підрядок: «про» зіпсує «профіль». Список діє лише на той рядок правила, який був виділений.

Правило звʼязує товари випадково

Що зробити. Додайте другий рядок правила або ввімкніть у рядку «Враховувати виробника» чи «Враховувати категорію»; підніміть мінімальну довжину.

Що вийде. Пара ставиться, лише коли збіглися всі рядки й умови галочок, а короткі значення випадають з порівняння.

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

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

Скільки рядків правила враховується?

До десяти, у порядку колонки «Порядок»; одинадцятий і далі не застосуються. Враховуються тільки активні рядки, у яких заповнені обидва поля й умова (рядки правила).

Додав рядок правила, а він не спрацьовує. Чому?

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

Чому умови i~ та i~~ нічого не дають?

Їм потрібен увімкнений пошуковий індекс: i~ — індекс прайсів, i~~ — індекс каталогу. Без жодного індексу рядок мовчки пропускається, а коли ввімкнено не той — пропускається весь вид (пошуковий індекс).

Як перевірити правило, не запускаючи зіставлення?

Ніяк: пробного прогону немає. Результат видно після запуску — у журналі роботи по кожному виду і в сітці товарів прайсу (перевірка правила).

Чи можна завести власний вид одразу для всіх прайсів?

Ні. Індивідуальний вид додається в конкретний прайс, а довідник «Види зіставлення товарів» нових видів не приймає (довідник видів).

Чому в списку полів каталогу кілька «Найменувань»?

Список містить усі поля картки й активні атрибути, і назви в ньому повторюються. Орієнтуйтеся на колонку з кодом поля: вона називає поле однозначно.

Суміжні теми

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