Диагностика проблем при импорте товаров из osCommerce в WooCommerce
Импорт товаров из osCommerce в WooCommerce — частая задача при миграции интернет-магазина. Однако при этом часто возникают ошибки, проявляющиеся в виде неполного импорта, некорректных данных, ошибок в артикуле (SKU), ценах или описаниях товаров. Первым шагом диагностики станет тщательная проверка исходных данных и логов импорта.
Как проверить исходные данные osCommerce
- Экспортируйте товары из osCommerce в CSV или SQL-формате.
- Откройте CSV в Excel или LibreOffice Calc и проверьте наличие обязательных колонок:
products_id,products_name,products_price,products_description,products_model(артикул). - Убедитесь, что данные не содержат HTML-тегов или специальных символов, которые могут вызвать ошибки парсинга.
Проверка логов WooCommerce
В WooCommerce перейдите в WooCommerce > Статус > Лог и найдите логи, связанные с импортом. В них могут быть сообщения об ошибках, например, дублирование SKU или ошибки формата данных.
Пошаговое решение проблем импорта
1. Подготовка CSV-файла для импорта
Для корректного импорта в WooCommerce CSV должен быть структурирован по стандарту WooCommerce:
SKU,Name,Description,Price,Stock,Categories,Images
12345,Товар 1,Описание товара,1500,10,Категория 1|Категория 2,http://example.com/image.jpgЕсли исходный файл из osCommerce отличается, преобразуйте его с помощью скрипта на PHP или в Excel, например:
<?php
$input = fopen('oscommerce.csv', 'r');
$output = fopen('woocommerce.csv', 'w');
fputcsv($output, ['SKU', 'Name', 'Description', 'Price', 'Stock', 'Categories', 'Images']);
while (($data = fgetcsv($input)) !== false) {
// Предположим, что в osCommerce columns: products_model, products_name, products_description, products_price, products_quantity, categories, image_url
$sku = $data[0];
$name = $data[1];
$desc = strip_tags($data[2]);
$price = $data[3];
$stock = $data[4];
$categories = str_replace([';', ','], '|', $data[5]);
$images = $data[6];
fputcsv($output, [$sku, $name, $desc, $price, $stock, $categories, $images]);
}
fclose($input);
fclose($output);
?>2. Импорт через стандартный WooCommerce CSV Importer
В WordPress перейдите в Товары > Импорт, выберите подготовленный CSV и следуйте инструкциям импорта. Обязательно сопоставьте колонки CSV с полями WooCommerce.
3. Решение проблемы с дублирующимися SKU
Дублирование артикулов вызывает ошибки импорта. Чтобы избавиться от дублей, перед импортом проверьте уникальность SKU:
SELECT products_model, COUNT(*) FROM oscommerce_products GROUP BY products_model HAVING COUNT(*) > 1;Для автоматического исправления добавьте суффикс:
if (isset($sku_count[$sku])) {
$sku_count[$sku]++;
$sku .= '-' . $sku_count[$sku];
} else {
$sku_count[$sku] = 1;
}Проверка результата после импорта
- Зайдите в Товары > Все товары и убедитесь, что все позиции загрузились.
- Проверьте отображение названия, описания, цены и наличия.
- Проверьте уникальность SKU через SQL-запрос в базе данных WooCommerce:
SELECT meta_value, COUNT(*) FROM wp_postmeta WHERE meta_key = '_sku' GROUP BY meta_value HAVING COUNT(*) > 1;Частые ошибки и их исправление
- Ошибка: Товары не отображаются после импорта. Возможно, статус товара установлен как "Черновик". Проверьте и измените на "Опубликовано".
- Ошибка: Некорректные цены. Проверьте формат цены — должен быть числовым, без валютных символов.
- Ошибка: Изображения не загружены. URL изображения должен быть абсолютным и доступным. Для локальных файлов загрузите их вручную или через FTP.
- Ошибка: Дубли SKU. Используйте скрипт для автоматического добавления суффиксов.
Практические советы по оптимизации и безопасности
- Перед импортом сделайте резервную копию базы данных.
- Используйте транзакции в MySQL, если импортируете напрямую через SQL, чтобы избежать частичного импорта.
- Ограничьте права пользователя базы данных для безопасности.
- После импорта очистите кэш WooCommerce и сайта.
- Для больших объёмов товаров используйте WP-CLI для импорта с контролем ошибок.
Сравнение вариантов импорта osCommerce в WooCommerce
| Метод | Плюсы | Минусы | Пример |
|---|---|---|---|
| CSV импорт через WooCommerce | Стандартный, не требует плагинов | Требует подготовки правильного CSV | WooCommerce > Товары > Импорт |
| Плагины миграции (например, FG osCommerce to WooCommerce) | Автоматизация, поддержка связных данных | Могут быть платными, иногда сбои | FG osCommerce to WooCommerce |
| Импорт через SQL-скрипты | Гибкость, полный контроль | Высокий порог входа, риск ошибок | Собственные PHP-скрипты |