Web Uygulamasından Mikro ERP'ye Veri Kopyalama: Clipboard ile Hızlı Aktarım

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.

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

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

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

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 serisinin bir parçasıdır.