Подключите Perfect Day к WooCommerce.
Вы используете WooCommerce? Есть два способа: собственный плагин коннектора (рекомендуется, проще) или вариант вебхука через фрагмент кода. Оба варианта записывают данные на одну и ту же платформу — результат идентичен.
Необходимо сделать заранее: Сходите как раз общая подготовка Это включает в себя создание купона, получение пароля приложения и указание URL-адреса веб-перехватчика. Процедура занимает приблизительно пять минут и применима ко всем системам интернет-магазинов.
Способ 1 — Использование нативного коннектора (рекомендуется, ~10 мин)
Самый простой способ: мы поддерживаем собственный плагин WordPress для WooCommerce.
-
Установите плагин коннектора.
Административная панель WordPress вашего магазина WooCommerce → Плагины → Добавить. Скачайте ZIP-файл плагина. „Соединитель для магазина Perfect Day" Загрузите его (вы получите его от нас — ссылка для скачивания предоставляется по запросу через службу поддержки) и активируйте.
-
Настроить плагин
WP-Admin → Настройки → Коннектор Perfect Day. Входить:
- Хост платформы:
https://plattform.deinperfectday.de - Имя пользователя + пароль приложения из подготовки
Сохранять.
- Хост платформы:
-
Введите идентификатор купона для каждого товара.
WP-Admin → Продукты → Откройте товар. В боковой панели. „Идеальный день" Введите идентификатор купона (
15114и т. д.) и сохраните товар. -
Заказ на тестирование
Оформите заказ в магазине и установите статус „выполнен". WP-Admin → Заказы → Проверить примечание: „Сгенерировано 1 код идеального дня". Заказ отобразится в административной панели платформы в разделе... Идеальный день → Заказы в магазине, Клиент получает электронное письмо от бренда.
Метод 2 — Через универсальный веб-хук (~15 мин)
Если вы не хотите устанавливать плагин коннектора — например, если у вас очень старая версия WooCommerce или вы хотите использовать более простую конфигурацию — вы можете обратиться к веб-хуку с помощью небольшого фрагмента кода.
-
Идентификатор купона как пользовательское поле в описании товара.
WP-Admin → Продукты → Открыть продукт → Заблокировать „Собственные поля" (Если не отображается: в правом верхнем углу выберите „Параметры экрана" → активируйте „Пользовательские поля"). Новое поле:
- Имя:
pfd_coupon_id - Ценить:
15114(идентификатор вашего купона на платформе)
„Нажмите "Обновить».
- Имя:
-
Фрагмент кода в файле functions.php дочерней темы.
Добавьте следующий код в
функции.phpвашей активной дочерней темы. Введите ваше имя пользователя и пароль приложения в отмеченные поля.Просмотреть полный код — PHP · functions.php
add_action('woocommerce_order_status_completed', 'pfd_send_to_perfectday', 10, 1); function pfd_send_to_perfectday($order_id) { $order = wc_get_order($order_id); if (!$order) return; // Защита от идемпотентности: только один раз за заказ if ($order->get_meta('_pfd_webhook_sent', true)) return; $items = array(); foreach ($order->get_items() as $item) { $product = $item->get_product(); if (!$product) continue; $coupon_id = get_post_meta($product->get_id(), 'pfd_coupon_id', true); if (empty($coupon_id)) continue; $items[] = array( 'coupon_id' => (int) $coupon_id, 'count' => (int) $item->get_quantity(), ); } if (empty($items)) return; $payload = array( 'shop_order_id' => (string) $order->get_order_number(), 'shop_type' => 'woocommerce', 'shop_domain' => parse_url(home_url(), PHP_URL_HOST), 'customer' => array( 'email' => $order->get_billing_email(), 'name' => trim($order->get_billing_first_name() . ' ' . $order->get_billing_last_name()), 'locale' => substr(get_locale(), 0, 2), ), 'items' => $items, 'order_total_cents' => (int) round($order->get_total() * 100), 'currency' => $order->get_currency(), 'placed_at' => $order->get_date_paid() ? $order->get_date_paid()->format('c') : current_time('c'), ); // ⬇ Введите ВАШИ значения здесь ⬇ $username = 'ВАШЕ-ИМЯ-ПОЛЬЗОВАТЕЛЯ'; $app_pwd = 'xxxx xxxx xxxx xxxx xxxx xxxx'; // ⬆ Введите ВАШИ значения здесь ⬆ $response = wp_remote_post( 'https://plattform.deinperfectday.de/wp-json/perfectday/shop/webhook/order', array( 'headers' => array( 'Content-Type' => 'application/json', 'Authorization' => 'Basic ' . base64_encode($username . ':' . $app_pwd), ), 'body' => wp_json_encode($payload), 'timeout' => 15, ) ); if (!is_wp_error($response)) { $order->update_meta_data('_pfd_webhook_sent', '1'); $order->add_order_note(sprintf( 'Perfect Day: Webhook sent (HTTP %d)', wp_remote_retrieve_response_code($response) )); $order->save(); } else { $order->add_order_note('Perfect Day: Webhook failed — ' . $response->get_error_message()); } } -
Надежно храните учетные данные.
Встраивание пароля приложения непосредственно в PHP-код — неоптимальный вариант. Лучше: через
wp-config.phpОпределите константу и сошлитесь на неё в фрагменте кода.define('PFD_API_USER', 'your-name'); define('PFD_API_PASSWORD', 'xxxx xxxx xxxx xxxx xxxx xxxx'); // В этом фрагменте кода: // $username = PFD_API_USER; // $app_pwd = PFD_API_PASSWORD; -
Заказ на тестирование
Оформите заказ, установите статус „выполнено", затем откройте заказ в WP-Admin и выберите нужный вариант внизу. Примечания проверять:
Идеальный день: отправлен веб-хук (HTTP 200)→ Всё в порядке.
Поиск неисправностей.
Данный код не будет выполнен.
Находится ли фрагмент кода в правильной теме (дочерней теме!)? В противном случае он исчезнет после обновления темы. Также: хук. woocommerce_order_status_completed Этот хук срабатывает только при изменении статуса на „завершено". Если ваш способ оплаты оставляет заказы непосредственно в статусе „в обработке", измените хук на... woocommerce_order_status_processing.
HTTP 403 — forbidden_coupon
Он pfd_coupon_id Пользовательское поле указывает на купон, который не принадлежит вашему аккаунту провайдера. Проверьте это в административной панели платформы. Ваучеры, существует ли там данный идентификатор.
HTTP 401 — требуется аутентификация
Неверное имя пользователя (это имя пользователя WordPress, а не адрес электронной почты) или неверный пароль приложения, пароль аннулирован или скопирован с ошибкой.
Вы бы предпочли, чтобы мы это для вас настроили?
WooCommerce — это самый простой случай, обычно вы можете справиться с этим самостоятельно. Однако, если вам нужна помощь, мы можем установить и настроить коннектор для вас, включая сопоставление идентификаторов купонов ваших товаров.
Остались вопросы?
Маршрут 1 или маршрут 2 — какой мне выбрать?
Работает ли это также со старыми версиями WooCommerce?
Магазин подключен к сети — и что дальше?
После запуска веб-хука все заказы автоматически отобразятся в вашей административной панели. Если вам потребуется дополнительное подключение, каждый дополнительный магазин можно настроить всего за несколько минут.
Перейти к обзору магазина