---
title: "Web Uygulamasından Mikro ERP'ye Veri Kopyalama: Clipboard ile Hızlı Aktarım"
description: "Web dashboard'unuzdan Mikro ERP'ye veri aktarmak için Clipboard API nasıl kullanılır? Tek tıkla kopyala, Mikro'da yapıştır — el ile girişe son."
date: 2026-04-12
category: mikro-erp
tags: ["mikro-erp", "clipboard-api", "react", "veri-aktarimi", "export"]
url: https://mikroerp.dev/blog/mikro-erp-clipboard-export-web/
---

## Sorun: Web'deki Listeyi Mikro'ya El İle Giriyorsunuz

Web dashboard'unuzda 50 satırlık bir sipariş listesi hazırladınız. Şimdi bunu Mikro ERP'ye girmeniz gerekiyor. Her satırı tek tek: stok kodu yaz, miktar gir, birim seç...

**50 satır × 30 saniye = 25 dakika** sıkıcı ve hatalı veri girişi.

## Çözüm: Tek Tıkla Kopyala, Mikro'da Yapıştır

Web uygulamanıza bir **"Mikro'ya Kopyala"** butonu ekliyorsunuz. Butona tıklanınca veriler Mikro'nun anladığı formatta panoya kopyalanıyor. Mikro'da Ctrl+V yapıyorsunuz — bitti.

```
Web Dashboard  →  📋 Tek tık kopyala  →  Mikro ERP'de Ctrl+V
     50 satır        2 saniye               5 saniye
```

**25 dakika → 7 saniye.**

## Mikro ERP Hangi Formatı Anlar?

Mikro ERP (ve Excel) **tab-separated** format kabul eder. Yani sütunlar arasında Tab karakteri olması yeterli:

```
Stok Kodu	Stok Adı	Miktar	Birim
SERAMİK.001	Yer Seramiği 60x60	250.00	M2
FAYANS.012	Metro Fayans 10x30	180.00	M2
BOYA.045	İç Cephe Boyası	12.00	KOVA
```

Her sütun arasında bir Tab (`\t`) karakteri var. Excel veya Mikro'ya yapıştırdığınızda her sütun doğru yere oturur.

## Nasıl Yapılır?

### 1. Veriyi Tab Formatına Çevirme

```typescript
function mikroFormatinaCevir(urunler) {
  // Başlık satırı
  const baslik = ['Stok Kodu', 'Stok Adı', 'Miktar', 'Birim'];
  
  // Her ürünü bir satıra çevir
  const satirlar = urunler.map(urun => [
    urun.stokKodu,
    urun.stokAdi,
    urun.miktar.toFixed(2),
    urun.birim,
  ]);
  
  // Tab ile birleştir
  return [baslik, ...satirlar]
    .map(satir => satir.join('\t'))
    .join('\n');
}
```

### 2. Panoya Kopyalama

```typescript
async function panoyaKopyala(metin) {
  try {
    await navigator.clipboard.writeText(metin);
    return true;
  } catch {
    // Eski tarayıcılar için yedek yöntem
    const alan = document.createElement('textarea');
    alan.value = metin;
    document.body.appendChild(alan);
    alan.select();
    document.execCommand('copy');
    document.body.removeChild(alan);
    return true;
  }
}
```

### 3. React Butonu

```tsx
function MikroKopyalaButonu({ urunler }) {
  const [kopyalandi, setKopyalandi] = useState(false);

  const kopyala = async () => {
    if (urunler.length === 0) return;
    
    const format = mikroFormatinaCevir(urunler);
    await panoyaKopyala(format);
    
    setKopyalandi(true);
    setTimeout(() => setKopyalandi(false), 2000);
  };

  return (
    <button onClick={kopyala} disabled={urunler.length === 0}>
      {kopyalandi 
        ? `✅ ${urunler.length} satır kopyalandı` 
        : `📋 Mikro'ya Kopyala (${urunler.length})`}
    </button>
  );
}
```

## Kullanıcı Ne Yaşar?

```
1. Dashboard'da sipariş listesini filtreler
2. "Mikro'ya Kopyala" butonuna tıklar
3. "✅ 50 satır kopyalandı" mesajı görür
4. Mikro ERP'yi açar → Ctrl+V yapar
5. 50 satırlık veri doğru sütunlara oturur
```

> **💡 İpucu**: Kopyalamadan önce kullanıcıya "şu veriler kopyalanacak" diye bir önizleme göstermek güvenliği artırır.

## Dikkat Edilecek Noktalar

- **HTTPS zorunlu**: Clipboard API sadece güvenli bağlantılarda çalışır
- **Kullanıcı tıklaması gerekli**: Otomatik kopyalama yapılamaz, butona tıklama şart
- **Birim dönüşümü**: M2, ADET, KOVA gibi birimlerin Mikro'daki karşılıklarıyla eşleştiğinden emin olun

## Bu Yaklaşım Basit Durumlar İçin Yeter

Tek formatta, tek filtreden kopyalama yapıyorsanız yukarıdaki kod yeterli.

Ama gerçek dünyada:

- Aktif filtreye göre kopyalanan kolonlar ve sıra değişebilir
- Birim dönüşümü gerekebilir (M2 ↔ ADET)
- "Stokta yok" durumdaki ürünleri otomatik hariç tutma
- Kim ne zaman kopyaladı — audit kaydı tutma

Biz bu sistemi sipariş karşılama modülümüze tam entegre ettik. İhtiyacınız olursa deneyimimizden faydalanabilirsiniz.

---

*Bu yazı [AstaFlow Case Study](/case-study) serisinin bir parçasıdır.*