Иногда возникает необходимость массового и регулярного обновления каталога WooCommerce из таблицы Google Sheets. Это удобно, если поставщик или внутренний отдел ведут учет товаров в Google Sheets, а вы хотите автоматизировать процесс обновления магазина без ручного импорта CSV.
Почему автоматический импорт из Google Sheets важен для WooCommerce
Ручное обновление товаров — рутинная и часто ошибка подверженная задача. Автоматизация позволяет:
- Сохранять актуальность ассортимента без затрат времени
- Избежать человеческих ошибок при копировании данных
- Обеспечить быструю реакцию на изменения цен и наличия
Google Sheets — популярный и удобный инструмент, поддерживающий совместную работу и облачное хранение, поэтому интеграция с WooCommerce здесь логична.
Основные подходы к импорту из Google Sheets в WooCommerce
Существует несколько способов автоматизировать импорт:
1. Использовать плагин с поддержкой импорта из Google Sheets
Плагины, например, WP Importer, позволяют настроить связку с Google Sheets и автоматически обновлять товары по расписанию.
Плюсы: простой интерфейс, расписание, поддержка маппинга полей.
Минусы: может быть платным, зависимость от плагина.
2. Использовать Google Sheets API и собственный скрипт на PHP
Если вы предпочитаете гибкость, можно написать собственный скрипт, который будет обращаться к Google Sheets API, получать данные и обновлять товары через WooCommerce REST API.
Плюсы: максимальный контроль, можно реализовать любую логику.
Минусы: требует навыков программирования, настройка API.
3. Экспорт CSV из Google Sheets и автоматический импорт с помощью плагина
В Google Sheets можно настроить экспорт CSV по URL, затем плагин типа WP All Import будет автоматически импортировать этот CSV.
Плюсы: не требует программирования.
Минусы: менее гибко, задержка обновления.
Пример: автоматический импорт из Google Sheets с помощью собственного PHP-скрипта
Рассмотрим вариант с использованием Google Sheets API и WooCommerce REST API. Для этого понадобится создать сервисный аккаунт в Google Cloud Console и получить JSON-файл с ключами.
Пример функции для получения данных из Google Sheets в WordPress:
function wptips_get_google_sheet_data($spreadsheetId, $range) {
require_once __DIR__ . '/vendor/autoload.php';
$client = new Google_Client();
$client->setApplicationName('WPTips Importer');
$client->setScopes([Google_Service_Sheets::SPREADSHEETS_READONLY]);
$client->setAuthConfig(__DIR__ . '/credentials.json');
$service = new Google_Service_Sheets($client);
$response = $service->spreadsheets_values->get($spreadsheetId, $range);
return $response->getValues();
}Далее для обновления или создания товаров используем WooCommerce REST API. Пример функции для обновления товара по SKU:
function wptips_update_woocommerce_product($product_data) {
$consumer_key = 'ck_xxx';
$consumer_secret = 'cs_xxx';
$store_url = 'https://yourstore.ru';
$sku = $product_data['sku'];
$args = [
'headers' => [
'Authorization' => 'Basic ' . base64_encode($consumer_key . ':' . $consumer_secret),
'Content-Type' => 'application/json'
],
'body' => json_encode($product_data),
'timeout' => 60
];
// Поиск товара по SKU
$response = wp_remote_get("$store_url/wp-json/wc/v3/products?sku=$sku", $args);
$products = json_decode(wp_remote_retrieve_body($response), true);
if (!empty($products)) {
// Обновляем первый найденный товар
$product_id = $products[0]['id'];
$update_response = wp_remote_request("$store_url/wp-json/wc/v3/products/$product_id", [
'method' => 'PUT',
'headers' => $args['headers'],
'body' => json_encode($product_data),
'timeout' => 60
]);
return json_decode(wp_remote_retrieve_body($update_response), true);
} else {
// Создаем новый товар
$create_response = wp_remote_post("$store_url/wp-json/wc/v3/products", $args);
return json_decode(wp_remote_retrieve_body($create_response), true);
}
}Как настроить расписание для автоматического импорта
Для регулярного обновления можно использовать WP-Cron. Пример добавления задачи в functions.php:
add_action('wptips_scheduled_import', 'wptips_run_import');
if (!wp_next_scheduled('wptips_scheduled_import')) {
wp_schedule_event(time(), 'hourly', 'wptips_scheduled_import');
}
function wptips_run_import() {
$spreadsheetId = 'ваш_id_таблицы';
$range = 'Sheet1!A1:G100';
$rows = wptips_get_google_sheet_data($spreadsheetId, $range);
foreach ($rows as $row) {
// Формируем массив данных для обновления товара
$product_data = [
'sku' => $row[0],
'name' => $row[1],
'regular_price' => $row[2],
'description' => $row[3],
// Добавьте другие поля по необходимости
];
wptips_update_woocommerce_product($product_data);
}
}Такой подход позволяет запускать импорт автоматически каждый час, подгружая свежие данные из Google Sheets.
Рекомендации по выбору плагинов для импорта
Если вы не хотите писать код, обратите внимание на плагины:
- WP Importer — поддержка различных источников данных, включая Google Sheets, настройка расписаний, удобный интерфейс.
- Clearfy Pro — оптимизация и расширение возможностей WooCommerce, возможна интеграция с импортом.
Подобные инструменты значительно упрощают настройку, но если нужны гибкие сценарии, лучше писать собственные решения.
Типичные ошибки при автоматическом импорте и как их избежать
1. Проблемы с авторизацией в Google API — проверьте корректность ключей и права доступа.
2. Несоответствие формата данных — убедитесь, что структура Google Sheets совпадает с ожидаемой схемой WooCommerce.
3. Ограничения WP-Cron — не все хостинги корректно запускают задачи, можно использовать системный cron.
4. Конфликты с другими плагинами — тестируйте импорт на тестовом сайте, отключайте плагины, которые могут мешать.
Выводы
Автоматический импорт товаров из Google Sheets в WooCommerce — мощный инструмент для поддержания актуального каталога. Выбор метода зависит от ваших навыков и бюджета: готовые плагины ускоряют запуск, а кодовые решения обеспечивают гибкость и масштабируемость.
Используйте примеры из статьи, адаптируя под свои задачи, и не забывайте про резервные копии перед массовыми изменениями.