Для чого призначений модуль
- Перенесення каталогу до іншого магазину. Новий магазин, міграція на новішу версію PrestaShop або тестовий магазин — файли підготовлені для імпорту цільової версії, а не версії, з якої ви експортуєте.
- Масове редагування в електронній таблиці. Експорт вибраних колонок, зміна в Excel або іншій таблиці та повторний імпорт до того самого магазину.
- Постійний файл для інтеграції. Оптовий постачальник, сервіс порівняння цін, система ERP або інший магазин можуть завантажувати актуальний файл за постійною адресою, що оновлюється через CRON.
Файли, сумісні з імпортом вибраної версії PrestaShop
Чотири цільові версії
- Вибір версії імпорту. У профілі ви вказуєте, яка версія PrestaShop зчитуватиме файл: 1.7.0–1.7.2, 1.7.3–1.7.6, 1.7.7–8.x, 9.x або «Автоматично» (версія поточного магазину).
- Колонки в порядку імпорту. Файл товарів має від 63 колонок (1.7.0–1.7.2) до 68 колонок (1.7.7–8.x), а для PrestaShop 9 — 66 колонок. Файл комбінацій має від 23 до 26 колонок. Порядок відповідає полям імпорту відповідної версії, тому повний файл автоматично підлаштовується на сторінці імпорту.
- Колонки, що існують лише в деяких версіях. Наприклад, ISBN, MPN, поріг низького залишку та розташування на складі потрапляють лише до файлів для версій, імпорт яких їх підтримує; мета-ключові слова та колонки розширеного керування складом — лише до файлів для 1.7.0–1.7.2.
- Два способи запису CSV. PrestaShop 9 читає CSV відповідно до RFC 4180, а версії 1.7 і 8 інакше обробляють лапки та зворотні скісні риски. Модуль записує значення так, щоб імпорт конкретної версії зчитав їх без змін, а коли це неможливо — повідомляє про це у звіті.
- Збережене зіставлення колонок. Для кожного профілю модуль створює в PrestaShop збережену конфігурацію зіставлення колонок («Експорт CSV #ID - товари» і «Експорт CSV #ID - комбінації»), яку можна завантажити на сторінці імпорту, якщо файл містить лише частину колонок.
- Вкладка «Формат CSV». Опис кожної колонки для вибраної версії PrestaShop та покрокова інструкція з налаштування імпорту.
Файл товарів і файл комбінацій
- Окремі файли для двох типів імпорту. Файл товарів для типу «Товари» і файл комбінацій для типу «Комбінації» («Варіанти» у PrestaShop 8 і 9); у профілі можна увімкнути один із них або обидва.
- Повний файл комбінацій. Файл комбінацій завжди містить усі колонки, оскільки імпорт під час оновлення комбінацій перезаписує ціну, вагу, залишок і коди значеннями з файлу — відсутність колонки очистила б ці дані.
- Зображення як URL-адреси. Колонка зображень містить адреси оригінальних файлів зображень з домену магазину профілю, з обкладинкою на першому місці, а також альтернативні тексти. Зображення, файли яких відсутні на сервері, пропускаються та зазначаються у звіті.
- Характеристики, атрибути, теги та аксесуари у форматі, якого очікує імпорт (зокрема, характеристика як назва:значення:позиція:власна).
- Ціна з податком як остання колонка. Імпорт попередньо зіставляє колонки за позицією і пропускає це поле, тому модуль завжди розміщує його в кінці, щоб не зсунути решту колонок.
Профілі експорту
Джерело даних
- Будь-яка кількість профілів. Кожен профіль описує один набір файлів і має власну назву, стан активності, посилання для завантаження та адресу CRON.
- Магазин профілю. У multistore ціни, залишки, видимість і зображення беруться з вибраного магазину, а файл вказує цей магазин у колонці магазину.
- Мова даних. Назви, описи, SEO-поля, теги, підписи зображень і значення характеристик експортуються мовою профілю; цю саму мову вибирають на сторінці імпорту як мову файлу.
Фільтри товарів
- Лише активні товари.
- Лише товари, доступні на складі. Пропускає товари із залишком 0 або менше, а також комбінації, власний залишок яких становить 0 або менше.
- Вибрані категорії. Товар потрапляє до файлу, якщо належить щонайменше до однієї позначеної категорії; відсутність позначення означає всі категорії.
- Виключення. Пропуск вибраних брендів, постачальників (за замовчуванням постачальника товару) та товарів із вказаними ID-номерами.
Колонки та набори
- Вибір колонок файлу товарів з поділом на групи: ідентифікація, категорії, ціни та податки, знижка, коди (EAN, UPC, ISBN, MPN), розміри та вага, залишки й доступність, описи та SEO, зображення, характеристики, аксесуари та віртуальний товар.
- Чотири готові набори: «Повний — перенесення до іншого магазину», «Масове редагування в цьому магазині», «Ціни та залишки» і «Описи та SEO».
- Колонки ID та артикулу завжди є у файлі, оскільки за ними імпорт розпізнає товар.
- Список колонок залежить від цільової версії. Після зміни версії у формі доступні лише ті колонки, які підтримує імпорт цієї версії.
Ключ товару, категорії та роздільники
- Ключ товару: ID товару (імпорт з опцією «Примусово використовувати всі ID-номери») або артикул (імпорт з опцією «Використовувати артикул товару як ключ»). Для артикулу колонки ID залишаються порожніми, а імпорт комбінацій знаходить товар за артикулом.
- Категорії як ID — при імпорті до того самого магазину — або як шляхи назв (наприклад, Одяг/Чоловіки/Футболки) при імпорті до іншого магазину. Шляхи записуються мовою магазину за замовчуванням, оскільки цією мовою імпорт шукає категорії; відсутні категорії імпорт створить.
- Роздільник полів: крапка з комою (за замовчуванням, сумісна з Excel у польських регіональних налаштуваннях), кома або вертикальна риска.
- Роздільник кількох значень: кома (за замовчуванням у PrestaShop), вертикальна риска, решітка, тильда або циркумфлекс. Модуль не дозволяє встановити той самий символ, що й для роздільника полів.
Звіт про сумісність з імпортом PrestaShop
Імпорт PrestaShop перериває обробку всього файлу на першому рядку, який не може зберегти, а частину значень змінює без попередження. Під час експорту модуль перевіряє 34 типи таких випадків і записує кожен із них в окремий CSV-файл попереджень (рівень, код, ID товару, ID комбінації, колонка, значення, опис). Підсумок із прикладами видно у вкладці «Файли і CRON», з поділом на помилки, попередження та інформацію.
- Рядки, які імпорт відхилить: значення, що не відповідають валідації PrestaShop, товари без назви мовою профілю, комбінації з відсутньою назвою атрибута або групи атрибутів мовою магазину за замовчуванням.
- Дані, які імпорт не перенесе: специфічні ціни, відмінні від однієї знижки для всього каталогу, вміст комплектів, мітки полів персоналізації, файли віртуальних товарів.
- Значення, які імпорт змінить: пробіли на початку та в кінці комірки, значення «0» у характеристиках і тегах, сума знижки без ПДВ (імпорт створює її як брутто), вплив комбінації на ціну за одиницю, некоректний код EAN-13 комбінації, ISBN комбінації у версіях 1.7 і 8.
- Конфлікти роздільників і назв: роздільник кількох значень у вмісті, двокрапка в характеристиках і атрибутах, скісна риска в назві категорії, повторювані назви категорій, назви брендів, постачальників або категорій, що є числами.
- Проблеми з ключем: товари й комбінації без артикулу, комбінації з повторюваним артикулом (імпорт об’єднав би їх в одну — модуль експортує лише першу), аксесуари без артикулу.
- Символи поза UTF-8 замінюються символом «?», щоб решта файлу зберегла українські символи.
Генерування файлів і CRON
- Генерування з панелі. Кнопка «Генерувати» у списку профілів відкриває вікно зі смугою прогресу, кількістю оброблених товарів, кількістю рядків обох файлів і кількістю попереджень; генерування можна зупинити.
- Робота пакетами. Товари обробляються пакетами по 100, тому великий каталог не перевищує ліміт часу одного запиту.
- Відновлення після переривання. Якщо процес буде перервано, наступний запуск продовжить з останнього збереженого пакета, а підсумковий файл буде таким самим, як і при виконанні за один раз.
- Безпечна публікація. Нові файли замінюють попередні лише після завершення генерування; до цього часу посилання надає останні повні файли. Два одночасні запуски того самого профілю блокуються.
- Адреса CRON для всіх профілів і для кожного профілю окремо. Адреса проходить через контролер модуля, тому працює також у PrestaShop 9, який блокує прямі виклики PHP-файлів у каталозі модулів.
- Продовження через CRON. Якщо генерування не вкладеться в ліміт часу сервера, наступний виклик CRON завершить його з місця зупинки.
- Стан у заголовку модуля. Заголовок показує, чи є активні профілі, чи згенеровані файли, коли востаннє викликався CRON і чи містить останній звіт помилки або попередження.
Завантаження файлів і посилання для інтеграції
- Завантаження в панелі файлу товарів, файлу комбінацій і файлу попереджень; біля файлів товарів і комбінацій видно кількість рядків і розмір.
- Публічне посилання без входу на файл товарів і файл комбінацій, із секретним токеном, окремим для кожного профілю. Посилання працює лише для активного профілю.
- Анулювання посилань. Кнопка «Нове посилання для завантаження» створює новий токен профілю, а кнопка «Новий токен CRON» — новий токен адрес CRON; попередні адреси перестають працювати.
- Файли поза кореневим каталогом магазину. Згенеровані файли зберігаються в каталозі модуля, захищеному файлом
.htaccess, і видаються лише через посилання з токеном або працівникові в панелі.
Формат файлу та робота в Excel
- UTF-8 з BOM, крапка з комою, закінчення рядків CRLF. Файл відкривається в Excel подвійним кліком з українськими символами.
- Десяткова крапка і дати у форматі бази даних, як того очікує імпорт PrestaShop. Для редагування цін найкраще відкрити файл через Дані > З текстового/CSV-файлу з регіональними налаштуваннями «Англійська (Сполучені Штати)».
- Перший рядок — це заголовок з назвами колонок мовою профілю; на сторінці імпорту встановлюється пропуск одного рядка.
Панель адміністратора, права доступу та multistore
- Вкладки в меню Каталог: «Експорт CSV Pro» (список профілів), «Файли і CRON» та «Формат CSV», доступні з панелі вкладок модуля.
- Права доступу PrestaShop. Доступ до вкладок надається у стандартних правах профілів працівників; працівник із правом лише на перегляд не може генерувати файли або змінювати профілі.
- Працівники, обмежені магазинами. Працівник бачить і редагує лише профілі магазинів, до яких має доступ. Адреси CRON, новий токен CRON і видалення файлів версії 1.x доступні лише працівникам із доступом до всіх магазинів, оскільки токен CRON обслуговує кожен магазин.
- Польський переклад в обох системах перекладів PrestaShop (словник і каталоги XLF).
Сумісність, встановлення та оновлення
- PrestaShop 1.7.0–9.x, PHP 7.0–8.5 (заявлена сумісність). Встановлення, генерування файлів і деінсталяція автоматично перевіряються на PrestaShop 1.7.4.4, 1.7.5.2, 8.2.6, 9.0.2 і 9.1.5, а повний цикл експорт → імпорт → порівняння з базою даних — на PrestaShop 8.2.6 і 9.0.2.
- Без зовнішніх бібліотек і без Composer.
- Оновлення з версії 1.x. Модуль переносить збережені конфігурації до профілів, видаляє старі вкладки та точки входу (
cron.php,get.php) і показує у вкладці «Файли і CRON» CSV-файли, які версія 1.x залишила в кореневому каталозі магазину, щоб їх можна було видалити. - Деінсталяція видаляє таблиці, налаштування, вкладки, збережені зіставлення імпорту та згенеровані файли модуля.
Важливі межі роботи
- Модуль експортує дані; імпорт виконується стандартним CSV-імпортом PrestaShop, який має власні обмеження, описані у звіті сумісності.
- Імпорт PrestaShop розпізнає комбінації виключно за артикулом — комбінації без артикулу при повторному імпорті до того самого магазину створять дублікати.
- У PrestaShop 8 і 9 файл комбінацій можна імпортувати до магазину, у якому товари мають постачальника, лише один раз; другий імпорт переривається помилкою бази даних у ядрі PrestaShop.
- Починаючи з PrestaShop 8, імпорт додає змінене значення характеристики поруч із наявним, замість того щоб замінити його.
- Модуль не експортує замовлення, клієнтів чи інші дані, окрім товарів і комбінацій.
- CSV-файл не захищений від формул електронної таблиці: значення, що починаються зі знака «=», записуються без змін, щоб імпорт PrestaShop переніс їх точно.