Как использовать WooCommerce REST API для изменения атрибутов вариативных товаров

Диагностика задачи: зачем менять атрибуты вариативных товаров через REST API

В WooCommerce вариативные товары создаются на основе комбинаций атрибутов (цвет, размер, материал и др.). В ряде случаев требуется массово или программно обновлять эти атрибуты, например, изменить название, добавить новый вариант или удалить существующий. Если магазин интегрирован с внешними сервисами или автоматизируется через скрипты, удобнее управлять атрибутами через REST API, чем вручную в админке.

Что проверять перед началом

  • Убедитесь, что включено REST API в WooCommerce (обычно включено по умолчанию).
  • Проверьте права доступа: используйте ключи API с правами записи.
  • Подтвердите, что атрибуты созданы как глобальные (в разделе Товары > Атрибуты), иначе REST API не сможет управлять ими.

Пошаговое решение: изменение атрибутов вариативных товаров через WooCommerce REST API

1. Аутентификация и базовые настройки

Для работы с REST API используйте ключи Consumer Key и Consumer Secret, созданные в WooCommerce (WooCommerce > Настройки > Продвинутые > REST API). Пример базовой настройки клиента на PHP с помощью библиотеки Automattic/woocommerce:

require __DIR__ . '/vendor/autoload.php';
use Automattic\WooCommerce\Client;

$woocommerce = new Client(
    'https://example.com',
    'ck_xxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    'cs_xxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    [
        'version' => 'wc/v3',
        'query_string_auth' => true
    ]
);

2. Получение списка атрибутов

Для начала получите список всех атрибутов, чтобы узнать ID нужного:

$attributes = $woocommerce->get('products/attributes');
foreach ($attributes as $attribute) {
    echo $attribute->id . ' - ' . $attribute->name . "\n";
}

3. Получение терминов атрибута (вариантов)

Чтобы изменить варианты (термины) атрибута, сначала получите их:

$attribute_id = 1; // замените на нужный ID
$terms = $woocommerce->get("products/attributes/{$attribute_id}/terms");
foreach ($terms as $term) {
    echo $term->id . ' - ' . $term->name . "\n";
}

4. Обновление названия варианта (термина)

Для изменения имени варианта отправьте PUT-запрос:

$term_id = 10; // ID варианта
$data = ['name' => 'Новое название варианта'];
$updated_term = $woocommerce->put("products/attributes/{$attribute_id}/terms/{$term_id}", $data);

5. Добавление нового варианта

Чтобы добавить новый вариант, отправьте POST-запрос:

$data = [
    'name' => 'Новый вариант',
    'slug' => 'novyj-variant'
];
$new_term = $woocommerce->post("products/attributes/{$attribute_id}/terms", $data);

6. Удаление варианта

Удаление варианта происходит через DELETE-запрос:

$woocommerce->delete("products/attributes/{$attribute_id}/terms/{$term_id}", ['force' => true]);

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

  • Зайдите в админку WooCommerce в раздел «Атрибуты» — проверьте, что изменения отображаются.
  • Проверьте вариации товара: новые варианты должны появиться в списке, изменённые — обновлены.
  • При скриптовом использовании — добавьте логирование ответа API и убедитесь в отсутствии ошибок.

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

  • Ошибка 401 Unauthorized: неверные ключи API или недостаточные права — проверьте права ключей и URL сайта.
  • Ошибка 404 Not Found: неверный endpoint или ID атрибута — проверьте правильность URL и существование атрибута.
  • Изменения не применяются: попытка изменить не глобальные атрибуты — убедитесь, что атрибут зарегистрирован глобально.
  • Проблемы с кодировкой: используйте UTF-8 и корректные заголовки.

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

  • Используйте HTTPS для защиты данных при работе с REST API.
  • Ограничивайте права ключей API по необходимости: для операций с атрибутами нужны права записи, но не больше.
  • Кешируйте ответы API при частом чтении, чтобы снизить нагрузку на сервер.
  • При массовых изменениях используйте пакетные запросы или задержки, чтобы избежать таймаутов.

Сравнение способов управления атрибутами вариативных товаров

МетодПлюсыМинусы
Админка WooCommerce Интуитивно понятно, нет кода Не подходит для массовых операций и автоматизации
REST API с кодом Автоматизация, интеграция с внешними системами, массовое обновление Требует навыков программирования и настройки API
Плагины для атрибутов Добавляют удобный UI и дополнительные функции Могут вызывать конфликты и нагрузку, требуют обновления
Автоматическое удаление неоплаченных заказов в WooCommerce
03.06.2026
Как установить ограничение на регистрацию WordPress по email
18.03.2026
Как создать Custom Post Type в WordPress с примерами кода
21.11.2025
Как использовать REST API для создания нестандартных запросов в WordPress
06.03.2026
Автоматическое создание резервных копий WordPress: практическое руководство
03.12.2025

Хотите научиться создавать сайты и зарабатывать на этом от 30 000 рублей в месяц?

Записаться на курс сейчас