=== SKU Feed Inspector Free ===
Contributors: skusystems
Tags: csv, xml, yml, product feed, catalog
Requires at least: 5.8
Requires PHP: 7.4
Stable tag: 0.2.2
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Перевіряйте CSV, XML і YML каталоги постачальників до імпорту та знаходьте проблеми у товарних даних.

== Description ==

SKU Feed Inspector Free допомагає перевірити каталог постачальника до імпорту в магазин або іншу систему.

Плагін:

* розпізнає структуру CSV, XML і YML;
* пропонує зіставлення товарних полів і дозволяє його підтвердити;
* перевіряє ID, SKU, назви, ціни, залишки, категорії, одне або кілька зображень, описи та базову структуру варіацій;
* знаходить критичні помилки, помилки та попередження;
* групує однакові проблеми за типом і полем, а конкретні випадки показує всередині вибраної групи;
* дозволяє скопіювати повне значення з файлу та розгорнути довгі URL або HTML;
* обробляє великі каталоги у фоні невеликими пакетами — вкладку можна закрити та повернутися пізніше;
* показує статус і кількість уже оброблених товарів у розділі «Мої перевірки»;
* зберігає вихідний файл у приватному файловому сховищі, а перевірки — у приватній історії до 90 днів;
* не змінює вихідний файл.

= Підтримувані ліміти =

* CSV, XML та YML — до 64 МБ на один файл.
* Кількість товарів у публічному інтерфейсі не використовується як ліміт: розмір одного товару сильно залежить від описів, характеристик і кількості зображень.
* Плагін має внутрішній захисний ліміт для запобігання надмірному навантаженню; фактична місткість залежить від структури каталогу та ресурсів сервера.
* Фактичний ліміт завантаження може бути меншим через налаштування WordPress/PHP, вебсервера, хостингу, CDN або proxy.

WordPress не завжди може визначити зовнішній ліміт вебсервера. Помилка `413 Request Entity Too Large` означає, що файл заблоковано ще до передавання у WordPress. Для завантаження максимального файлу рекомендований зовнішній ліміт — не менше 70 МБ.

= Обмеження Free-версії =

SKU Feed Inspector Free не імпортує товари у WooCommerce, не завантажує каталоги за URL і не виправляє вихідний файл. Автоматичні рішення, виправлення окремої копії, повторна перевірка та завантаження виправленого каталогу доступні у SKU Feed Inspector Pro:

https://skusystems.com/sku-feed-inspector-pro-produkt/

== Installation ==

1. Встановіть плагін через сторінку «Плагіни» у WordPress або завантажте папку `sku-feed-inspector-free` до `/wp-content/plugins/`.
2. Активуйте SKU Feed Inspector Free.
3. Відкрийте «SKU Feed Inspector Free» → «Нова перевірка».
4. Завантажте локальний CSV, XML або YML-файл.
5. Підтвердьте знайдені поля. Фонову перевірку можна залишити працювати та повернутися до готового звіту пізніше.

== Frequently Asked Questions ==

= Чи змінює плагін вихідний файл? =

Ні. Free-версія лише читає каталог і створює звіт. Вихідний файл залишається без змін.

= Які формати підтримуються? =

CSV, XML і YML. XLSX та завантаження каталогу за URL у Free-версії не підтримуються.

= Чи імпортує плагін товари у WooCommerce? =

Ні. Він перевіряє каталог перед імпортом, але не виконує сам імпорт.

= Де зберігаються файли та результати? =

Вони зберігаються приватно на сервері WordPress до 90 днів після останнього оновлення перевірки, а потім автоматично видаляються.

= Чому WordPress показує 64 МБ, але великий файл може не завантажуватися? =

WordPress показує доступний йому ліміт PHP. Окремий ліміт Nginx, Apache, LiteSpeed, хостингу, CDN або proxy може бути нижчим і не визначатися автоматично.

= Що означає 413 Request Entity Too Large? =

Файл заблоковано вебсервером, хостингом або CDN до того, як його отримав WordPress. Потрібно збільшити зовнішній ліміт завантаження. Для максимального файлу Free-версії рекомендовано не менше 70 МБ.


= Чи потрібно тримати сторінку відкритою під час перевірки? =

Ні. Після підтвердження полів каталог обробляється у фоновій черзі. Сторінку можна закрити, а потім відкрити перевірку з розділу «Мої перевірки».

= Що потрібно серверу для XML/YML? =

Для потокової обробки XML/YML потрібне PHP-розширення XML з класом XMLReader. Якщо воно недоступне, плагін покаже зрозуміле повідомлення. CSV продовжує працювати незалежно від XMLReader.

= Що додатково доступно у Pro-версії? =

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

== Screenshots ==

1. Головна сторінка SKU Feed Inspector Free.
2. Завантаження локального CSV, XML або YML-каталогу.
3. Перевірка та підтвердження розпізнаних товарних полів.
4. Процес аналізу каталогу.
5. Підсумковий звіт із проблемами, фільтрами та оцінкою якості.

== Changelog ==

= 0.2.2 =
* Standard YML feeds with a plain external DOCTYPE are now accepted safely; internal DTD subsets and ENTITY declarations remain blocked.

= 0.2.1 =
* XML/YML security scan now distinguishes real DTD/ENTITY declarations in the XML prolog from harmless text inside CDATA, comments and product descriptions.

= 0.2.0 =

* Аналіз каталогу винесено у фонову перезапускну чергу: сторінку можна закрити та повернутися до перевірки пізніше.
* CSV читається потоково логічними записами та обробляється невеликими пакетами без завантаження всього каталогу в пам’ять.
* XML/YML читається потоково через XMLReader; повторний запуск продовжує перевірку з уже збереженої кількості товарів.
* Вихідні файли зберігаються у приватному файловому сховищі замість LONGBLOB у базі даних.
* Додано статуси черги, обробки, завершення та помилки, прогрес і кількість оброблених товарів.
* Максимальний розмір CSV, XML і YML у Free-версії уніфіковано до 64 МБ; публічні ліміти за кількістю товарів прибрано.
* Додано відновлення завислих завдань, повторні спроби, блокування паралельних worker-процесів і автоматичне очищення приватних файлів.
* Старі перевірки з BLOB-файлами залишаються сумісними та за потреби переносяться у приватне файлове сховище.

= 0.1.6 =

* Поля з кількома адресами зображень тепер перевіряються як набір окремих HTTP/HTTPS-посилань.
* XML/YML з повторюваними елементами picture зберігає всі адреси зображень для перевірки.
* Коректні HTTP/HTTPS iframe переведено з помилок у попередження про можливу несумісність із платформою призначення.
* Помилкою залишаються iframe без коректного src або з небезпечною схемою адреси.
* Повторюваний SKU у межах однієї групи варіацій більше не дублюється другою загальною проблемою.
* Потенційні конфлікти SKU класифікуються як попередження, а одиночні групи варіацій отримали нейтральніше пояснення.

= 0.1.5 =

* Групи проблем відкриваються без повного перезавантаження сторінки.
* Сторінки конкретних випадків перемикаються асинхронно всередині відкритої групи.
* Для CSV використовується точніше позначення «Запис», оскільки поля можуть містити багаторядковий текст.
* Назва товару у деталях проблеми отримала явну позначку.
* Звичайні посилання збережено як резервний режим без JavaScript.

= 0.1.4 =

* Перероблено звіт: однакові проблеми згруповано за типом і товарним полем замість суцільного списку.
* Додано розкриття групи з поясненням, рекомендацією та конкретними товарами.
* Додано окрему пагінацію випадків усередині вибраної групи по 25 записів.
* У деталях тепер показуються рядок або запис, назва товару, SKU, ID і поле джерела.
* Додано копіювання повного значення та безпечне розгортання довгих URL, HTML і багаторядкового тексту.

= 0.1.3 =

* Покращено визначення роздільника CSV для каталогів із різною кількістю хвостових колонок у товарних рядках.
* Додано підтримку повторюваних назв колонок із безпечним нумеруванням полів.
* Коротші товарні рядки тепер доповнюються порожніми хвостовими значеннями; рядки з зайвими колонками відхиляються з точним поясненням.
* Додано сумісність із реальними CSV-експортами Prom.ua з повторюваними групами характеристик.
* Додано автоматичне розпізнавання основних полів у стандартному CSV-експорті Prom.ua.

= 0.1.2 =

* Уніфіковано папку, головний файл, Text Domain і публічні slug під офіційний WordPress.org slug `sku-feed-inspector-free`.
* Уточнено, що блок параметрів показує значення WordPress/PHP, а не зовнішній ліміт вебсервера.
* Додано окреме пояснення помилки 413 та рекомендації для Nginx, PHP, хостингу і CDN.
* Оновлено довідку й readme для підготовки до публікації у WordPress.org.
* Видалено дубльоване оголошення змінної в адміністративному JavaScript.

= 0.1.1 =

* Розширено сторінку «Інструкція та довідка»: призначення, чотири кроки, перелік перевірок, пояснення результатів, обмеження, ліміти та поширені запитання.
