Skip to content

Veri bağlama

Bölümünüzün ürün göstermesi için iki yol var: veri prop'u (önerilen) veya SDK çağrısı.

Veri prop'u

Ürün listesi tipinde bir prop tanımlarsınız. Mağaza sahibi kaynağı seçer, vitrin sorguyu çözer ve bileşeninize hazır ürün dizisi gelir.

Mağaza sahibinin seçebildiği kaynaklar:

ModAnlamı
autoKatalogdan sıralı akış (en yeni, fiyat vb.) + adet
staticElle seçilmiş ürünler, seçtiği sırayla
categoryBelirli bir kategori
contextSayfanın konusu — kategori sayfasında o kategori, ürün sayfasında o ürün

context modu dinamik sayfaların anahtarıdır: tek bir dizilim tüm kategori sayfalarına hizmet eder.

tsx
import type { ProductGridProps } from '../generated/types';

export default function ProductGrid({ heading, products }: ProductGridProps) {
  return (
    <section>
      <h2>{heading}</h2>
      <div className="wk-grid">
        {products.map((p) => (
          <a key={p.id} href={`/products/${p.slug}`} className="wk-card">
            {p.images?.[0] && <img src={p.images[0]} alt={p.name} />}
            <h3>{p.name}</h3>
            <span>{p.price} ₺</span>
          </a>
        ))}
      </div>
    </section>
  );
}

Bu yolu tercih edin: sunucuda çözüldüğü için ilk boyamada veri hazırdır, yükleniyor durumu yönetmeniz gerekmez ve mağaza sahibi kaynağı istediği gibi değiştirebilir.

SDK çağrısı

Bazı bölümler kendi verisini çekmek zorundadır — sepet çekmecesi, arama kutusu, hesap sayfası gibi tarayıcıda yaşayan şeyler.

tsx
import { useEffect, useState } from 'react';
import { winkwop, type WinkwopCart } from 'winkwop-theme-sdk';

export default function CartBadge() {
  const [cart, setCart] = useState<WinkwopCart | null>(null);

  useEffect(() => {
    winkwop.cart.get().then(setCart).catch(() => {});
  }, []);

  return <span>{cart?.item_count ?? 0}</span>;
}

Tam yüzey: SDK referansı.

Hangisini seçmeli

DurumYol
Ürün/kategori listelemekVeri prop'u
Sayfanın konusuna göre içerikVeri prop'u, context modu
Sepet durumu, arama, müşteri hesabıSDK
Kullanıcı etkileşimiyle değişen veriSDK

Görseller

Ürün görselleri size mutlak URL olarak gelir; ek bir işlem yapmanız gerekmez. Görsel dizisi boş olabilir, her zaman kontrol edin:

tsx
{p.images?.[0] ? <img src={p.images[0]} alt={p.name} /> : <div className="wk-placeholder" />}

Winkwop tema platformu