Часто возникает необходимость автоматизировать экспорт заказов из WordPress, чтобы анализировать данные в удобном табличном формате, например, в Google Sheets. Это особенно актуально для интернет-магазинов, которые хотят получить быстрый доступ к информации о заказах без использования сложных CRM-систем.
Почему стоит использовать Google Sheets для экспорта заказов WordPress
Google Sheets — это простой, доступный и бесплатный инструмент для работы с таблицами, который позволяет не просто хранить данные, но и делиться ими с коллегами в реальном времени, настраивать фильтры и строить отчеты. Автоматический экспорт заказов в Google Sheets помогает:
- Сократить время на ручной ввод и обработку данных;
- Обеспечить актуальность данных для всех сотрудников;
- Использовать мощные функции Google Sheets для анализа заказов;
- Интегрировать данные с другими сервисами через Google Apps Script.
Подготовка к автоматическому экспорту заказов WordPress
Для реализации автоматического экспорта понадобится:
- Доступ к Google API и создание проекта в Google Cloud Platform;
- Включение Google Sheets API в консоли;
- Создание учетных данных (OAuth 2.0 client ID или сервисный аккаунт) для доступа к Google Sheets с помощью кода;
- Создание Google Sheets документа, куда будут записываться заказы;
- Доступ к WordPress с правами администратора и возможность добавлять кастомный PHP-код (например, через плагин Code Snippets или в functions.php вашей темы).
Настройка Google API
После создания проекта в Google Cloud Platform включите Google Sheets API и скачайте JSON-файл с ключами сервисного аккаунта. Этот файл понадобится для аутентификации вашего PHP-скрипта.
Далее в Google Sheets создайте новую таблицу и предоставьте сервисному аккаунту права на редактирование, используя email из JSON-файла.
Пример PHP-кода для экспорта заказов WordPress в Google Sheets
Ниже приведен пример функции wporder_export_orders_to_gsheets(), которая собирает заказы WooCommerce и отправляет их в Google Sheets с помощью Google API Client для PHP.
require_once __DIR__ . '/vendor/autoload.php'; // Подключаем Google Client, установите через Composer
function wporder_export_orders_to_gsheets() {
// Путь к JSON с учетными данными сервисного аккаунта
$credentialsPath = __DIR__ . '/credentials.json';
// ID Google Sheets документа
$spreadsheetId = 'ВАШ_ID_ТАБЛИЦЫ';
// Создаем клиент
$client = new Google_Client();
$client->setApplicationName('WPOrder Export');
$client->setScopes([Google_Service_Sheets::SPREADSHEETS]);
$client->setAuthConfig($credentialsPath);
$service = new Google_Service_Sheets($client);
// Получаем заказы WooCommerce
$args = [
'limit' => 20, // Кол-во заказов для экспорта
'orderby' => 'date',
'order' => 'DESC',
'return' => 'objects',
];
$orders = wc_get_orders($args);
// Формируем данные для таблицы
$values = [['ID', 'Дата', 'Статус', 'Сумма', 'Клиент', 'Email']];
foreach ($orders as $order) {
$values[] = [
$order->get_id(),
$order->get_date_created()->date('Y-m-d H:i'),
$order->get_status(),
$order->get_total(),
$order->get_billing_first_name() . ' ' . $order->get_billing_last_name(),
$order->get_billing_email(),
];
}
$body = new Google_Service_Sheets_ValueRange([
'values' => $values
]);
$params = [
'valueInputOption' => 'RAW'
];
// Записываем данные в таблицу, начиная с A1
$result = $service->spreadsheets_values->update($spreadsheetId, 'A1', $body, $params);
if ($result->getUpdatedCells() > 0) {
error_log('WPOrder: Экспорт заказов в Google Sheets успешно выполнен.');
} else {
error_log('WPOrder: Ошибка при экспорте заказов в Google Sheets.');
}
}
// Пример вызова функции по крону или вручную
// wporder_export_orders_to_gsheets();
Автоматизация экспорта заказов через WP-Cron
Чтобы экспорт происходил регулярно, удобно настроить задачу WP-Cron. В functions.php добавьте регистрацию события и обработчика:
function wporder_schedule_export() {
if (!wp_next_scheduled('wporder_export_orders_event')) {
wp_schedule_event(time(), 'hourly', 'wporder_export_orders_event');
}
}
add_action('wp', 'wporder_schedule_export');
add_action('wporder_export_orders_event', 'wporder_export_orders_to_gsheets');
Этот код будет запускать экспорт заказов каждый час. Вы можете изменить интервал или добавить свои условия.
Дополнительные советы и плагины для автоматизации заказов
Если вы предпочитаете готовые решения, обратите внимание на плагины, которые помогают интегрировать WooCommerce с Google Sheets без кода:
- WPRemark — плагин для автоматизации работы с заказами и отзывами, может быть настроен на выгрузку данных;
- Плагин Google Sheets Integration, который упрощает связь между WooCommerce и таблицами Google;
- Использование сервисов автоматизации, например Zapier или Integromat, для интеграции без программирования.
Обработка ошибок и отладка экспорта
При работе с Google API важно корректно обрабатывать ошибки:
- Проверьте права доступа сервисного аккаунта к таблице Google Sheets;
- Обрабатывайте исключения Google_Client и Google_Service_Sheets в PHP;
- Используйте логирование для диагностики, например, error_log или специализированные плагины;
- Убедитесь, что cron-задачи WP-Cron действительно выполняются (можно использовать плагин WP Crontrol для их просмотра и запуска вручную).
Пример обработки исключений в функции экспорта
try {
$result = $service->spreadsheets_values->update($spreadsheetId, 'A1', $body, $params);
} catch (Exception $e) {
error_log('WPOrder: Ошибка Google Sheets API: ' . $e->getMessage());
}
Заключение по автоматическому экспорту заказов
Автоматизация экспорта заказов WordPress в Google Sheets — мощный инструмент для бизнеса, который позволяет быстро получать актуальные данные и анализировать их без лишних усилий. Правильная настройка Google API и интеграция с WooCommerce через PHP-код дает полный контроль над процессом и возможность адаптировать его под любые задачи.
Используйте приведенный пример как основу, адаптируя его под особенности вашего магазина и бизнес-процессов. При необходимости комбинируйте код с готовыми плагинами, например, WPRemark для расширенной автоматизации.