Zum Hauptinhalt springen
Komerza Embed SDK in Aktion

Übersicht

Das Komerza Embed SDK ermöglicht es dir, unsere Checkout-Erfahrung nahtlos direkt in deine Website zu integrieren. Anstatt Kunden auf eine separate Checkout-Seite weiterzuleiten, erstellt das Embed eine modale Überlagerung, die Nutzer auf deiner Website behält und gleichzeitig einen sicheren, optimierten Zahlungsablauf bietet.

Live-Demo

Sieh das Embed SDK in Aktion mit unserer interaktiven Demo
Integriere auch unser Analytics-Skript, um Besucheranalysen auf deiner benutzerdefinierten Website für vollständige Einblicke in die Customer Journey zurückzubringen.

Funktionen

Nahtlose Integration

Modale Überlagerung hält Kunden während des Checkouts auf deiner Website

Leichtgewichtig

Minimales JavaScript-Bundle ohne externe Abhängigkeiten

Theme-Unterstützung

Helle, dunkle und automatische Themes passend zum Design deiner Website

CSP-kompatibel

Vollständige Content Security Policy-Unterstützung mit Nonce-Integration

Schnellstart

Füge das folgende Skript in das <head> deiner Website oder vor dem schließenden </body>-Tag ein:
<script src="https://checkout.komerza.com/embed/embed.iife.js" defer></script>

Methode 1: Datenattribute (Empfohlen für einfache Anwendungsfälle)

Die einfachste Möglichkeit, Checkout-Buttons zu deiner Website hinzuzufügen. Füge einfach Datenattribute zu einem beliebigen Button oder Element hinzu:
<button
  data-kmrza-product-id="YOUR_PRODUCT_ID"
  data-kmrza-variant-id="YOUR_VARIANT_ID"
  data-kmrza-quantity="1"
  data-kmrza-theme="auto"
>
  Jetzt kaufen
</button>

<script src="https://checkout.komerza.com/embed/embed.iife.js" defer></script>
<script>
  // Embed initialisieren, um alle Buttons mit Datenattributen zu verknüpfen
  document.addEventListener("DOMContentLoaded", () => {
    Komerza.init();
  });
</script>

Datenattribute-Referenz

AttributErforderlichBeschreibungBeispiel
data-kmrza-product-id✅ JaDie Produkt-ID aus Komerza"0f6294be-25d6-4ced-96df-7d500608c54d"
data-kmrza-variant-id✅ JaDie Varianten-ID aus Komerza"96f846e5-5f22-46a2-97b3-a1c88f685577"
data-kmrza-quantity❌ NeinZu kaufende Menge (Standard: 1)"2"
data-kmrza-theme❌ NeinTheme-Modus: light, dark oder auto (Standard: auto)"dark"
data-kmrza-return-url❌ NeinBenutzerdefinierte URL zur Weiterleitung nach der Zahlung"https://example.com/danke"
data-kmrza-email❌ NeinE-Mail-Adresse des Kunden vorausfüllen"kunde@example.com"
data-kmrza-coupon-code❌ NeinCouponcode vorausfüllen und automatisch anwenden"SAVE20"
data-kmrza-metadata❌ NeinJSON-String mit benutzerdefinierten Schlüssel-Wert-Metadaten"{&quot;campaign&quot;:&quot;summer&quot;}"

Methode 2: JavaScript-API (Für fortgeschrittene Anwendungsfälle)

Für mehr Kontrolle nutze die JavaScript-API, um den Checkout programmgesteuert zu öffnen:
<button id="checkout-btn">Jetzt kaufen</button>

<script src="https://checkout.komerza.com/embed/embed.iife.js" defer></script>
<script>
  document.getElementById("checkout-btn").addEventListener("click", () => {
    Komerza.open({
      items: [
        {
          productId: "YOUR_PRODUCT_ID",
          variantId: "YOUR_VARIANT_ID",
          quantity: 1,
        },
      ],
      theme: "auto", // 'light', 'dark' oder 'auto'
    });
  });
</script>

Mehrere Artikel

Du kannst mehrere Produkte gleichzeitig zum Checkout hinzufügen:
Komerza.open({
  items: [
    {
      productId: "0f6294be-25d6-4ced-96df-7d500608c54d",
      variantId: "96f846e5-5f22-46a2-97b3-a1c88f685577",
      quantity: 2,
    },
    {
      productId: "54d6adb4-c160-4f73-b9c0-6c16970fff41",
      variantId: "37e70705-c603-4ab2-8a2e-d16e80288c8c",
      quantity: 1,
    },
  ],
  theme: "light",
});

Vollständiger Implementierungsleitfaden

HTML-Setup

Hier ist ein vollständiges HTML-Seitenbeispiel:
<!DOCTYPE html>
<html lang="de">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Mein Shop</title>

    <!-- CSP-Header (empfohlen) -->
    <meta
      http-equiv="Content-Security-Policy"
      content="frame-src https://checkout.komerza.com; script-src 'self' 'nonce-abc123' https://checkout.komerza.com;"
    />
  </head>
  <body>
    <div class="product-container">
      <h1>Tolles Produkt</h1>
      <p>Preis: 29,99 €</p>

      <!-- Dein Kaufen-Button -->
      <button id="buy-now" class="buy-button">Jetzt kaufen</button>
    </div>

    <!-- Komerza Embed SDK -->
    <script
      src="https://checkout.komerza.com/embed/embed.iife.js"
      nonce="abc123"
    ></script>

    <script nonce="abc123">
      // Dein Integrationscode hier
    </script>
  </body>
</html>

JavaScript-Integration

document.addEventListener('DOMContentLoaded', function() {
  KomerzaEmbed.init();
  
  document.getElementById('buy-now').addEventListener('click', function() {
    KomerzaEmbed.open({
      items: [
        {
          productId: 'prod_123',
          variantId: 'var_456',
          quantity: 1
        }
      ]
    });
  });
});

API-Referenz

Komerza.init(options?)

Initialisiert das Embed und verknüpft automatisch alle Elemente mit data-kmrza-*-Attributen.
Komerza.init({
  nonce: "DEIN_CSP_NONCE", // Optional: für Content Security Policy
});
Hinweis: Dies wird automatisch aufgerufen, wenn die JS-API (Komerza.open()) verwendet wird, muss aber explizit aufgerufen werden, wenn Datenattribute verwendet werden.

Komerza.open(options)

Öffnet die Checkout-Modal programmgesteuert.
Komerza.open({
  items: [{ productId: string, variantId: string, quantity?: number }],
  theme?: 'light' | 'dark' | 'auto',
  affiliateCode?: string,
  returnUrl?: string,
  email?: string,
  couponCode?: string,
  metadata?: Record<string, string>
});

Komerza.close()

Schließt die Checkout-Modal programmgesteuert.
Komerza.close();

Next.js-Integration

// components/CheckoutButton.jsx
"use client";

import Script from "next/script";

export default function CheckoutButton({ productId, variantId, quantity = 1 }) {
  const handleClick = () => {
    if (window.Komerza) {
      window.Komerza.open({ items: [{ productId, variantId, quantity }] });
    }
  };

  return (
    <>
      <Script
        src="https://checkout.komerza.com/embed/embed.iife.js"
        strategy="lazyOnload"
      />
      <button onClick={handleClick}>Jetzt kaufen</button>
    </>
  );
}

Fehlerbehebung

Der Checkout öffnet sich nicht

  1. Stelle sicher, dass das Skript geladen ist (das defer-Attribut wird empfohlen)
  2. Prüfe die Browserkonsole auf Fehler
  3. Überprüfe, ob deine Produkt- und Varianten-IDs korrekt sind
  4. Wenn du Datenattribute verwendest, stelle sicher, dass Komerza.init() nach dem DOM-Laden aufgerufen wird
Das Modal verwendet einen hohen z-index (9999). Wenn es noch hinter Elementen liegt, überprüfe dein CSS auf konkurrierende z-index-Werte.

Affiliates

Das Komerza Embed SDK unterstützt Affiliate-Tracking sofort einsatzbereit. Der ?ref-Abfrageparameter wird automatisch unterstützt, und der kmrza_affiliate-Cookie wird automatisch gelesen.

Content Security Policy (CSP)

Content-Security-Policy:
  frame-src https://checkout.komerza.com;
  script-src 'self' 'nonce-DEIN_NONCE' https://checkout.komerza.com;
  style-src 'self' 'nonce-DEIN_NONCE';
KomerzaEmbed.init({ nonce: "DEIN_NONCE" });

Best Practices

  • SDK-Skript asynchron laden, wenn möglich
  • SDK früh initialisieren, aber Modals nur bei Benutzerinteraktion öffnen
  • Ordnungsgemäße Ladezustände für Kauf-Buttons implementieren
  • Klare Ladeindikatoren bereitstellen - Netzwerkfehler mit Fallback-URLs behandeln - Tastaturnavigation unterstützen (Esc zum Schließen)
  • Immer CSP-Header in Produktion verwenden
  • Produkt- und Varianten-IDs vor dem Öffnen des Checkouts validieren
  • Niemals sensible Daten im clientseitigen Code offenlegen

Support

Brauchst du Hilfe bei der Integration?

Demo-Seite

Interaktive Demo mit Quellcode-Beispielen

Entwickler-Support

Technischen Support für Integrationsprobleme erhalten