Przejdź do głównej treści
Komerza Embed SDK w akcji

Przegląd

Komerza Embed SDK umożliwia płynną integrację naszego procesu płatności bezpośrednio na Twojej stronie internetowej. Zamiast przekierowywać klientów na osobną stronę płatności, osadzenie tworzy modalne nakładki, które utrzymują użytkowników na Twojej stronie, zapewniając jednocześnie bezpieczny, zoptymalizowany przepływ płatności.

Demo na żywo

Zobacz Embed SDK w akcji z naszą interaktywną demonstracją
Zintegruj również nasz skrypt analityczny, aby przywrócić analizy odwiedzających na swojej niestandardowej stronie dla pełnego wglądu w podróż klienta.

Funkcje

Płynna integracja

Modalna nakładka utrzymuje klientów na Twojej stronie podczas płatności

Lekki

Minimalny pakiet JavaScript bez zewnętrznych zależności

Obsługa motywów

Jasne, ciemne i automatyczne motywy dopasowane do projektu Twojej strony

Zgodny z CSP

Pełne wsparcie polityki bezpieczeństwa treści z integracją nonce

Szybki start

Dodaj następujący skrypt do sekcji <head> swojej strony lub przed zamykającym tagiem </body>:
<script src="https://checkout.komerza.com/embed/embed.iife.js" defer></script>

Metoda 1: Atrybuty danych (zalecana dla prostych przypadków użycia)

Najłatwiejszy sposób dodawania przycisków płatności do Twojej strony. Wystarczy dodać atrybuty danych do dowolnego przycisku lub elementu:
<button
  data-kmrza-product-id="YOUR_PRODUCT_ID"
  data-kmrza-variant-id="YOUR_VARIANT_ID"
  data-kmrza-quantity="1"
  data-kmrza-theme="auto"
>
  Kup teraz
</button>

<script src="https://checkout.komerza.com/embed/embed.iife.js" defer></script>
<script>
  // Zainicjuj osadzenie, aby powiązać wszystkie przyciski z atrybutami danych
  document.addEventListener("DOMContentLoaded", () => {
    Komerza.init();
  });
</script>

Referencja atrybutów danych

AtrybutWymaganyOpisPrzykład
data-kmrza-product-id✅ TakID produktu z Komerza"0f6294be-25d6-4ced-96df-7d500608c54d"
data-kmrza-variant-id✅ TakID wariantu z Komerza"96f846e5-5f22-46a2-97b3-a1c88f685577"
data-kmrza-quantity❌ NieIlość do zakupu (domyślnie: 1)"2"
data-kmrza-theme❌ NieTryb motywu: light, dark lub auto (domyślnie: auto)"dark"
data-kmrza-return-url❌ NieNiestandardowy URL do przekierowania po płatności"https://example.com/dziekujemy"
data-kmrza-email❌ NieWstępnie wypełnij adres e-mail klienta"klient@example.com"
data-kmrza-coupon-code❌ NieWstępnie wypełnij i automatycznie zastosuj kod kuponu"SAVE20"
data-kmrza-metadata❌ NieCiąg JSON niestandardowych metadanych klucz-wartość"{&quot;campaign&quot;:&quot;summer&quot;}"

Metoda 2: API JavaScript (dla zaawansowanych przypadków użycia)

Dla większej kontroli użyj API JavaScript, aby programowo otworzyć płatność:
<button id="checkout-btn">Kup teraz</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' lub 'auto'
    });
  });
</script>

Wiele artykułów

Możesz dodać wiele produktów do płatności jednocześnie:
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",
});

Kompletny przewodnik po implementacji

Konfiguracja HTML

Oto kompletny przykład strony HTML:
<!DOCTYPE html>
<html lang="pl">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Mój Sklep</title>

    <!-- Nagłówek CSP (zalecany) -->
    <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>Niesamowity produkt</h1>
      <p>Cena: 29,99 zł</p>

      <!-- Twój przycisk zakupu -->
      <button id="buy-now" class="buy-button">Kup teraz</button>
    </div>

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

    <script nonce="abc123">
      // Twój kod integracji tutaj
    </script>
  </body>
</html>

Integracja JavaScript

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

Referencja API

Komerza.init(options?)

Inicjalizuje osadzenie i automatycznie wiąże wszystkie elementy z atrybutami data-kmrza-*.
Komerza.init({
  nonce: "TWÓJ_NONCE_CSP", // Opcjonalnie: dla polityki bezpieczeństwa treści
});

Komerza.open(options)

Otwiera modalną płatność programowo.
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()

Zamyka modalną płatność programowo.
Komerza.close();

Integracja Next.js

// 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}>Kup teraz</button>
    </>
  );
}

Rozwiązywanie problemów

Płatność nie otwiera się

  1. Upewnij się, że skrypt jest załadowany (atrybut defer jest zalecany)
  2. Sprawdź konsolę przeglądarki pod kątem błędów
  3. Zweryfikuj, czy Twoje ID produktu i wariantu są poprawne
  4. Jeśli używasz atrybutów danych, upewnij się, że Komerza.init() jest wywoływany po załadowaniu DOM
Modal używa wysokiego z-index (9999). Jeśli nadal jest za elementami, sprawdź swój CSS pod kątem konkurujących wartości z-index.

Afiliaci

Komerza Embed SDK obsługuje śledzenie afiliatów od razu po wyjęciu z pudełka. Parametr zapytania ?ref jest automatycznie obsługiwany, a plik cookie kmrza_affiliate jest automatycznie odczytywany.

Polityka bezpieczeństwa treści (CSP)

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

Najlepsze praktyki

  • Ładuj skrypt SDK asynchronicznie gdy to możliwe
  • Inicjalizuj SDK wcześnie, ale otwieraj modale tylko przy interakcji użytkownika
  • Implementuj odpowiednie stany ładowania dla przycisków zakupu
  • Zapewniaj wyraźne wskaźniki ładowania - Obsługuj awarie sieci gracefully za pomocą URL zastępczych - Wspieraj nawigację klawiaturą (Esc do zamknięcia)
  • Zawsze używaj nagłówków CSP w produkcji
  • Waliduj ID produktu i wariantu przed otwarciem płatności
  • Nigdy nie ujawniaj wrażliwych danych w kodzie po stronie klienta

Wsparcie

Potrzebujesz pomocy z integracją?

Strona demo

Interaktywna demonstracja z przykładami kodu źródłowego

Wsparcie deweloperów

Uzyskaj wsparcie techniczne w kwestiach integracji