Integración de Perfect Day en Magento 2.
Magento no incluye una función de webhook integrada; necesitarás un pequeño módulo personalizado que detecte el evento de pedido. Esta guía está dirigida a proveedores que cuenten con su propio desarrollador o agencia de Magento. Si no dispones de un desarrollador, te recomendamos nuestro servicio de configuración.
Requisitos previos: Ve una vez que preparación general Esto implica crear un cupón, obtener la contraseña de la aplicación y proporcionar la URL del webhook. El proceso dura aproximadamente cinco minutos y se aplica a todos los sistemas de la tienda.
Tres rutas de un vistazo
-
¿Qué camino te conviene más?
- Módulo personalizado Escribirlo tú mismo: aproximadamente 2-3 horas de desarrollo en Magento. Se describe en esta guía.
- Extensión de webhook Utilizar desde Magento Marketplace + configurar el mapeo JSON.
- Bridge organizado Mediante Make.com / Zapier: no se requiere código personalizado.
Opción 1: Módulo personalizado (para desarrolladores de Magento)
-
Cree el atributo "pfd_coupon_id" para cada producto.
Administrador de Magento → Tiendas → Atributos → Producto → „Agregar nuevo atributo". Código de atributo
ID de cupón pfd, Tipo de entrada „Campo de texto", Obligatorio „No". Luego debajo Tiendas → Conjunto de atributos Asigne el atributo al grupo correspondiente. Introduzca el ID de cada producto de cupón en el editor de productos. -
Crear una estructura de módulo
El módulo personalizado consta de unos pocos archivos:
app/code/DigElite/PerfectDayConnector/ ├── etc/ │ ├── module.xml │ └── events.xml ├── Observer/ │ └── OrderPaidObserver.php └── registration.php -
registro.php + módulo.xml
Los archivos de registro y definición de módulos cumplen con los estándares de Magento.
registro.phpEl módulo registra,etc/module.xmllo declara consetup_version 1.0.0. -
events.xml — escuchar el evento order-paid
Vincula el observador al evento de Magento
pago_de_pedido_de_venta:Ver código completo — XML · etc/events.xml
-
OrderPaidObserver.php — el envío real
El observador recopila los ID de los cupones de los artículos del pedido, construye la carga útil y la envía al webhook de Perfect-Day. Introduzca su nombre de usuario y contraseña de la aplicación en las constantes.
Ver código completo — 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)); } } -
Activar módulo
Mediante la interfaz de línea de comandos (CLI) en el servidor:
bin/magento module:enable DigElite_PerfectDayConnector bin/magento setup:upgrade bin/magento cache:flush
Opción 2: Extensión del mercado + Mapeo
-
Configurar la extensión del webhook
Uso de una extensión de webhook comercial: Activar en
Cambio de estado del pedido → Pagadoestablecer URLhttps://plattform.deinperfectday.de/wp-json/perfectday/shop/webhook/order, EncabezadoAutorización: Básica. Recrea el formato JSON en la asignación del cuerpo y el atributo personalizado en la asignación del elemento.ID de cupón pfdenartículos[*].cupón_idConectarlos. La mayoría de las extensiones de webhook pueden hacerlo sin necesidad de código adicional.
Orden de prueba
-
Realizar y verificar el pedido
Realice un pedido de prueba, pague y luego en la oficina administrativa de la plataforma, Día perfecto → Pedidos de la tienda la entrada con
tipo_tienda=magentoComprueba. Revisa el buzón de correo del cliente para ver si hay algún correo electrónico de la marca.
Solución de problemas.
El Observer no está despidiendo
Caché después configuración:actualización ¿No está vacío? bin/magento cache:flush realizar.
El atributo personalizado permanece vacío.
El atributo ID de cupón pfd no está asignado a ningún conjunto de atributos. Tiendas → Conjunto de atributos ponerse al día.
Las llamadas HTTP se quedan colgadas/bloquean el proceso de pago.
El cron de Magento lo está bloqueando. Mueva la llamada HTTP a una cola usando... Magento\Framework\MessageQueue\PublisherInterface, en lugar de ejecutarlo de forma síncrona en el Observer.
HTTP 401 / 403 / 400
Los mismos códigos de error que en las otras tiendas: 401 = Autenticación incorrecta, 403 = El ID del cupón no pertenece a su cuenta, 400 = Cuerpo JSON no válido (a menudo falta el correo electrónico del cliente).
¿Prefiere que lo configuremos por usted?
Magento es el sistema de comercio electrónico más complejo de los que admitimos. Si no tienes acceso de desarrollador, nos encargaremos del desarrollo del módulo personalizado; o bien, podemos alojar un puente en el que solo necesites proporcionar acceso a la API de Magento.
¿Aún tienes preguntas?
¿Necesito un desarrollador sí o sí?
¿Por qué no usar simplemente un plugin ya hecho?
Compra conectada, ¿y ahora qué?
Una vez que el webhook esté funcionando, todos los pedidos aparecerán automáticamente en tu panel de administración. Si necesitas otra conexión, puedes configurar cada tienda adicional en tan solo unos minutos.
Ir a la descripción general de la tienda