Исправление дублирования SKU при импорте товаров в WooCommerce

Диагностика проблемы дублирующихся SKU при импорте

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

Чтобы проверить наличие дублирующихся SKU, выполните запрос к базе данных:

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

Если результат не пуст, значит в базе есть товары с одинаковым SKU.

Почему WooCommerce не допускает дублирование SKU

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

Пошаговое решение: как избежать и исправить дублирование SKU при импорте

1. Проверка исходного файла перед импортом

Перед загрузкой CSV проверьте столбец SKU на уникальность. В Excel или Google Sheets используйте функцию условного форматирования для выявления дубликатов или формулу:

=COUNTIF(A:A; A2) > 1

где A — столбец с SKU.

2. Предварительная очистка базы

Если импорт повторный, рекомендуем удалить товары с конфликтующими SKU перед загрузкой. Например, для удаления товаров с определённым SKU через WP-CLI:

wp post list --post_type=product --meta_key=_sku --meta_value=SKU_значение --field=ID | xargs -r wp post delete --force

3. Модификация процесса импорта с проверкой SKU

Если импорт происходит через кастомный код или плагин, добавьте проверку существования SKU перед созданием товара:

function wc_product_exists_by_sku($sku) {
    global $wpdb;
    $product_id = $wpdb->get_var(
        $wpdb->prepare(
            "SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key = '_sku' AND meta_value = %s LIMIT 1",
            $sku
        )
    );
    return $product_id ? true : false;
}

// Использование при импорте
if (!wc_product_exists_by_sku($sku)) {
    // Создаем товар
} else {
    // Обновляем существующий товар или пропускаем
}

4. Использование плагина WP All Import с уникальной проверкой SKU

В настройках плагина активируйте опцию «Обновлять существующие продукты по SKU». Это позволяет избежать дублирования и обновлять данные по уже существующим товарам.

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

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

Частые ошибки и способы их исправления

  • Ошибка: Импорт товаров не происходит, возникает ошибка «Duplicate SKU».
    Решение: Проверьте уникальность SKU в CSV, активируйте функцию обновления по SKU в плагине импорта.
  • Ошибка: При массовом импорте старые товары не обновляются, создаются дубли.
    Решение: В коде импорта реализуйте проверку существования SKU и обновление товара, а не создание нового.
  • Ошибка: SKU пустые или не заполнены.
    Решение: Заполните уникальные SKU для всех товаров, WooCommerce не рекомендует оставлять поле пустым.

Практические советы по безопасности и производительности

  • При импорте больших объемов товаров используйте WP-CLI или специализированные плагины с поддержкой пакетной загрузки, чтобы избежать тайм-аутов.
  • Отключайте лишние плагины и кеширование на время импорта, чтобы избежать конфликтов.
  • Используйте индексы по мета-полям _sku в базе данных для ускорения запросов. Например, добавьте индекс через phpMyAdmin:
    ALTER TABLE wp_postmeta ADD INDEX sku_index (meta_key(191), meta_value(191));
  • Регулярно проводите аудит SKU на уникальность, если используете внешние системы синхронизации.

Сравнение вариантов решения дублирования SKU

МетодПреимуществаНедостатки
Ручная проверка и правка CSVПростота, не требует кодаТрудоемко при большом объеме товаров
Кодовая проверка перед импортомАвтоматизация, гибкостьТребуется разработка и тестирование
Использование WP All Import с обновлением по SKUУдобный интерфейс, надежноПлатный плагин, ограниченная кастомизация
WooCommerce: как исправить невозможность удаления заказа после оплаты
27.06.2026
Исключение товаров по атрибуту из корзины WooCommerce: практическое решение
01.06.2026
WooCommerce: как исправить невозможность отмены заказа после оплаты
15.06.2026
WooCommerce: как исключить товары по атрибуту из поиска и фильтров
19.06.2026
Исправление дублирования SKU при импорте товаров в WooCommerce
10.05.2026