Як оновити каталог із прайс-листів постачальників

14 хв

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

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

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

З чого почати: сценарій «Перше налаштування».

Розмова з підтримкою — замість читати: навіщо це потрібно, що налаштувати і що ви отримаєте.

Що вміє оновлення каталогу

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

Пункту меню й ярлика на робочому столі у вікна «Оновлення базового каталогу» немає. Воно відкривається тільки з вікна «Прайс-листи».

Де: Довідники → Обробка прайс-листів → Список прайс-листів.

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

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

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

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

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

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

Що програма робить під час оновлення

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

  1. Додавання категорій — якщо ввімкнено копіювання структури категорій із прайсу.
  2. Оновлення товарів — головний крок: значення з прайсів лягають у поля каталогу за зв'язками. Поля з позначкою «Очищати поле БК перед оновленням» стираються тут же, перед записом нових значень, окремого рядка в журналі це не дає.
  3. Оновлення РРЦ — окремим кроком, якщо ввімкнено контроль рекомендованої ціни.
  4. Примусове оновлення полів — для зв'язок, позначених «Примусово оновлювати з цього джерела».
  5. «Оновлено товарів: N» — перша цифра, заради якої все затівалося.
  6. Оновлення історії цін — скільки точок додано за сьогодні.
  7. Додавання нових товарів і «Додано товарів: N» — якщо ввімкнено.
  8. Зіставлення однакових товарів — новоствореним товарам програма шукає ті самі позиції в інших прайсах.
  9. Оновлення активності та наявності товарів, розрахунок прибутку, оновлення залишків по магазинах.
  10. Оновлення атрибутів і оновлення фото — платні кроки — скільки коштує оновлення.
  11. Сортування й індексування товарів.
  12. «Оновлення даних завершено!» і «Витрачено часу».

Крім перелічених кроків прогін завжди робить ще кілька речей, яких у журналі не видно:

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

Постачальник надсилає прайс на п'ять тисяч позицій. Щоб перенести самі лише ціну й наявність руками, треба відкрити п'ять тисяч карток і в кожній поміняти два поля. Оновлення робить те саме за одне натискання й наприкінці називає, скількох товарів торкнулося.

Чия пропозиція потрапить у товар

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

Для кожного товару прогін проходить шість кроків.

  1. Відбирає учасників. У виборі бере участь рядок прайсу, зіставлений із товаром, з групи контрагента, позначеної в сітці груп. Пропозиції вимкнених постачальників у виборі не беруть участі — ні в порівнянні цін, ні в записі. У прогоні по всіх прайсах — ще й з увімкненого основного прайсу (дочірні прайси не беруть участі). Якщо позначено «При виборі ціни не враховувати прайси з прапором РРЦ», прайси рекомендованих цін випадають; якщо «Вибирати ціни більше за нуль» — випадають рядки без ціни.
  2. Відкидає аномально низькі ціни — тільки в прогоні по всіх прайсах і тільки якщо в полі «Ігнорувати аномально низьку ціну постачальника, %» стоїть число більше нуля (докладно нижче).
  3. Іде проходами за статусами наявності. Спершу розглядає пропозиції зі статусами, у яких більший «Пріоритет»; товари, яким на цьому проході нічого не дісталося, переходять до наступного.
  4. Порівнює ціни за «Типом вибору ціни»: мінімальна, середня або максимальна.
  5. Записує переможця. З його рядка в товар ідуть ціна і всі поля, увімкнені у «Зв'язках полів», а також постачальник, прайс і дата оновлення ціни. Товар із фіксованою ціною не змінює ціни, постачальника й дати оновлення ціни; інші поля йому пишуться.
  6. Скидає наявність товарам без пропозиції. Кому на жодному кроці нічого не дісталося, отримують статус наявності з прапором «Немає» і нульову кількість — якщо у «Зв'язках полів» увімкнені рядки статусу й кількості. Які саме товари потрапляють під скидання, залежить від того, по одному прайсу йде прогін чи по всіх.
Картка «Вибір ціни» у вікні «Оновлення базового каталогу»
1Тип вибору ціни
2Поле для вибору ціни
3Вибирати ціни більше за нуль
4Прайси з прапором РРЦ
5Ігнорувати аномально низьку ціну, %
  1. Тип вибору ціни: порівнюються не голі ціни, а ціна × коефіцієнт постачальника + значення пріоритету.
  2. Список «При виборі ціни використовувати поле» задає, яке поле рядка прайсу порівнювати.
  3. Флажок «Вибирати ціни більше за нуль» прибирає з порівняння рядки без ціни.
  4. Флажок про прайси з прапором РРЦ виключає такі прайси з вибору ціни.
  5. Поле «Ігнорувати аномально низьку ціну постачальника, %»: тут стоїть рекомендований поріг 50, 0 вимикає відсів. Працює лише в прогоні по всіх прайсах.

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

Як не пустити на сайт помилково низьку ціну

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

Поле стоїть у картці «Вибір ціни» і є тільки в спільному наборі — у вікні, відкритому з бургер-меню «Прайс-листи» або з вкладки «Товари» в режимі «Всі джерела». У вікні, відкритому кнопкою «Оновити мій каталог» з картки одного прайсу, поля немає. Значення — від 0 до 99; 0 або порожнє поле означає «вимкнено», так стоїть за замовчуванням.

Як відсів працює при кожному прогоні по всіх прайсах:

  1. Для кожного товару програма збирає ціни всіх його пропозицій з увімкнених основних прайсів, у яких ціна більша за нуль. Береться поле «Ціна» рядка — вже після наценки й перерахунку курсу, тобто те число, яке пішло б у каталог. Враховуються позначені групи контрагентів і позначка про прайси РРЦ. Пропозиції вимкнених постачальників у медіану не входять. Статус наявності не враховується: пропозиція «під замовлення» з нормальною ціною теж бере участь у розрахунку медіани.
  2. Товар, у якого менше двох таких пропозицій, не перевіряється: порівнювати нема з чим. Рахуються пропозиції, тобто прайси увімкнених постачальників, а не самі постачальники: два прайси одного постачальника дають дві пропозиції.
  3. Рахується медіана — ціна посередині впорядкованого ряду. На відміну від середнього арифметичного, одна помилкова ціна її майже не зсуває.
  4. Пропозиція, дешевша за медіану більше ніж на заданий відсоток, позначається й у виборі ціни не бере участі. Ціну товару дає наступний постачальник — за звичайними правилами вибору.
Приклад: п'ять постачальників, поріг 50%
ПостачальникЦіна в рядку прайсуЩо відбувається
А600Бере участь і виграє «мінімальну» — у каталог іде 600
Б619Бере участь; це медіана ряду 38, 600, 619, 640, 655
В і Г640 і 655Беруть участь
Д38Межа — 619 × (1 − 0,5) = 309,50. Ціна нижча, пропозицію відкинуто. Без відсіву в каталог пішло б 38

Коли в товару лише дві пропозиції, медіана — це середнє двох цін. Тому при порозі 50% нижча ціна відкидається, тільки якщо вона менша за третину вищої: 38 проти 619 — відкидається, 300 проти 619 — ні.

Що ви побачите після прогону:

  • у журналі операції — рядок «Проігноровано аномально низьких цін постачальників: N (нижчі за медіану інших постачальників більше ніж на 50%). Такі ціни підсвічені в товарах прайсу.», а за ним — від яких прайсів і скільки: «Прайс А — 12, Прайс Б — 3», до десяти прайсів, від найбільшої кількості. Якщо нічого не відкинуто, рядка немає;
  • на вкладці «Товари» картки прайсу ціна такого рядка підсвічена янтарним, а при наведенні — підказка «Ціну проігноровано при виборі ціни товару: вона нижча за медіану цін усіх постачальників більше ніж на поріг (пакетна обробка)». Ціна, що виходить за граничне значення відносно каталогу, підсвічена червоним — це інша позначка;
  • сам рядок прайсу не змінюється: ціна в ньому лишається такою, як прийшла від постачальника.

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

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

Почніть із порогу 50%: відкидається ціна, удвічі нижча за медіану. Звичайна різниця між постачальниками — одиниці й десятки відсотків, помилка валюти — десятки разів. Поріг 80–90% відсіче лише найгрубіші помилки; 10–20% почне відкидати законні акційні ціни.

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

Чим прогін по одному прайсу відрізняється від прогону по всіх

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

Чим відрізняються два прогони
ЩоПо одному прайсуПо всіх прайсах
НалаштуванняСвій набір цього прайсуСпільний набір
Серед чого вибирається пропозиціяТільки рядки цього прайсуРядки всіх увімкнених основних прайсів
Чи має бути прайс увімкненийДля вибору ціни — ні: вимкнений прайс теж оновлює товари. Але скидання наявності й очищення полів для вимкненого прайсу не виконуютьсяТак, вимкнені прайси не беруть участі
Відсів аномально низьких цінНемаєЯкщо задано поріг
Скидання наявності товарам без пропозиціїТоварам, зіставленим із рядками цього прайсу, і товарам, які були прив'язані до нього, зникли з нього і не мають пропозиції в жодному іншому увімкненому прайсіУсьому каталогу, зокрема товарам, заведеним руками й ні з чим не зіставленим
Очищення полів перед оновленнямТільки товари, зіставлені з цим прайсомУвесь каталог
Деактивація й видалення товарівУвесь каталог — що стається з такими товарамиУвесь каталог

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

Товар, який зник із прайсу, у прогоні по одному прайсу отримує «Немає в наявності», тільки якщо його більше немає в жодному увімкненому прайсі. Є в іншому — його наявність вирішить прогін по тому прайсу або по всіх. У прогоні по всіх прайсах «Немає в наявності» отримує кожен товар, якому не дісталося жодної пропозиції. Звузити це до товарів, які взагалі трапляються в прайсах, можна настройкою системи «При оновленні БК обробляти тільки знайдені товари з прайсів» (настройки системи). Що далі буває з такими товарами — деактивація, видалення за днями — у статті Що стається з товаром, якого немає в прайсах.

Сценарії

Перше налаштування: від зіставлених товарів до нічного оновлення

Що зробити:

  1. У вікні з бургер-меню «Прайс-листів» (спільний набір) перевірте, що саме оновлювати, і ввімкніть потрібні зв'язки полів — Які поля переносити з прайсу в каталог.
  2. Проженіть оновлення з фільтром на одну категорію й звірте кілька товарів — перший прогін без сюрпризів.
  3. Залиште ввімкненою настройку «Оновлювати каталог після завантаження» — запуск за розкладом.

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

Новий постачальник: завести асортимент з його прайсу, а ціни оновлювати по всіх

Що зробити: перший прогін запустити з картки прайсу нового постачальника кнопкою «Оновити мій каталог», далі покладатися на прогін по всіх прайсах — кнопкою з бургер-меню або нічним.

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

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

Постачальник час від часу помиляється з валютою чи нулями — така ціна не має потрапити на сайт

Що ввімкнути: у вікні з бургер-меню «Прайс-листи» (спільний набір) у картці «Вибір ціни» вписати в поле «Ігнорувати аномально низьку ціну постачальника, %» число 50. Запускати оновлення по всіх прайсах — кнопкою «Оновити» в цьому вікні або нічним прогоном.

Що вийде: товар, у якого щонайменше дві пропозиції (рядки прайсів), не отримає ціну, удвічі нижчу за медіану цін усіх постачальників; ціну дасть наступний постачальник. У журналі операції з'явиться рядок «Проігноровано аномально низьких цін постачальників: N…» з переліком прайсів, а в товарах цих прайсів відкинуті ціни підсвітяться янтарним. Постачальник виправив прайс — наступний прогін по всіх прайсах знову візьме його ціну до уваги.

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

Що робити, коли в каталозі не та ціна

Розбір частих проблем
Що ви бачитеЧому такЩо зробити
Прогін пройшов, у журналі «Оновлено товарів: 0» Жоден рядок прайсу не пройшов відбір: немає зіставлених товарів, вимкнено постачальника або джерело, група контрагента чи статус наявності не позначені в сітках, фільтр відсікає все Перевірити зіставлення товарів, активність джерела й постачальника, позначки в сітках і умови фільтра (частина каталогу)
Товар на сайті коштує в десятки разів дешевше, ніж у постачальників Один постачальник помилився в прайсі (валюта, зайвий чи пропущений нуль), і його ціна виграла «мінімальну». Відсів аномальних цін вимкнений, або оновлення йшло по одному прайсу, або товар є лише в цього постачальника Задати поріг у полі «Ігнорувати аномально низьку ціну постачальника, %» спільного набору й запустити оновлення по всіх прайсах (відсів аномальних цін)
«Проігноровано аномально низьких цін постачальників: N (нижчі за медіану інших постачальників більше ніж на N%). Такі ціни підсвічені в товарах прайсу.» Працює відсів: пропозиції, дешевші за медіану більше ніж на поріг, не брали участі у виборі. Після рядка перелічено прайси й кількість відкинутих цін у кожному Відкрити вкладку «Товари» названих прайсів, знайти ціни, підсвічені янтарним, й з'ясувати з постачальником. Якщо відкидаються законні ціни — підняти поріг (відсів аномальних цін)
Після оновлення одного прайсу товар отримав не найменшу ціну або «Немає в наявності», хоча в іншого постачальника він є Прогін по одному прайсу вибирає пропозицію тільки серед рядків цього прайсу Запустити оновлення по всіх прайсах — з бургер-меню «Прайс-листи» або дочекатися нічного прогону (один прайс і всі)

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

Натиснув «Оновити» — що саме зміниться в каталозі?

У чистій системі — ціна, РРЦ, собівартість, кількість і статус наявності зіставлених товарів. Назви, описи, фото й атрибути зміняться, лише коли ви ввімкнете їхні рядки — «Зв'язки полів».

Чи можна скасувати оновлення?

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

Чи можна побачити, що зміниться, до запуску?

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

Чи рахує оновлення ціну за моїми правилами?

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

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

Ні. Зв'язок рядка прайсу з товаром робиться до оновлення, в іншому вікні — зіставлення товарів. Незіставлений рядок оновлення може лише додати як новий товар.

Суміжні теми

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