---
type: "product"
id: 169
url: "https://prestadev.pl/uk/masove-vimknenna-abo-vidalenna-tovariv-iz-csv.html"
markdown_url: "https://prestadev.pl/uk/markdown/product/169.md"
title: "Видалення товарів Pro — масове видалення та вимкнення товарів у PrestaShop"
description: "Вимикайте або видаляйте товари й комбінації в PrestaShop за CSV, списком ID або фільтрами. Перевірте симуляцію, копію CSV і звіт перед масовою операцією."
image: "https://prestadev.pl/1049/masove-vimknenna-abo-vidalenna-tovariv-iz-csv.jpg"
sku: "PDPD"
brand: "PrestaDev.pl"
price: 98.00
price_tax_excluded: 79.67
currency: "PLN"
tax_included: true
availability: "in_stock"
is_pack: false
customization_required: false
condition: "new"
categories: ["Імпорт і експорт даних", "Головна", "Керування товарами та складом", "Модулі PrestaShop"]
language: "uk"
updated: "2026-09-27"
---

# Видалення товарів Pro — масове видалення та вимкнення товарів у PrestaShop

**Видалення товарів Pro** — це модуль для back office PrestaShop, який масово вимикає або видаляє товари та комбінації. Список для обробки можна сформувати трьома способами: завантажити файл CSV, вставити ідентифікатори в поле або вибрати товари за умовами, накладеними на каталог, без жодного файлу. Кожен запуск розбивається на короткі кроки, що виконуються у фоновому режимі, тож навіть список із 200 000 позицій не перевищує ліміт часу виконання PHP. Вікно прогресу показує смугу, темп і час, що залишився, а виконання можна призупинити, відновити й зупинити. Закриття браузера нічого не псує — після повернення модуль пропонує продовжити з рядка, на якому зупинився, і не обробляє нічого двічі. Перед кожною зміною модуль може зберегти резервну копію CSV, а після завершення формує звіт з одним рядком на ідентифікатор. Типово ввімкнений пробний запуск читає весь список і нічого не зберігає, а відсотковий поріг відхиляє запуск, що охоплює надто велику частину каталогу. Модуль працює виключно в панелі адміністрування, не реєструє жодного hook і не додає нічого до front office.

## Description

## Найважливіші функції

 ### Три способи побудувати список товарів

 - **Файл CSV або TXT** до 20 МБ. Ви вказуєте роздільник (крапка з комою, кома, табуляція, вертикальна риска) і номер колонки з ідентифікатором, рахуючи від нуля. Роздільник визначається автоматично під час завантаження, а модуль показує перший рядок файлу з номерами колонок, щоб не доводилося рахувати в голові. Решта колонок ігнорується, тож звіт, експортований з будь-якого інструмента, придатний до використання без обробки.
- **Вставлений список** — один ідентифікатор на рядок або розділені комами чи крапками з комою. Не потребує файлу чи прав на запис.
- **Селектор товарів** — список, побудований з умов, накладених на каталог, описаний нижче.

 ### Селектор товарів: список без файлу CSV

 Вкладка **«Виберіть товари»** будує той самий список з умов, а не з експорту. Доступні критерії:

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

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

 Два вікові критерії описані саме так, як вони працюють: схема PrestaShop не зберігає, *коли* у товару закінчився залишок і *коли* його було вимкнено, тому кількість днів рахується від останньої зміни рядка товару. Умова звучить так: «зараз немає залишку, а товар ніхто не чіпав X днів».

 ### За чим модуль розпізнає товари

 - артикул (reference), EAN-13, UPC та ідентифікатор товару (id\_product),
- MPN та ISBN у тих версіях PrestaShop, каталог яких має ці колонки — модуль перевіряє це сам і не пропонує поля, якого немає,
- **префікс для видалення** з початку кожного ідентифікатора, один раз (за префікса `AB` рядок `AB123` шукається як `123`),
- обробка кожного ідентифікатора **лише один раз**, коли список містить повтори,
- політика для ідентифікатора, що підходить до кількох товарів: залишити й повідомити, обробити всі або обробити перший.

 ### Що модуль робить із товарами

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

 ### Захист від помилки

 - **Пробний прохід**, увімкнений за замовчуванням: читає весь список, повідомляє, скільки ідентифікаторів знайдено, а скільки ні, і нічого не записує в каталог.
- **Відсотковий поріг каталогу** — прохід, що охоплює більший відсоток товарів, ніж установлено (за замовчуванням 30%), відхиляється. Нуль вимикає цей захист. Поріг можна свідомо обійти одноразовим позначенням поля; пробного проходу це ніколи не стосується.
- **Резервна копія CSV**, що зберігається перед зміною, з п’ятнадцятьма колонками: id\_product, id\_product\_attribute, reference, ean13, upc, name, link\_rewrite, price, quantity, active, id\_manufacturer, id\_supplier, id\_category\_default, categories та виконана дія.
- **Товари, що присутні в замовленнях** — на вибір: вимкнути замість видалення, залишити й повідомити або все одно видалити.
- **Права доступу**, що зчитуються з вкладки Каталог → Товари: право редагування дозволяє вимикати, право видалення — видаляти. Якщо права неможливо визначити, модуль відмовляє замість того, щоб припускати згоду.
- **Питання підтвердження** точно називає те, що станеться: окреме для пробного проходу, окреме для вимкнення, окреме для видалення з одного магазину й окреме для видалення з усіх магазинів інсталяції.
- **Ліміт 200 000 позицій** на один прохід. Більший вибір відхиляється з проханням звузити його, а не тихо обрізається.

 ### Прохід у фоновому режимі, без ліміту часу виконання

 - Список потрапляє до черги в базі даних, а прохід просуває її короткими кроками через AJAX. Довжина кроку налаштовується в діапазоні від 2 до 30 секунд; модуль показує поруч `max_execution_time`, заявлений сервером, і те, скільки реально має намір витратити на один крок.
- Вікно прогресу показує смугу, кількість оброблених рядків, темп, час, що минув, і час, що залишився.
- Прохід можна **призупинити, відновити та зупинити**. Те, що вже оброблено, залишається обробленим.
- Закриття вкладки перериває прохід, але нічого не руйнує — після повторного входу модуль пропонує продовжити з місця зупинки й не обробляє рядок двічі.
- Дві вкладки браузера не ведуть один прохід паралельно: завдання займається однією з них, а друга отримує про це інформацію.
- За вимкненого JavaScript екран надає кнопку **«Обробити один крок»**, яка просуває прохід вручну.

 ### Звіт та історія

 - Звіт CSV з одним рядком на ідентифікатор і колонками: line, identifier, result, id\_product, id\_product\_attribute, message.
- Колонка результату приймає одне зі значень: `ok`, `not-found`, `skipped`, `error` та `pending` для рядків, до яких зупинений прохід не дійшов.
- Колонка повідомлення містить **сталі англійські коди** — понад двадцять розрізнюваних ситуацій, від `deleted` і `detached` до `ambiguous`, `in-orders: skipped` чи `refused-by-core`. Коди не змінюються разом із мовою панелі, тож фільтр у таблиці працює незалежно від налаштувань back office. Усі вони пояснені у вкладці Допомога.
- Історія проходів показує номер, дату, магазин, дію, стан, кількість рядків, виконаних, незнайдених, пропущених і помилкових, а також тривалість.
- З історії можна завантажити звіт, резервну копію та вихідний список цього проходу, а непотрібний запис — видалити.
- Проходи, запущені із селектора, несуть в історії опис вибраних умов, з назвами бренду, постачальника, категорії та значення характеристики — а не лише номерами.

 ### Налаштування

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

 ### Multistore і робота кількох людей

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

 ## Для кого цей модуль

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

 ## Технічні вимоги

 - PrestaShop від 1.6.0.0 до 9.x,
- PHP від 7.0 до 8.5,
- MySQL 5.6+ або MariaDB 10.x+,
- каталог `modules/pdproductdelete/files/` з правом запису — модуль сам це перевіряє й повідомляє про це на екрані,
- відсутність зовнішніх залежностей: жодного Composer, жодних бібліотек поза PrestaShop,
- модуль не реєструє хуків і не додає нічого до front office — працює виключно в адміністративній панелі,
- інтерфейс польською та англійською мовами.

 ## Чого модуль не робить

 Чесно, щоб не було сюрпризів:

 - **Резервна копія — це знімок, а не кнопка відновлення.** Вона містить дані, достатні для відтворення запису товару та для побудови перенаправлень 301 зі старих адрес, але модуль не має функції «скасувати».
- **Видалення товару є незворотним.** PrestaShop видаляє його разом із зображеннями, комбінаціями, залишком на складі, цінами та зв’язками. Вимкнення товару залишається оборотним.
- **Модуль не вимірює, відколи** товар не має залишку або відколи він вимкнений — таких дат PrestaShop не зберігає. Вікові умови спираються на дату останньої зміни товару, і це прямо написано біля кожної з них.
- **Немає завдання CRON чи розкладу.** Прохід запускає людина з панелі.
- Зв’язки товарів із категоріями в PrestaShop не прив’язані до магазину, тому умова «відсутність категорії, відмінної від стандартної» неминуче зчитується для всієї інсталяції. Модуль повідомляє про це в Допомозі.

## Features

| Feature | Value |
| --- | --- |
| Підтримка Prestashop 9.x | Так |
| Підтримка Prestashop 8.x | Так |
| Підтримка Prestashop 1.7.x | Так |
| Підтримка Prestashop 1.6.x | Так |
| Модульні переклади | EN, ENG |
| Безкоштовна підтримка | Так |
| Безкоштовні оновлення (1 рік) | Так |
| Легко встановлюється | Так |
| Потрібна модифікація двигуна | Немає |

## Variants

| Variant | SKU | Price | Availability | Variant ID |
| --- | --- | --- | --- | --- |
| Тип ліцензії / оновлення: Повна версія / довічна ліцензія | ` PDPD-FULL ` | 98.00 | ` in_stock ` | ` 514 ` |
| Тип ліцензії / оновлення: Лише оновлення (продовження доступу ще на наступні 12 міс.) | ` PDPD-UPD ` | 49.00 | ` in_stock ` | ` 515 ` |

## Categories

- Імпорт і експорт даних
- Головна
- Керування товарами та складом
- Модулі PrestaShop

## Questions and answers

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

Language: uk

Вимкнення є зворотним: товар залишається в каталозі, зникає з сайту, і його можна будь-якої миті знову ввімкнути. Видалення є незворотним — PrestaShop видаляє товар разом із зображеннями, комбінаціями, залишками на складі, цінами та пов’язаними даними. Модуль пропонує обидві дії, а за замовчуванням рекомендує вимкнення та пробний запуск, щоб перша спроба не могла нічого зіпсувати.

### Чи може модуль скасувати видалення товарів?

Language: uk

Ні. Модуль зберігає резервну копію у форматі CSV перед внесенням змін, але це знімок стану, а не кнопка відновлення. Файл містить ідентифікатор товару та комбінації, індекс, EAN-13, UPC, назву, URL-адресу, ціну, складський залишок, статус активності, бренд, постачальника, категорію за замовчуванням, список категорій, а також виконану дію. Цього достатньо, щоб відтворити запис товару та налаштувати перенаправлення 301 зі старих адрес, і саме для цього створюється ця копія.

### Чи потрібно мені підготувати файл CSV, щоб скористатися модулем?

Language: uk

Ні. Список можна створити трьома способами: завантажити файл CSV або TXT до 20 МБ, вставити ідентифікатори прямо в поле на екрані або скористатися вкладкою «Виберіть товари», яка формує список з умов, накладених на каталог, і не потребує жодного файлу.

### Які умови підтримує селектор товарів?

Language: uk

Відсутній складський запас, відсутній продаж протягом вказаної кількості місяців, товар вимкнений у вибраному магазині, відсутнє зображення, відсутня категорія, відмінна від стандартної, базова ціна дорівнює точно нулю, бренд, постачальник, категорія (за бажанням разом із підкатегоріями), значення характеристики та шаблон індексу, у якому зірочка замінює будь-який рядок символів, а знак питання — рівно один. Позначені умови мають виконуватися одночасно — їх поєднує AND, а не OR.

### Чи побачу я перед запуском, скількох товарів стосується вибір?

Language: uk

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

### Що станеться, якщо я закрию браузер під час видалення?

Language: uk

Процес зупиниться на рядку, на якому він саме перебував, і нічого не буде втрачено. Після повторного входу на сторінку модуля з’явиться пропозиція завершити процес від місця зупинки. Жоден рядок не обробляється двічі, оскільки стан черги зберігається в базі даних, а не в браузері.

### Чи не перевищить обробка великого списку ліміт часу виконання PHP?

Language: uk

Ні, оскільки модуль не виконує всю роботу в одному запиті. Список потрапляє до черги в базі, а процес просуває його короткими кроками через AJAX. Тривалість кроку налаштовується в діапазоні від 2 до 30 секунд, а екран налаштувань показує поруч значення max\_execution\_time, яке повідомляє сервер, і те, скільки секунд модуль реально має намір витратити на один крок.

### Скільки товарів можна обробити за один прохід?

Language: uk

До 200 000 позицій. Вибір, що охоплює більше, відхиляється з проханням звузити умови та запустити частинами — модуль не обрізає список тихо, бо тихо обрізаний список означав би, що частина товарів залишається недоторканою без відома оператора.

### Як працює захист від випадкового видалення половини каталогу?

Language: uk

Модуль відхиляє справжній запуск, що охоплює більший відсоток товарів магазину, ніж встановлений поріг; за замовчуванням це 30 відсотків. Значення нуль вимикає цей захист. Поріг можна свідомо обійти одноразовим позначенням поля на екрані запуску. Пробного запуску це обмеження ніколи не стосується, бо такий запуск і так нічого не змінює.

### Що відбувається з товарами, які є в замовленнях?

Language: uk

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

### Як модуль поводиться в режимі multistore?

Language: uk

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

### Хто в панелі може запустити видалення товарів?

Language: uk

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

### За чим модуль розпізнає товари зі списку?

Language: uk

За артикулом (reference), кодом EAN-13, кодом UPC або ідентифікатором товару. У тих версіях PrestaShop, каталог яких має відповідні стовпці, також доступні MPN та ISBN — модуль сам це перевіряє і не пропонує поля, якого немає в базі. Додатково можна видалити сталий префікс з початку кожного ідентифікатора та вирішити, що робити, коли один ідентифікатор підходить до кількох товарів.

### Що містить звіт про пробіг?

Language: uk

CSV-файл з одним рядком на ідентифікатор, зі стовпцями: номер рядка, ідентифікатор, результат, ідентифікатор товару, ідентифікатор комбінації та повідомлення. Стовпець результату приймає значення ok, not-found, skipped, error та pending для рядків, до яких зупинений процес не дійшов. Повідомлення записуються сталими англійськими кодами — понад двадцять розрізнюваних ситуацій — щоб фільтр у електронній таблиці працював незалежно від мови панелі. Усі коди пояснено на вкладці Допомога.

### Чи має модуль завдання CRON або розклад?

Language: uk

Ні. Процес запускає людина з рівня панелі адміністрування. Модуль нічого не видаляє автоматично або за розкладом.

### Чи модуль уповільнює магазин або змінює щось на сторінці магазину?

Language: uk

Ні. Модуль не реєструє жодного hook і не додає нічого до front office — працює виключно в панелі адміністрування. Таблиця стилів і скрипт завантажуються лише на його власному екрані конфігурації.

### Що саме означає умова «відсутність товару на складі протягом X днів»?

Language: uk

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

### З якими версіями PrestaShop і PHP працює модуль?

Language: uk

Модуль підтримує PrestaShop від 1.6.0.0 до 9.x, а також PHP від 7.0 до 8.5, а також MySQL 5.6 або новішу версію і MariaDB 10.x або новішу версію. Він не потребує Composer або будь-якої бібліотеки поза PrestaShop. Натомість потрібне право запису до каталогу modules/pdproductdelete/files/, у якому зберігаються завантажені списки, резервні копії та звіти; модуль сам перевіряє цю умову й повідомляє про неї на екрані.

### Чи можна зупинити або призупинити пробіг під час руху?

Language: uk

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

### Що станеться, якщо в браузері вимкнено JavaScript?

Language: uk

Процес не буде просуватися автоматично, але це не є нездоланною перешкодою. Після запуску на екрані з’являється кнопка «Обробити один крок», яка просуває чергу на один крок за кожне натискання. Модуль прямо повідомляє про це в повідомленні, видимому саме для браузерів без JavaScript.

