Перейти к содержимому
 Magento 2 · 25–35 мин · продвинутый уровень

Интеграция Perfect Day в Magento 2.

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

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

Три маршрута с первого взгляда

  1. Какой путь вам больше подходит?

    • Пользовательский модуль Написание кода самостоятельно — около 2–3 часов разработки Magento. Описание приведено в этом руководстве.
    • Расширение веб-перехватчика Используйте материалы из Magento Marketplace и настройте сопоставление JSON.
    • Hosted Bridge Через Make.com / Zapier — пользовательский код не требуется.

Вариант 1 — Пользовательский модуль (для разработчиков Magento)

  1. Создайте атрибут "pfd_coupon_id" для каждого товара.

    Администрирование Magento → Магазины → Атрибуты → Товар„Добавить новый атрибут". Код атрибута pfd_coupon_id, Тип ввода: „Текстовое поле", обязательное поле: „Нет". Затем в разделе Магазины → Набор атрибутов Присвойте атрибут соответствующей группе. Введите идентификатор для каждого купона в редакторе товаров.

  2. Создайте структуру модулей.

    Пользовательский модуль состоит из нескольких файлов:

    Структура каталогов
    app/code/DigElite/PerfectDayConnector/ ├── etc/ │ ├── module.xml │ └── events.xml ├── Observer/ │ └── OrderPaidObserver.php └── registration.php
  3. registration.php + module.xml

    Файлы регистрации и определения модулей соответствуют стандарту Magento. registration.php Модуль регистрирует, etc/module.xml объявляет об этом с помощью setup_version 1.0.0.

  4. events.xml — отслеживание события order-paid

    Свяжите Observer с событием Magento. оплата_заказа:

    Просмотреть полный код — XML · etc/events.xml
    XML · etc/events.xml
  5. OrderPaidObserver.php — фактический процесс доставки

    Наблюдатель собирает идентификаторы купонов из позиций заказа, формирует полезную нагрузку и отправляет ее на веб-перехватчик Perfect-Day. Введите ваше имя пользователя и пароль приложения в константы.

    Просмотреть полный код — PHP · Observer/OrderPaidObserver.php
    PHP · Наблюдатель/OrderPaidObserver.php
    getEvent()->getPayment()->getOrder(); if (!$order) return; $items = []; foreach ($order->getAllItems() as $it) { $couponId = (int) $it->getProduct()->getData('pfd_coupon_id'); if ($couponId <= 0) continue; $items[] = ['coupon_id' => $couponId, 'count' => (int)$it->getQtyOrdered()]; } if (empty($items)) return; $payload = [ 'shop_order_id' => (string) $order->getIncrementId(), 'shop_type' => 'magento', 'shop_domain' => parse_url($order->getStore()->getBaseUrl(), PHP_URL_HOST), 'customer' => [ 'email' => $order->getCustomerEmail(), 'name' => trim($order->getCustomerFirstname() . ' ' . $order->getCustomerLastname()), 'locale' => substr($order->getStore()->getLocaleCode() ?: 'de', 0, 2), ], 'items' => $items, 'order_total_cents' => (int) round((float) $order->getGrandTotal() * 100), 'currency' => $order->getOrderCurrencyCode(), 'placed_at' => $order->getCreatedAt(), ]; $this->curl->setHeaders([ 'Content-Type' => 'application/json', 'Authorization' => 'Basic ' . base64_encode(self::PFD_USER . ':' . self::PFD_PWD), ]); $this->curl->post(self::PFD_URL, json_encode($payload)); } }
  6. Активировать модуль

    Через командную строку на сервере:

    Баш
    bin/magento module:enable DigElite_PerfectDayConnector bin/magento setup:upgrade bin/magento cache:flush

Способ 2 — Расширение торговой площадки + отображение

  1. Настройка расширения веб-перехватчика

    Использование коммерческого расширения для веб-хуков: Запуск по Изменение статуса заказа → Оплачено установить URL https://plattform.deinperfectday.de/wp-json/perfectday/shop/webhook/order, Заголовок Авторизация: Базовая. Восстановите формат JSON в сопоставлении тела запроса и пользовательский атрибут в сопоставлении элемента. pfd_coupon_id на items[*].coupon_id Свяжите их. Большинство расширений для веб-хуков могут сделать это без дополнительного кода.

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

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

    Разместите тестовый заказ, оплатите его, затем в личном кабинете платформы перейдите в раздел... Идеальный день → Заказы в магазине запись с shop_type=magento Проверено. Проверьте почтовый ящик клиента на наличие письма от бренда.

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

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

Газета «The Observer» не увольняется.

Кэш после настройка:обновление Не опорожнено? bin/magento cache:flush выполнять.

Пользовательский атрибут остается пустым

Атрибут pfd_coupon_id не присвоено ни одному набору атрибутов. В рамках Магазины → Набор атрибутов настигнуть.

HTTP-вызовы зависают/блокируют оформление заказа.

Планировщик задач Magento блокирует это. Переместите HTTP-запрос в очередь, используя... Magento\Framework\MessageQueue\PublisherInterface, вместо того, чтобы выполнять его синхронно в наблюдателе.

HTTP 401 / 403 / 400

Те же коды ошибок, что и в других магазинах: 401 = Неверная авторизация, 403 = Идентификатор купона не принадлежит вашей учетной записи, 400 = Недопустимое тело JSON (часто отсутствует адрес электронной почты клиента).

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

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

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

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

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

Действительно ли мне необходим разработчик?
Вариант 1 (пользовательский модуль) — да, это настоящая разработка Magento. Вариант 3 (хостинг через Make.com/Zapier) работает без какого-либо пользовательского кода. Или вы можете воспользоваться нашим сервисом настройки.
Почему бы просто не использовать готовый плагин?
Расширения Magento должны быть максимально адаптированы к конкретной версии Magento и теме оформления. Универсальный плагин будет более подвержен ошибкам, чем простой пользовательский модуль или мост. Если будет достаточный спрос, мы рассмотрим возможность разработки официального модуля.

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

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

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