WooCommerce: автоматическое создание уникального SKU для товаров через код

Диагностика проблемы: зачем нужен уникальный SKU в WooCommerce

SKU (Stock Keeping Unit) — это уникальный идентификатор товара в WooCommerce, используемый для учета и управления запасами. Если SKU не уникален, это приведет к ошибкам при синхронизации с внешними системами, путанице в отчетах и проблемам с инвентаризацией. Часто при массовом импорте товаров или быстром создании карточек SKU не задаются вручную или дублируются, что становится причиной проблем.

Как автоматически создавать уникальные SKU для новых товаров

Решение — программно генерировать уникальные SKU при создании или обновлении товара. Это избавит от ручного ввода и исключит дублирование.

Основная логика генерации SKU

Можно использовать префикс и ID товара, дату или случайный набор символов. Главное — гарантировать уникальность.

Пример кода для functions.php

add_action('woocommerce_new_product', 'generate_unique_sku_for_product');
function generate_unique_sku_for_product($product_id) {
    $product = wc_get_product($product_id);
    if (!$product) return;

    // Если SKU уже задан, ничего не делаем
    if ($product->get_sku()) return;

    $prefix = 'SKU';
    $unique_part = $product_id . '-' . wp_rand(1000, 9999);
    $sku = $prefix . $unique_part;

    // Проверяем уникальность SKU
    while (wc_get_product_id_by_sku($sku)) {
        $unique_part = $product_id . '-' . wp_rand(1000, 9999);
        $sku = $prefix . $unique_part;
    }

    $product->set_sku($sku);
    $product->save();
}

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

Пошаговое внедрение решения

  1. Откройте файл functions.php вашей дочерней темы или создайте небольшой плагин для кастомных функций.
  2. Добавьте приведенный выше код.
  3. Сохраните файл и загрузите на сервер.
  4. Создайте новый товар в WooCommerce и проверьте, что у него появился уникальный SKU.

Как проверить, что автоматическое создание SKU работает

  • Создайте новый товар в админке WooCommerce без указания SKU.
  • Откройте карточку товара и убедитесь, что поле SKU заполнено автоматически.
  • Проверьте, что SKU уникален, например, через экспорт товаров или поиск по SKU в WooCommerce.
  • Можно также попробовать импортировать товары с пустыми SKU и проверить, что уникальные SKU назначаются.

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

  • SKU не генерируется: проверьте, что хук woocommerce_new_product срабатывает (возможно, используйте save_post_product для надежности).
  • Дубли SKU: код проверяет уникальность через wc_get_product_id_by_sku(), если возникают дубли, увеличьте вариативность уникальной части (можно добавить timestamp).
  • Конфликты с другими плагинами: некоторые плагины тоже могут управлять SKU, отключите их для теста.
  • Проблемы с кешированием: очистите кеш сайта и браузера после внедрения.

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

  • Генерация SKU не должна тормозить создание товара — используйте минимально тяжелые операции.
  • Избегайте циклов с потенциально бесконечным повтором — ограничьте число попыток генерации SKU.
  • Если у вас много товаров, рассмотрите генерацию SKU пакетно через WP-CLI или отдельный скрипт.
  • При массовом импорте товаров настройте генерацию SKU в обработчике импорта, чтобы не генерировать их повторно.

Сравнение вариантов автоматизации создания SKU

МетодПреимуществаНедостаткиПример использования
Код на хуке woocommerce_new_productЛегко внедрить, работает при создании товараНе сработает при массовом импорте без доработкиПример кода выше
Обработка в импортере CSVГенерирует SKU сразу для всех товаровНужно дорабатывать импорт, сложнее поддерживатьФильтр woocommerce_product_import_inserted_product_object
Плагины управления SKUГотовые решения с интерфейсомМожет быть избыточно, платныеПлагины на CodeCanyon или WP репозитории
WooCommerce: автоматическая отправка счетов-фактур по email покупателям
29.04.2026
Автопостинг в WordPress с помощью AI плагинов: практическое руководство
06.02.2026
Автоматическое создание резервных копий в WordPress: лучшие практические решения
19.11.2025
WooCommerce: автоматическое удаление неактивных корзин по срокам через код
24.06.2026
Автоматизация управления памятью в WordPress: практические решения и примеры
12.04.2026