Настройка импорта/экспорта товаров OpenCart под ключ

Автоматизация обновления товаров в OpenCart

Разработка и обслуживание любых видов сайтов:

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

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Настройка импорта/экспорта товаров OpenCart под ключ
Средний
~2-3 дня

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

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1414
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    982
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1241
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    982
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    995

Автоматизация обновления товаров в OpenCart

При каталоге в 3000 товаров ручное обновление цен и остатков отнимает до 40 часов в месяц. Ошибки: пропущенные позиции, неверные цены, потеря вариантов. Убытки от неправильных цен могут быть значительными. Мы автоматизируем импорт/экспорт под ключ — от первичной загрузки CSV до двусторонней синхронизации с 1С и ERP. За 5 лет провели более 50 интеграций для каталогов от 500 до 50 000 SKU. Экономия средств после внедрения существенна для каталога среднего размера. Типичные последствия отсутствия автоматизации: срыв сроков поставок, убытки от неправильных цен, дублирование работы. Наше решение исключает человеческий фактор и обеспечивает актуальность каталога без участия оператора. Свяжитесь с нами — сократите время на обновление каталога.

Как автоматизация решает проблему потери данных?

Внедряем валидацию на этапе загрузки: проверка кодировки, дубликатов, обязательных полей. Например, при импорте 10 000 строк с неверной кодировкой скрипт сразу подсветит ошибки и не допустит запись «битых» данных. Регулярные обновления цен и остатков по расписанию (cron) — без участия оператора. Даже при ежедневном обновлении 5000 позиций загрузка занимает не более 15 минут. При несовместимости форматов конвертируем из windows-1251 в UTF-8, заменяем разделители, маппим нестандартные булевы значения.

Как мы гарантируем качество импорта?

Перед каждым запуском создаётся бэкап базы данных. Импорт выполняется в транзакции — при ошибке можно откатить изменения. Лог содержит детальную статистику: сколько создано, обновлено, пропущено. Все ошибки записываются в отдельный файл для анализа.

Мы используем собственные скрипты на PHP, которые напрямую работают с OpenCart framework. Это даёт полный контроль над процессом и производительность, недоступную стандартным модулям. Кастомный скрипт обрабатывает 1000 товаров за 10 секунд, тогда как стандартный модуль — за 2 минуты.

Когда нужен кастомный скрипт вместо стандартного модуля?

Стандартный CSV-импорт через admin > Catalog > Import имеет жёсткий формат: фиксированные колонки, нет поддержки вариантов, атрибутов, SEO-полей и мультиязычности. Подходит только для простейших случаев.

Таблицы, затрагиваемые при полном импорте:

Таблица Содержимое
oc_product Основные поля: цена, вес, модель, статус
oc_product_description Тексты по языкам
oc_product_to_category Привязка к категориям
oc_product_to_store Привязка к магазинам
oc_product_attribute Значения атрибутов
oc_product_option Опции (цвет, размер)
oc_product_option_value Значения опций с остатком
oc_product_image Дополнительные изображения
oc_product_to_layout SEO layout

Для сложных маппингов используем кастомные скрипты или модули. Сравнение популярных модулей:

Модуль Форматы Гибкость Цена
QuickAdmin / Журнал3 CSV Низкая Бесплатно в некоторых темах
Spreadsheet Price Manager Google Sheets API Средняя Платный
Import/Export Pro (iSenseLabs) CSV, XML, XLS, JSON Высокая Платный
D-Import CSV, XML Высокая (производительность) Платный

Кастомный скрипт превосходит любой модуль по гибкости: он может обрабатывать любые форматы, распараллеливать загрузку изображений и интегрироваться с любым API.

Кастомный импорт через скрипт

Пример CLI-скрипта для импорта
<?php // tools/import_products.php define('DIR_APPLICATION', __DIR__ . '/../admin/'); define('DIR_SYSTEM', __DIR__ . '/../system/'); // ... остальные константы require_once(DIR_SYSTEM . 'startup.php'); require_once(DIR_APPLICATION . 'config.php'); $registry = new Registry(); // инициализация DB, Config, Load... $csv = new SplFileObject('/tmp/products_feed.csv'); $csv->setFlags(SplFileObject::READ_CSV | SplFileObject::SKIP_EMPTY); $csv->setCsvControl(';', '"'); $headers = $csv->current(); // первая строка — заголовки $csv->next(); $db->query("SET foreign_key_checks = 0"); $db->query("SET unique_checks = 0"); while (!$csv->eof()) { $row = array_combine($headers, $csv->current()); $csv->next(); if (empty($row['model'])) continue; // Проверяем существование по model $existing = $db->query( "SELECT product_id FROM oc_product WHERE model = '" . $db->escape($row['model']) . "' LIMIT 1" ); if ($existing->num_rows) { $product_id = $existing->row['product_id']; // UPDATE $db->query("UPDATE oc_product SET price = '" . (float)$row['price'] . "', quantity = '" . (int)$row['quantity'] . "', date_modified = NOW() WHERE product_id = $product_id" ); } else { // INSERT + описание + категории // ... } } $db->query("SET foreign_key_checks = 1"); $db->query("SET unique_checks = 1"); 

Такой скрипт запускается по cron: 0 6 * * * php /var/www/opencart/tools/import_products.php >> /var/log/oc_import.log 2>&1

Какие форматы источников поддерживаются?

CSV от поставщика — самый распространённый. Проблемы: кодировка (windows-1251 vs UTF-8), разделитель (; vs ,), нестандартные булевы значения (да/нет, 1/0, true/false). Нормализация выполняется автоматически, но можно и вручную, например, через iconv и sed.

XML (YML — Яндекс.Маркет формат) — стандарт для российского рынка. Парсинг через SimpleXML или XMLReader (для больших файлов > 50 МБ).

REST API поставщика — получение данных по HTTP с пагинацией. Обрабатываем тысячи записей в минуту.

Экспорт для внешних систем

Выгрузка в Google Merchant Center (формат GMC) генерируется как RSS/Atom фид. Пример генерации:

// Генерация RSS/Atom фида для GMC header('Content-Type: application/xml; charset=utf-8'); echo '<?xml version="1.0" encoding="UTF-8"?>'; echo '<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">'; echo '<channel>'; $products = $db->query(" SELECT p.*, pd.name, pd.description FROM oc_product p JOIN oc_product_description pd ON pd.product_id = p.product_id WHERE p.status = 1 AND pd.language_id = 1 LIMIT 5000 "); foreach ($products->rows as $p) { echo '<item>'; echo '<g:id>' . $p['model'] . '</g:id>'; echo '<g:title><![CDATA[' . $p['name'] . ']]></g:title>'; echo '<g:price>' . number_format($p['price'], 2, '.', '') . ' RUB</g:price>'; echo '<g:availability>' . ($p['quantity'] > 0 ? 'in_stock' : 'out_of_stock') . '</g:availability>'; echo '</item>'; } echo '</channel></rss>'; 

Обработка изображений и логирование

Загрузка изображений по URL — узкое место при массовом импорте. Оптимальный подход: очередь + параллельная загрузка через curl_multi. Каждый импорт завершается отчётом:

Import started: feed.csv (4821 rows) Created: 12, Updated: 4791, Skipped: 18, Errors: 0 Import finished in 152s 

При ошибках в строке запись в отдельный файл import_errors.csv с номером строки и описанием.

Что входит в настройку

  1. Диагностика текущей структуры каталога и формата данных поставщика.
  2. Разработка скрипта импорта/экспорта с учётом ваших требований.
  3. Настройка расписания (cron) для автоматического обновления.
  4. Тестовый прогон на копии базы данных.
  5. Документация и инструкция по использованию.
  6. Гарантия на работу скрипта — 30 дней бесплатной поддержки.

Сроки

Настройка готового модуля с маппингом под конкретный формат поставщика: 1–2 дня. Кастомный скрипт с поддержкой XML/API, загрузкой изображений и логированием: 3–5 дней. Полноценная двусторонняя синхронизация с 1C или ERP: 1–3 недели в зависимости от сложности маппинга.

Свяжитесь с нами для оценки вашего проекта. Мы подготовим предложение с точными сроками и стоимостью. Получите консультацию — мы ответим на вопросы в течение часа.

Подробнее о CSV и официальной документации OpenCart.