Перейти к содержимому
 WooCommerce · 10 мин · легко

Подключите Perfect Day к WooCommerce.

Вы используете WooCommerce? Есть два способа: собственный плагин коннектора (рекомендуется, проще) или вариант вебхука через фрагмент кода. Оба варианта записывают данные на одну и ту же платформу — результат идентичен.

Необходимо сделать заранее: Сходите как раз общая подготовка Это включает в себя создание купона, получение пароля приложения и указание URL-адреса веб-перехватчика. Процедура занимает приблизительно пять минут и применима ко всем системам интернет-магазинов.

Способ 1 — Использование нативного коннектора (рекомендуется, ~10 мин)

Самый простой способ: мы поддерживаем собственный плагин WordPress для WooCommerce.

  1. Установите плагин коннектора.

    Административная панель WordPress вашего магазина WooCommerce → Плагины → Добавить. Скачайте ZIP-файл плагина. „Соединитель для магазина Perfect Day" Загрузите его (вы получите его от нас — ссылка для скачивания предоставляется по запросу через службу поддержки) и активируйте.

  2. Настроить плагин

    WP-Admin → Настройки → Коннектор Perfect Day. Входить:

    • Хост платформы: https://plattform.deinperfectday.de
    • Имя пользователя + пароль приложения из подготовки

    Сохранять.

  3. Введите идентификатор купона для каждого товара.

    WP-Admin → Продукты → Откройте товар. В боковой панели. „Идеальный день" Введите идентификатор купона (15114 и т. д.) и сохраните товар.

  4. Заказ на тестирование

    Оформите заказ в магазине и установите статус „выполнен". WP-Admin → Заказы → Проверить примечание: „Сгенерировано 1 код идеального дня". Заказ отобразится в административной панели платформы в разделе... Идеальный день → Заказы в магазине, Клиент получает электронное письмо от бренда.

Метод 2 — Через универсальный веб-хук (~15 мин)

Если вы не хотите устанавливать плагин коннектора — например, если у вас очень старая версия WooCommerce или вы хотите использовать более простую конфигурацию — вы можете обратиться к веб-хуку с помощью небольшого фрагмента кода.

  1. Идентификатор купона как пользовательское поле в описании товара.

    WP-Admin → Продукты → Открыть продукт → Заблокировать „Собственные поля" (Если не отображается: в правом верхнем углу выберите „Параметры экрана" → активируйте „Пользовательские поля"). Новое поле:

    • Имя: pfd_coupon_id
    • Ценить: 15114 (идентификатор вашего купона на платформе)

    „Нажмите "Обновить».

  2. Фрагмент кода в файле functions.php дочерней темы.

    Добавьте следующий код в функции.php вашей активной дочерней темы. Введите ваше имя пользователя и пароль приложения в отмеченные поля.

    Просмотреть полный код — PHP · functions.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()); } }
  3. Надежно храните учетные данные.

    Встраивание пароля приложения непосредственно в PHP-код — неоптимальный вариант. Лучше: через wp-config.phpОпределите константу и сошлитесь на неё в фрагменте кода.

    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;
  4. Заказ на тестирование

    Оформите заказ, установите статус „выполнено", затем откройте заказ в 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 — какой мне выбрать?
Для большинства провайдеров мы рекомендуем вариант 1 (плагин Connector). Он обновляется автоматически через обновление плагинов WordPress. Вариант 2 (Snippet) предназначен для провайдеров со своей собственной командой разработчиков, которые предпочитают облегченную конфигурацию без дополнительного плагина. Функционально оба варианта идентичны.
Работает ли это также со старыми версиями WooCommerce?
Да. Если для работы плагина коннектора требуется слишком новая версия WooCommerce, используйте метод 2 с фрагментом кода — он также работает со старыми версиями.

Магазин подключен к сети — и что дальше?

После запуска веб-хука все заказы автоматически отобразятся в вашей административной панели. Если вам потребуется дополнительное подключение, каждый дополнительный магазин можно настроить всего за несколько минут.

Перейти к обзору магазина