WooCommerce: как исправить ошибку дублирования SKU при импорте товаров

Диагностика проблемы с дублированием SKU в WooCommerce

При импорте товаров в WooCommerce часто возникает ошибка с дублированием SKU (артикулов). Это происходит, если в базе уже есть товар с таким же SKU, и система не может добавить новый или обновить существующий продукт корректно.

Чтобы убедиться в проблеме, зайдите в WooCommerce → Товары и выполните поиск по SKU, вызвавшему ошибку. Если товар с таким SKU найден, значит причина в конфликте артикулов.

Проверьте файл импорта (CSV, XML) на наличие повторяющихся SKU. Часто дублирование возникает из-за ошибки в файле или из-за того, что в разных строках указан один и тот же артикул.

Как проверить наличие дубликатов SKU в базе через SQL

SELECT meta_value AS sku, COUNT(*) AS count
FROM wp_postmeta
WHERE meta_key = '_sku'
GROUP BY meta_value
HAVING count > 1;

Этот запрос покажет все SKU, которые встречаются в базе более одного раза.

Пошаговое решение проблемы дублирования SKU

1. Удаление или исправление дублирующихся SKU

Вручную исправьте или удалите товары с дублирующимися SKU через админку WooCommerce. Если товаров много, используйте SQL-запрос или скрипт PHP для массового исправления.

2. Автоматическая проверка и очистка SKU в файле импорта

Перед импортом добавьте проверку дублирующихся SKU в CSV с помощью PHP-скрипта:

$skus = [];
$rows = array_map('str_getcsv', file('products.csv'));
foreach ($rows as $index => $row) {
    $sku = $row[2]; // предположим, что SKU в третьем столбце
    if (in_array($sku, $skus)) {
        unset($rows[$index]); // удаляем дубли
    } else {
        $skus[] = $sku;
    }
}
// Далее сохранить отфильтрованный массив обратно в CSV

3. Использование функции обновления товаров по SKU

При импорте используйте функции WooCommerce для обновления товара по SKU, а не создания нового. Пример кода для обновления или создания товара по SKU:

function wc_update_or_create_product_by_sku($sku, $data) {
    $product_id = wc_get_product_id_by_sku($sku);
    if ($product_id) {
        $product = wc_get_product($product_id);
        // Обновляем нужные параметры
        $product->set_name($data['name']);
        $product->set_price($data['price']);
        $product->save();
    } else {
        $product = new WC_Product_Simple();
        $product->set_sku($sku);
        $product->set_name($data['name']);
        $product->set_price($data['price']);
        $product->save();
    }
    return $product->get_id();
}

Проверка результата после исправления

  • Повторите импорт и убедитесь, что ошибок с дублирующимся SKU нет.
  • В базе данных выполните SQL-запрос для проверки уникальности SKU (см. раздел диагностики).
  • Проверьте, что новые или обновленные товары корректно отображаются в каталоге WooCommerce.

Частые ошибки и как их исправить

  • Ошибка: SKU содержит пробелы или спецсимволы. WooCommerce требует уникальный и валидный SKU. Удалите пробелы, используйте только латиницу и цифры.
  • Ошибка: Импортируем файл с пустыми или повторяющимися SKU. Обязательно проверяйте файл перед импортом и используйте фильтрацию дубликатов.
  • Ошибка: Использование функции создания товара без проверки SKU. Всегда проверяйте, существует ли товар с таким SKU, чтобы обновлять, а не создавать дубликат.

Советы по безопасности и производительности при работе с SKU в WooCommerce

  • Регулярно делайте резервные копии базы данных перед массовыми импортами или исправлениями.
  • Используйте транзакции или WP CLI скрипты для безопасного массового обновления товаров.
  • Оптимизируйте базу данных, удаляя старые или неактивные товары с дублирующимися SKU, чтобы не замедлять работу магазина.

Таблица сравнения способов решения проблемы с дубликатами SKU

МетодПлюсыМинусы
Ручное исправление через админкуПростота, не требует кодаДолго при большом количестве товаров
SQL-запросы для поиска и очисткиБыстро, можно автоматизироватьРиск повреждения данных без опыта
Автоматическая фильтрация CSV перед импортомПредотвращает ошибки заранееТребует написания скриптов
Использование функций обновления по SKU в кодеГибко и надежноТребует разработки и тестирования
Как создать адаптивный шаблон WordPress с помощью PostCSS
09.04.2026
Как установить и настроить ABC Pagination в WordPress
13.01.2026
Как изменить структуру URL в WordPress без потери SEO
05.01.2026
Как добавить поддержку локализации в собственном шаблоне WordPress
07.02.2026
WooCommerce: как исправлять ошибку «Невозможно создать заказ без товара»
28.04.2026