Saltar al contenido
 Magento 2 · 25–35 min · avanzado

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

  1. ¿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)

  1. 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.

  2. Crear una estructura de módulo

    El módulo personalizado consta de unos pocos archivos:

    Estructura de directorios
    app/code/DigElite/PerfectDayConnector/ ├── etc/ │ ├── module.xml │ └── events.xml ├── Observer/ │ └── OrderPaidObserver.php └── registration.php
  3. registro.php + módulo.xml

    Los archivos de registro y definición de módulos cumplen con los estándares de Magento. registro.php El módulo registra, etc/module.xml lo declara con setup_version 1.0.0.

  4. 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
    XML · etc/eventos.xml
  5. 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
    PHP · Observador/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. Activar módulo

    Mediante la interfaz de línea de comandos (CLI) en el servidor:

    Intento
    bin/magento module:enable DigElite_PerfectDayConnector bin/magento setup:upgrade bin/magento cache:flush

Opción 2: Extensión del mercado + Mapeo

  1. Configurar la extensión del webhook

    Uso de una extensión de webhook comercial: Activar en Cambio de estado del pedido → Pagado establecer URL https://plattform.deinperfectday.de/wp-json/perfectday/shop/webhook/order, Encabezado Autorizació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 pfd en artículos[*].cupón_id Conectarlos. La mayoría de las extensiones de webhook pueden hacerlo sin necesidad de código adicional.

Orden de prueba

  1. 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=magento Comprueba. Revisa el buzón de correo del cliente para ver si hay algún correo electrónico de la marca.

Si algo está atascado

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).

Servicio de configuración

¿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.

Preguntas frecuentes

¿Aún tienes preguntas?

¿Necesito un desarrollador sí o sí?
Para la opción 1 (módulo personalizado), sí, se trata de desarrollo en Magento. La opción 3 (puente alojado mediante Make.com/Zapier) funciona sin necesidad de código personalizado. También puede utilizar nuestro servicio de configuración.
¿Por qué no usar simplemente un plugin ya hecho?
Las extensiones de Magento deben estar muy adaptadas a la versión y el tema específicos de Magento. Un plugin genérico sería más propenso a errores que un módulo personalizado optimizado o un puente. Si hay suficiente demanda, consideraremos desarrollar un módulo oficial.

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