Saltar al contenido
 Shopware 6 · 20–30 min · avanzado

Integración de Perfect Day en Shopware 6.

Vende tus cupones de Perfect Day a través de tu tienda Shopware 6. Shopware no proporciona un webhook con contenido de campo personalizado de forma predeterminada; necesitarás un pequeño puente. Un aviso: Esta guía se aplica a Shopware 6. Para Shopware 5, póngase en contacto con el servicio de asistencia.

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.

Paso 1: Crea un campo personalizado para el ID del cupón.

  1. Crear conjunto de campos personalizados

    Administrador de Shopware → Configuración → Sistema → Campos adicionales„Crear conjuntos". Nombre del conjunto: Día perfecto. Bajo Tareas la opción „"Producto"" elegir.

  2. Agregar campo

    Nuevo campo con estos valores:

    • Nombre técnico: ID de cupón pfd
    • Tipo: Número (entero)
    • Nombre para mostrar: ID de cupón de Perfect Day

    Ahorrar.

Paso 2: Introduce el ID del cupón para cada producto.

  1. Ingrese en el editor de productos

    Administrador de Shopware → Catálogos → Productos → Abrir producto → Pestañas „"Presupuesto"" → Bloquear „"Campos adicionales"". Colocar „"ID de cupón de día perfecto"" sobre el valor del back office de la plataforma (por ejemplo,. 15114) y guardar.

Paso 3: Instala la aplicación Bridge.

Shopware no incluye un webhook con contenido de campo personalizado. Necesitarás una pequeña aplicación de Shopware para gestionarlo. Hemos preparado una plantilla básica; puedes obtener el producto final si lo solicitas a nuestro equipo de soporte. También puedes crearla tú mismo utilizando esta plantilla.

  1. Manifiesto de la aplicación (manifest.xml)

    El manifiesto registra la aplicación y el webhook de pago del pedido. Introduce tu dominio puente en el manifiesto. URL-atributo.

    Ver código completo — XML · manifest.xml
    XML · manifest.xml
    Conector de día perfecto  Envía los datos del pedido con los ID de los cupones de Perfect Day a la plataforma. DigElite (c) DigElite 1.0.0 CON
  2. Punto final del puente (servidor propio)

    El puente recibe el webhook de Shopware, recupera el campo personalizado para cada artículo, lo transforma al formato Perfect Day y lo reenvía. Ejemplo en PHP:

    Ver código completo — 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. Descomprime la aplicación e instálala.

    Manifiesto y URL de puente en uno aplicación.zip embalaje (ver Documentos de ShopwareLuego, Administrador de Shopware → Extensiones → Sube tus propias extensiones → Insertar archivo ZIP → activar.

Más fácil: usa Cloud Bridge

Si configurar tu propio puente te resulta demasiado complejo, también es posible hacerlo sin necesidad de un servidor propio.

  1. Make.com, Zapier o n8n

    Make.com: El módulo „Webhooks → Webhook personalizado" se utiliza como activador, „Shopware → Obtener un producto" para el enriquecimiento de datos y „HTTP → Realizar una solicitud" como salida. La configuración tarda aproximadamente 15 minutos. n8n Es autoalojado y, por lo tanto, cumple mejor con el RGPD. Envíenos una solicitud de soporte con su herramienta preferida y le proporcionaremos un flujo de trabajo preconfigurado.

Paso 4: Pedido de prueba

  1. Realizar y verificar el pedido

    Realice un pedido de prueba y marque el pago como "Pagado". Shopware debería llamar automáticamente al puente. Verifique: Oficina administrativa de la plataforma → Día perfecto → Pedidos de la tienda (Entrada con tipo_tienda=tienda?) y el buzón del cliente al correo electrónico de la marca con botón de impresión.

Si algo está atascado

Solución de problemas.

El webhook no se ejecutó.

Administrador de Shopware → Configuración → Sistema → Registros → Webhooks de la aplicación. Si aparecen errores, normalmente la URL del manifiesto de la aplicación es incorrecta o el puente no es accesible.

Error HTTP 401 en el punto final del día perfecto

El nombre de usuario o la contraseña de la aplicación en el código del puente son incorrectos. wp-config.php-Las constantes son más seguras que los valores codificados directamente en el código.

HTTP 403 — cupón prohibido

El ID de cupón pfd Los elementos del campo personalizado no pertenecen a su cuenta de proveedor en la plataforma.

Servidor puente no accesible

¿El puente se ejecuta en su propio servidor? ¿El certificado SSL es válido? ¿El servidor es accesible públicamente? Shopware debe poder enviar solicitudes POST desde su backend en la nube a su servidor.

Servicio de configuración

¿Prefiere que lo configuremos por usted?

Shopware es significativamente más complejo que Shopify o WooCommerce debido al puente obligatorio. Ofrecemos una aplicación Shopware totalmente integrada con un puente incorporado, o bien podemos alojar el puente completamente en nuestros servidores. Simplemente proporciónenos sus credenciales de API de Shopware.

Preguntas frecuentes

¿Aún tienes preguntas?

¿Es posible hacerlo sin tener un servidor propio?
Sí. En lugar de un puente autoalojado, puede usar Make.com, Zapier o un servidor n8n autoalojado. Podemos proporcionarle un flujo de trabajo preconfigurado si lo solicita.
¿Esta guía también funciona para Shopware 5?
No. Shopware 5 no incluye soporte integrado para webhooks de campos personalizados; se requiere un plugin aparte. Si utiliza Shopware 5, envíe una solicitud de soporte.
¿Estás planeando un plugin nativo para Shopware?
Sí, a medio plazo. Un plugin nativo eliminaría la necesidad de configurar el puente. El orden depende de la demanda; avísame si te interesa.

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