Налаштування імпорту/експорту товарів PrestaShop

При перенесенні каталогу з ERP до PrestaShop вбудований імпортер впирається в ліміти PHP і не справляється з обсягом. Для production-задач з каталогом від 5 000 товарів стандартний інструмент вимагає тонкого налаштування або заміни на кастомне рішення з **пакетною обробкою** та управлінням пам'яттю.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Налаштування імпорту/експорту товарів PrestaShop
Середній
~2-3 дні

Наші компетенції:

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

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1422
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1288
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    984
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1250
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    988
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1001

При перенесенні каталогу з ERP до PrestaShop вбудований імпортер впирається в ліміти PHP і не справляється з обсягом. Для production-задач з каталогом від 5 000 товарів стандартний інструмент вимагає тонкого налаштування або заміни на кастомне рішення з пакетною обробкою та управлінням пам'яттю. Маємо 7+ років досвіду в інтеграції PrestaShop, реалізовано понад 300 проєктів. Правильне налаштування імпорту товарів PrestaShop скорочує час завантаження каталогу на 60% і економить до 20 годин ручної праці на місяць. Досвід та сертифіковані спеціалісти гарантують стабільність імпорту. Розберемо, як правильно організувати імпорт/експорт товарів PrestaShop і уникнути типових помилок. Зв'яжіться з нами для безкоштовної консультації по вашому каталогу.

Помилки при імпорті товарів PrestaShop часто виникають через невідповідність структури CSV, неправильний маппінг атрибутів або перевищення лімітів PHP. Наші інженери налаштовують імпорт товарів PrestaShop з урахуванням особливостей вашого каталогу, забезпечуючи стабільне завантаження тисяч товарів.

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

Вбудований імпортер PrestaShop хороший для разових завантажень до 1 000 товарів. При спробі завантажити 10 000+ рядків процес падає з помилкою перевищення часу виконання або споживання пам'яті. Причина — в налаштуваннях PHP за замовчуванням: memory_limit = 128M, max_execution_time = 30 секунд. Для великих файлів потрібно явно збільшувати ці ліміти або переходити на пакетну обробку через API. Наприклад, на одному з проєктів каталог містив 50 000 SKU з варіаціями. Вбудований імпортер не осилив навіть 10% даних. Ми реалізували кастомний модуль з батчевим завантаженням через API, що дозволило завершити імпорт за 2 години.

Яку структуру CSV очікує PrestaShop?

PrestaShop-імпортер очікує фіксований набір полів. Роздільник і кодування налаштовуються при завантаженні:

ID;Active (0/1);Name *;Categories;Price tax excl.;Tax rules ID;Wholesale price;On sale (0/1);Discount amount;Discount percent;Discount from (yyyy-mm-dd);Discount to (yyyy-mm-dd);Reference #;Supplier reference #;Supplier;Brand;EAN13;UPC;MPN;Ecotax;Weight;Quantity;Description;Short description;Tags (x,y,z...);Meta title;Meta description;URL rewritten;Image URLs (x,y,z...);Image alt texts (x,y,z...);Feature (Name:Value:Position:Customized);Available for order;Available date;Show price;Visibility;Additional shipping cost;Unity;Unit price;Summary;Shop (for multi-shop only) ;1;Куртка зимняя мужская;Верхняя одежда,Мужская одежда;2999.00;1;0;0;0;0;;;ART-001;;Бренд;КурткаБренд;4607167430120;;;0;1.5;50;"Полное описание куртки...";"Куртка зимняя";"куртка, зима, мужская";"Купить куртку зимнюю мужскую";"Куртка зимняя мужская — купить";"kurtka-zimnyaya-muzhskaya";"https://cdn.example.com/img1.jpg,https://cdn.example.com/img2.jpg";"Куртка вид 1,Куртка вид 2";"Цвет:Чёрный:1:0;Размер:L:2:0";1;;;1;everywhere;0;;; 

Конфігурація для масового імпорту

За замовчуванням PHP-процес імпорту впирається в memory_limit та max_execution_time. Для файлів від 10 000 рядків рекомендуємо збільшити ліміти через override контролера або окремий PHP-FPM пул:

// override/controllers/admin/AdminImportController.php class AdminImportControllerCore extends AdminImportController { public function __construct() { parent::__construct(); @ini_set('memory_limit', '512M'); @ini_set('max_execution_time', '3600'); } const MAX_LINE_SIZE = 4096; } 

Рекомендуємо збільшити ліміти через виділений PHP-FPM пул: memory_limit до 1G, max_execution_time до 7200.

Рекомендовані ліміти PHP для різних обсягів каталогу

Обсяг каталогу memory_limit max_execution_time
до 5 000 рядків 256M 300
5 000 – 50 000 512M 600
50 000+ 1G 1800

Як виконати програмний імпорт через ObjectModel та WebService API?

Для інтеграції з ERP/1С рекомендується обходити веб-імпортер і працювати безпосередньо через API PrestaShop. PrestaShop WebService надає REST API для експорту:

$client = new PrestaShopWebservice('https://example.com', 'YOUR_API_KEY', false); $params = [ 'resource' => 'products', 'display' => '[id,reference,name,price,quantity]', 'sort' => '[id_ASC]', 'limit' => '100,100', ]; $xml = $client->get($params); $products = $xml->products->product; 

Імпорт товару з атрибутами через ObjectModel:

class ProductImporter { private int $defaultLangId; private int $shopId; public function importProduct(array $data): int { $product = new Product(); $product->name[$this->defaultLangId] = $data['name']; $product->description[$this->defaultLangId] = $data['description']; $product->reference = $data['sku']; $product->price = (float) $data['price']; $product->weight = (float) ($data['weight'] ?? 0); $product->active = 1; $product->id_category_default = $data['category_id']; if (!$product->add()) { throw new \RuntimeException('Failed to add product: ' . $data['sku']); } $product->addToCategories($data['category_ids']); StockAvailable::setQuantity($product->id, 0, (int) $data['qty']); Search::indexation(false, $product->id); return (int) $product->id; } } 

Коли варто обрати кастомний модуль?

Критерій Вбудований імпортер Кастомний модуль
Обсяг даних до 5 000 рядків за раз будь-який, з розбивкою на батчі
Атрибути (варіації) через CSV (обмежено) повна підтримка через ObjectModel
Швидкість обробки середня (залежить від конфігурації) висока (оптимізовані запити)
Інтеграція із зовнішніми системами тільки через файли через API, вебхуки, чергу
Автоматизація (cron) немає вбудованої повна підтримка

Кастомний модуль краще підходить для каталогів з частою синхронізацією та складною логікою оновлення. Замовте налаштування імпорту PrestaShop у нашій команді.

Як налаштувати імпорт товарів PrestaShop за 4 кроки?

  1. Підготовка даних — приведіть CSV до потрібного формату, перевірте кодування UTF-8 і роздільник.
  2. Конфігурація PHP — збільште memory_limit та max_execution_time відповідно до обсягу каталогу.
  3. Тестовий імпорт — завантажте 100–200 записів на копії бази, перевірте маппінг полів та атрибутів.
  4. Автоматизація — налаштуйте cron для регулярного запуску синхронізації, логуйте помилки через PrestaShopLogger.

Налаштування модуля імпорту для cron

Для регулярного оновлення каталогу із зовнішнього джерела:

// modules/erpimport/cron.php define('_PS_ADMIN_DIR_', getcwd()); include(dirname(__FILE__) . '/../../config/config.inc.php'); $importer = new ErpProductImporter(); $products = $importer->fetchFromErp(strtotime('-1 hour')); foreach (array_chunk($products, 100) as $batch) { foreach ($batch as $productData) { try { $importer->upsert($productData); } catch (Exception $e) { PrestaShopLogger::addLog('ERP import error: ' . $e->getMessage(), 3, null, 'Product', $productData['id'] ?? 0); } } usleep(100000); } 

Cron запис: */30 * * * * www-data php /var/www/prestashop/modules/erpimport/cron.php >> /var/log/prestashop/erp-import.log 2>&1

Що входить у роботу

  • Документація — опис маппінгу полів, інструкція із запуску імпорту.
  • Налаштування доступу — створення API-ключа для WebService, права на cron.
  • Навчання — консультація по завантаженню тестового файлу, розбір типових помилок.
  • Технічна підтримка — гарантуємо виправлення помилок протягом 5 робочих днів після здачі.

Орієнтовні терміни

  • Налаштування вбудованого імпортера + тестовий імпорт: 4–8 годин
  • Розробка кастомного імпортера з ERP-інтеграцією: 3–7 днів
  • Налаштування регулярної синхронізації з моніторингом помилок: 2–3 дні
  • Міграція каталогу 10 000+ SKU із зображеннями: 3–7 днів

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

Чек-лист для успішного імпорту
  • Перевірити ліміти PHP перед запуском.
  • Розбити файл на батчі по 100-200 записів.
  • Протестувати на копії бази.
  • Налаштувати логування помилок.
  • Запланувати регулярний запуск через cron.

Згідно з документацією PrestaShop, для високонавантажених каталогів рекомендується використовувати WebService API замість CSV-імпорту.