Интеграция Perfect Day в Magento 2.
В Magento нет встроенной функции веб-хуков — вам потребуется небольшой пользовательский модуль, который будет отслеживать событие оформления заказа. Это руководство предназначено для продавцов, имеющих собственного разработчика Magento или агентство. Если у вас нет разработчика, мы рекомендуем воспользоваться нашей услугой по настройке.
Необходимо сделать заранее: Сходите как раз общая подготовка Это включает в себя создание купона, получение пароля приложения и указание URL-адреса веб-перехватчика. Процедура занимает приблизительно пять минут и применима ко всем системам интернет-магазинов.
Три маршрута с первого взгляда
-
Какой путь вам больше подходит?
- Пользовательский модуль Написание кода самостоятельно — около 2–3 часов разработки Magento. Описание приведено в этом руководстве.
- Расширение веб-перехватчика Используйте материалы из Magento Marketplace и настройте сопоставление JSON.
- Hosted Bridge Через Make.com / Zapier — пользовательский код не требуется.
Вариант 1 — Пользовательский модуль (для разработчиков Magento)
-
Создайте атрибут "pfd_coupon_id" для каждого товара.
Администрирование Magento → Магазины → Атрибуты → Товар → „Добавить новый атрибут". Код атрибута
pfd_coupon_id, Тип ввода: „Текстовое поле", обязательное поле: „Нет". Затем в разделе Магазины → Набор атрибутов Присвойте атрибут соответствующей группе. Введите идентификатор для каждого купона в редакторе товаров. -
Создайте структуру модулей.
Пользовательский модуль состоит из нескольких файлов:
app/code/DigElite/PerfectDayConnector/ ├── etc/ │ ├── module.xml │ └── events.xml ├── Observer/ │ └── OrderPaidObserver.php └── registration.php -
registration.php + module.xml
Файлы регистрации и определения модулей соответствуют стандарту Magento.
registration.phpМодуль регистрирует,etc/module.xmlобъявляет об этом с помощьюsetup_version 1.0.0. -
events.xml — отслеживание события order-paid
Свяжите Observer с событием Magento.
оплата_заказа:Просмотреть полный код — XML · etc/events.xml
-
OrderPaidObserver.php — фактический процесс доставки
Наблюдатель собирает идентификаторы купонов из позиций заказа, формирует полезную нагрузку и отправляет ее на веб-перехватчик Perfect-Day. Введите ваше имя пользователя и пароль приложения в константы.
Просмотреть полный код — PHP · Observer/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)); } } -
Активировать модуль
Через командную строку на сервере:
bin/magento module:enable DigElite_PerfectDayConnector bin/magento setup:upgrade bin/magento cache:flush
Способ 2 — Расширение торговой площадки + отображение
-
Настройка расширения веб-перехватчика
Использование коммерческого расширения для веб-хуков: Запуск по
Изменение статуса заказа → Оплаченоустановить URLhttps://plattform.deinperfectday.de/wp-json/perfectday/shop/webhook/order, ЗаголовокАвторизация: Базовая. Восстановите формат JSON в сопоставлении тела запроса и пользовательский атрибут в сопоставлении элемента.pfd_coupon_idнаitems[*].coupon_idСвяжите их. Большинство расширений для веб-хуков могут сделать это без дополнительного кода.
Заказ на тестирование
-
Оформите и проверьте заказ
Разместите тестовый заказ, оплатите его, затем в личном кабинете платформы перейдите в раздел... Идеальный день → Заказы в магазине запись с
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.
Остались вопросы?
Действительно ли мне необходим разработчик?
Почему бы просто не использовать готовый плагин?
Магазин подключен к сети — и что дальше?
После запуска веб-хука все заказы автоматически отобразятся в вашей административной панели. Если вам потребуется дополнительное подключение, каждый дополнительный магазин можно настроить всего за несколько минут.
Перейти к обзору магазина