Як вимкнути або видалити категорію і не втратити товари

21 хв

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

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

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

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

Що вміє

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

Меню
Довідники → Категорії → кнопка кошика над деревом
Вимкнення
картка категорії, перемикач «Активність категорії»
Право доступу
Кнопка "Видалити категорію"; без нього немає ні кошика, ні клавіші Delete
Підготувати
перенесіть товари, які треба зберегти; подивіться лічильник у картці

Як вимкнути категорію разом з гілкою

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

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

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

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

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

Що стається з товарами при трьох діях над категорією
Вимкнулиперемикачем у картціПеретягнулина інший вузолВидалиликнопкою кошикаКатегорія в деревіЩо ви зробилиКатегорія, підкатегоріїі всі товари гілкистають неактивнимиУвімкнення назадповертає тільки саму категорію.Товари вмикають окремоЗмінюється тільки місцев дереві та порядок сортуванняТовари лишаються у своїхкатегоріях,адреса сторінки не змінюється.Повна назва оновлюєтьсяв усій гілці одразуКатегорія, підкатегоріїі всі товари гілкивидаляються назавждиРазом з описами, фото,характеристикамита правилами прайсів для цієїкатегорії.Скасувати не можна
  • Дія або результат
  • Розвилка: далі шлях залежить від відповіді

Що зникає разом з категорією

Кнопка кошика над деревом видаляє виділену категорію. Діалог називається «Видалення категорії» і питає «Видалити категорію "‹назва›"?», кнопка підтвердження — «Так». Далі з'явиться «Чекайте, видаляється категорія та товари, що знаходяться в ній...», а по завершенні — «Категорія видалена».

Діалог «Видалення категорії» для категорії «Коврик для мыши»
1Заголовок «Видалення категорії»
2Назва категорії в запитанні
3Кнопка «Так»
  1. Заголовок «Видалення категорії» — з'являється при видаленні окремої підкатегорії.
  2. Назва категорії в запитанні підтверджує, яку саме категорію буде видалено.
  3. Кнопка «Так» безповоротно видаляє категорію та її товари — підтверджувати не потрібно.
Ліва гілка — звичайна категорія, права — корінь, де без слова ВИДАЛИТИ нічого не запускається; далі обидві чекають на відповідь сервера
Звичайна категоріяКорінь «Список категорій»НіТакТакВідмова в діалозіВідмова в діалозіБракує правабо відмоваПомилка сервераУспіхНатиснули кошик над деревомЩо виділено в дереві?Діалог «Видалення категорії»Діалог «Видалення всіхкатегорій і товарів»з полем для словаВведено слово ВИДАЛИТИ?«Слово підтвердження введеноневірно — видалення скасовано»Відповідь сервераДіалог закривається,нічого не видаляєтьсяЧервоне повідомлення,категорія лишається в деревіВікно «Status: … Error: …»дерево показує стан до видалення«Категорія видалена»дерево оновлюється
  • Початок або кінець
  • Дія або результат
  • Розвилка: далі шлях залежить від відповіді

Видаляється вся гілка разом з товарами, і скасувати це не можна. Разом із категорією та всіма її підкатегоріями зникають: товари, їхні описи, характеристики, фотографії (файли теж, а не тільки записи), відео, знижки, акції, питання й відповіді, адреси сторінок і прив'язки до магазинів. Кошика, куди це складається, у програмі немає, і повернути видалене нічим.

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

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

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

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

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

Як видалити категорію і зберегти товари

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

Як прибрати порожні категорії

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

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

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

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

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

Як очистити весь каталог

Якщо в дереві виділено кореневий вузол «Список категорій», кнопка кошика робить зовсім інше. Діалог змінює заголовок на «Видалення всіх категорій і товарів», питає «Видалити всі категорії та товари, що знаходяться в них?» і додає поле, у яке треба ввести слово ВИДАЛИТИ. Підтвердження запускає повне очищення: усі категорії, усі товари з описами, фото, характеристиками, питаннями й відповідями, залишками на складах і прив'язками до магазинів, посадкові сторінки; лічильники ID скидаються на початок, а в хмарному сховищі стираються теки із зображеннями категорій і товарів.

Очищення каталогу підтверджується словом. У діалозі «Видалення всіх категорій і товарів» під запитанням стоїть поле вводу: «Це видалить УСІ категорії та товари без можливості відновлення. Щоб підтвердити, введіть слово ВИДАЛИТИ». Кнопка «Так» без цього слова нічого не запускає — з'явиться червоне «Слово підтвердження введено невірно — видалення скасовано».

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

Служба тримає щонічні копії всієї бази за останній тиждень. Відновлюють їх вручну: «Кабінет» → «Налаштування системи» → у лівій колонці розділ «Інші налаштування» → плитка «Відновлення архівної копії БД». Відкотити ними одну дію не вийде:

  • копія повертає всю базу на добу назад разом із замовленнями й правками;
  • стерті теки із зображеннями в копію не входять узагалі.
Діалог «Видалення всіх категорій і товарів» при виборі кореня дерева
1Заголовок «Видалення всіх категорій і товарів»
2Текст запитання про видалення всього каталогу
  1. Заголовок змінюється на «Видалення всіх категорій і товарів», коли виділено корінь дерева.
  2. Текст запитання попереджає, що видаляться всі категорії та товари в них — підтверджувати не можна.

Що робити, якщо видалення обірвалося

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

  1. видаляються файли зображень самих категорій гілки, у журнал операцій записуються назви категорій, які зараз зникнуть, і прибираються адреси сторінок цих категорій;
  2. видаляються файли фотографій товарів, для яких ці категорії основні, — пачками по 500 товарів;
  3. видаляються самі товари з описами, характеристиками, знижками та рештою даних, а також правила прайс-листів, прив'язані до цих категорій;
  4. останніми з бази видаляються самі категорії: записи, ланцюжки предків, назви, прив'язки до магазинів;
  5. наостанок, якщо ввімкнено видалення «на льоту» через тунель, видалене прибирається й на сайті.

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

  • Якщо сервер повернув помилку, з'явиться вікно з текстом «Status: … Error: …», а категорія залишиться в дереві. Дерево в цей момент показує стан до видалення: що встигло статися насправді, видно після повторного відкриття вікна «Категорії».
  • Якщо сервер відмовив (наприклад, бракує прав), з'явиться червоне повідомлення — «Категорію видалити не вдалося» або текст про права, — і нічого не видаляється.
  • Синє «Чекайте, видаляється категорія…» саме зникає через 200 секунд, навіть якщо сервер ще працює. Це не знак завершення. Завершення — це «Категорія видалена», після якого вузол зникає з дерева.

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

Якщо сервер повернув помилку, синє «Обробка даних, чекайте» зникає, кнопки знову стають активними і з'являється червоне «Операція не виконана!». Тоді просто запустіть переіндексацію ще раз.

Сценарії

Зняти напрямок з продажу повністю

Що зробити. Клікніть категорію в дереві й вимкніть у картці перемикач «Активність категорії».

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

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

Прибрати вітринну добірку, не втративши товарів

Що зробити. Виділіть у дереві паритетну категорію-добірку, натисніть кошик і підтвердьте «Так».

Що вийде. Зникають добірка з підкатегоріями, дзеркальні посилання на товари в ній і правила прайс-листів, прив'язані до цих категорій.

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

Що робити, коли товари вимкнулися чи зникли

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

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

Я ввімкнув категорію назад, а товари не з'явилися. Це збій?

Ні. Увімкнення повертає тільки саму категорію; підкатегорії й товари вмикайте окремо масовою операцією в списку товарів базового каталогу. Детальніше — вимкнення категорії.

Випадково видалив категорію з товарами — можна відновити її з кошика?

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

Можна масово видалити пусті категорії БК?

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

Скільки триватиме видалення великої гілки?

Заздалегідь програма не показує, і кнопки «Стоп» немає. Синє «Чекайте…» зникає через 200 секунд, навіть якщо сервер ще працює; завершення — повідомлення «Категорія видалена». Детальніше — обрив видалення.

Чи видаляться товари, які лежать у категорії лише посиланням з добірки?

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

Суміжні теми

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