Перейти к содержимому
 Товары для магазинов 6 · 20–30 мин · продвинутый уровень

Интеграция Perfect Day в Shopware 6.

Продавайте свои купоны Perfect Day через свой магазин Shopware 6. Shopware не предоставляет веб-хук с пользовательским содержимым полей по умолчанию — вам понадобится небольшой мост. Уведомление: Данное руководство относится к Shopware 6. Для Shopware 5 обратитесь в службу поддержки.

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

Шаг 1 — Создайте пользовательское поле для идентификатора купона.

  1. Создать набор пользовательских полей

    Администратор Shopware → Настройки → Система → Дополнительные поля„Создавайте наборы". Название набора: Идеальный день. Под Задания вариант „"Продукт"" выбирать.

  2. Добавить поле

    Новое поле со следующими значениями:

    • Техническое название: pfd_coupon_id
    • Тип: Число (целое число)
    • Отображаемое имя: Идентификатор купона Perfect Day

    Сохранять.

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

  1. Войдите в редактор товаров.

    Администратор Shopware → Каталоги → Товары → Открыть продукт → Вкладки „Технические характеристики" → Блок „"Дополнительные поля"". Набор „Идентификатор купона Perfect Day" на основе данных из бэк-офиса платформы (например,. 15114) и сохранить.

Шаг 3 — Установите приложение Bridge

Shopware не включает веб-хук для работы с пользовательским содержимым полей. Для этого вам потребуется небольшое приложение Shopware. Мы подготовили шаблон приложения — вы можете получить готовый продукт по запросу в нашей службе поддержки. Или вы можете создать его самостоятельно, используя этот шаблон.

  1. Манифест приложения (manifest.xml)

    В манифесте регистрируется приложение и веб-хук для обработки заказов. Укажите свой домен-мост в манифесте. URL-атрибут.

    Просмотреть полный код — XML · manifest.xml
    XML · manifest.xml
    PerfectDayConnector  Отправьте данные заказа с идентификаторами купонов Perfect Day на платформу. DigElite (c) DigElite 1.0.0 С
  2. Конечная точка моста (собственный сервер)

    Мост принимает веб-хук Shopware, извлекает пользовательское поле для каждого товара, преобразует его в формат Perfect Day и пересылает дальше. Пример на PHP:

    Просмотреть полный код — PHP · bridge.php
    PHP · bridge.php
    <?php
    // bridge.php — empfängt Shopware-Webhook, ruft Shopware-API für
    // Produktdetails, leitet ans Perfect Day weiter.
    
    $rawPayload = file_get_contents('php://input');
    $payload = json_decode($rawPayload, true);
    $order = $payload['data']['payload']['order'] ?? null;
    if (!$order) { http_response_code(400); exit; }
    
    // Shopware-API-Token holen (Server-zu-Server, eigene Credentials)
    $swToken = sw_admin_token();
    
    $items = [];
    foreach ($order['lineItems'] as $li) {
        $product = sw_api_get('/api/product/' . $li['productId'], $swToken);
        $couponId = $product['customFields']['pfd_coupon_id'] ?? null;
        if (!$couponId) continue;
        $items[] = ['coupon_id' => (int)$couponId, 'count' => (int)$li['quantity']];
    }
    if (empty($items)) { http_response_code(200); exit; }
    
    $pfdPayload = [
        'shop_order_id' => $order['orderNumber'],
        'shop_type'     => 'shopware',
        'shop_domain'   => parse_url($order['salesChannel']['domains'][0]['url'], PHP_URL_HOST),
        'customer' => [
            'email'  => $order['orderCustomer']['email'],
            'name'   => trim($order['orderCustomer']['firstName'] . ' ' . $order['orderCustomer']['lastName']),
            'locale' => substr($order['language']['locale']['code'], 0, 2),
        ],
        'items'             => $items,
        'order_total_cents' => (int) round(($order['amountTotal'] ?? 0) * 100),
        'currency'          => $order['currency']['isoCode'] ?? 'EUR',
        'placed_at'         => $order['orderDateTime'] ?? gmdate('c'),
    ];
    
    $ch = curl_init('https://plattform.deinperfectday.de/wp-json/perfectday/shop/webhook/order');
    curl_setopt_array($ch, [
        CURLOPT_POST           => 1,
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_HTTPHEADER     => [
            'Content-Type: application/json',
            'Authorization: Basic ' . base64_encode('DEIN-USER:DEIN APP PWD'),
        ],
        CURLOPT_POSTFIELDS => json_encode($pfdPayload),
        CURLOPT_TIMEOUT    => 15,
    ]);
    curl_exec($ch);
    curl_close($ch);
    
    http_response_code(200);
  3. Распакуйте приложение и установите его.

    Манифест и URL-адрес моста в одном месте. app.zip упаковка (см. Документация ShopwareЗатем Shopware Admin → Расширения → Загрузите свои собственные расширения → Вставьте ZIP-файл → активируйте.

Проще: используйте Cloud Bridge.

Если настройка собственного моста кажется слишком сложной, это также возможно и без собственного сервера.

  1. Make.com, Zapier или n8n

    Make.com: В качестве триггера используется модуль „Веб-хуки → Пользовательский веб-хук", для обогащения данных — „Shopware → Получить товар", в качестве выходных данных — „HTTP → Выполнить запрос" — настройка занимает около 15 минут. н8н Это решение позволяет размещать его на собственном сервере, что обеспечивает более полное соответствие требованиям GDPR. Отправьте нам запрос в службу поддержки с указанием предпочитаемого инструмента, и мы предоставим вам предварительно настроенный рабочий процесс.

Шаг 4 — Порядок проведения тестирования

  1. Оформите и проверьте заказ

    Разместите тестовый заказ и отметьте платеж как „Оплачено". Shopware должен автоматически вызвать мост. Проверьте: Административная панель платформы → Идеальный день → Заказы в магазине (Запись с) shop_type=shopware?) и почтовый ящик клиента для отправки фирменного электронного письма с кнопкой печати.

Если что-то застряло

Поиск неисправностей.

Веб-перехватчик не был выполнен.

Администратор Shopware → Настройки → Система → Журналы → Веб-перехватчики приложений. Если отображаются ошибки, это обычно означает, что URL-адрес манифеста приложения неверен или мост недоступен.

HTTP 401 на конечной точке Perfect Day

Имя пользователя или пароль приложения в коде моста неверны. wp-config.php— Константы более безопасны, чем жестко заданные значения.

HTTP 403 — forbidden_coupon

Он pfd_coupon_id Элементы из пользовательского поля не относятся к вашей учетной записи поставщика на платформе.

Сервер моста недоступен.

Работает ли мост на вашем собственном сервере? Действителен ли SSL-сертификат? Доступен ли сервер извне? Shopware должен иметь возможность отправлять POST-запросы из своего облачного бэкэнда на ваш сервер.

Настройка службы

Вы бы предпочли, чтобы мы это для вас настроили?

Shopware значительно сложнее, чем Shopify или WooCommerce, из-за обязательного использования моста. Мы предлагаем полностью интегрированное приложение Shopware со встроенным мостом, или же можем разместить мост полностью на наших серверах. Вам нужно лишь предоставить нам ваши учетные данные API Shopware.

Часто задаваемые вопросы

Остались вопросы?

Возможно ли это сделать без собственного сервера?
Да. Вместо собственного хостинга вы можете использовать Make.com, Zapier или собственный n8n-интерфейс. По запросу мы можем предоставить предварительно настроенный рабочий процесс.
Подходит ли это руководство и для Shopware 5?
Нет. В Shopware 5 нет встроенной поддержки веб-хуков для пользовательских полей — требуется отдельный плагин. Если вы используете Shopware 5, пожалуйста, отправьте запрос в службу поддержки.
Вы планируете выпустить собственный плагин для Shopware?
Да, в среднесрочной перспективе. Нативный плагин устранит необходимость в настройке моста. Сроки зависят от спроса — дайте знать, если вас это заинтересует.

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

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

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