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

Зачем автоматизировать создание SKU в WooCommerce?

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

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

Частые проблемы с SKU:

  • Повторяющиеся SKU из-за копирования товаров.
  • Отсутствие SKU у новых товаров.
  • Неправильный формат SKU, неудобный для учета.

Проверить SKU товаров можно в панели WordPress в разделе Товары, добавив столбец SKU через настройки экрана.

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

1. Добавляем код в functions.php активной темы или создаем небольшой плагин

add_action('save_post_product', 'generate_unique_sku_for_product', 10, 3);
function generate_unique_sku_for_product($post_ID, $post, $update) {
    // Проверяем, что это не автосохранение
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;

    // Получаем объект продукта
    $product = wc_get_product($post_ID);
    if (!$product) return;

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

    // Генерируем уникальный SKU
    $prefix = 'SKU'; // Можно заменить на свой префикс
    $unique_id = strtoupper(wp_generate_password(6, false, false)); // 6 символов A-Z
    $new_sku = $prefix . '-' . $unique_id;

    // Проверяем на уникальность SKU
    while (wc_get_product_id_by_sku($new_sku)) {
        $unique_id = strtoupper(wp_generate_password(6, false, false));
        $new_sku = $prefix . '-' . $unique_id;
    }

    // Устанавливаем SKU и сохраняем
    $product->set_sku($new_sku);
    $product->save();
}

2. Тестируем добавление нового товара

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

Проверка результата

  • Откройте список товаров в админке WooCommerce.
  • Добавьте колонку SKU через «Настройки экрана».
  • Убедитесь, что у новых товаров есть уникальный SKU.
  • Попробуйте создать несколько товаров подряд — SKU должны быть уникальными.

Частые ошибки при автоматическом создании SKU и как их исправить

  • SKU не сохраняется после добавления кода: проверьте, что хук save_post_product подключен правильно и код не конфликтует с другими плагинами.
  • Дублирование SKU: возможно, у вас есть плагин, который тоже генерирует SKU. Отключите его или добавьте логику проверки уникальности, как в примере.
  • Ошибка при сохранении товара: проверьте, что функция wc_get_product возвращает объект и нет ошибок PHP.

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

  • Используйте кеширование вызова wc_get_product_id_by_sku, если создаёте много товаров за раз.
  • Не запускайте код на автосохранениях и ревизиях, чтобы избежать лишних запросов.
  • Используйте префиксы SKU, соответствующие вашей системе учёта, чтобы облегчить поиск и фильтрацию.

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

МетодПлюсыМинусы
Плагин авто-генерации SKUПростота установки, часто есть настройки форматаМожет замедлять сайт, ограниченная кастомизация
Собственный код (пример выше)Гибкость, минимальное влияние на производительностьНужно разбираться в коде, поддержка на вас
Ручной ввод SKUПолный контроль над SKUБольшой риск ошибок и дубликатов, затратно по времени
Автоматизация создания и отправки email-рассылок в WordPress с помощью AI
09.01.2026
Как оптимизировать работу AI-плагинов в WordPress
21.02.2026
Автоматическое добавление метаданных к товарам в WooCommerce через код
18.05.2026
Как создать автоматический анализ качества кода в WordPress
24.03.2026
WooCommerce: автоматическое удаление неактивных заказов через код
21.05.2026