Kaynak: KB-docs
integrations/INT-NET-SIPARIS-pazaryeri.md(tam kod taraması). KB-v1'de karşılığı yoktu (AUDIT §2.4).
INT-NET-SIPARIS — Pazaryeri / Web Sipariş Entegrasyonu (N11, GittiGidiyor, NZP Vitrin → NET şeması)
Gerçeklik türü: AS-IMPLEMENTED (kod + DB proc/fonksiyon metni). Depo kökü:
/home/claude/erppro/ERPPRO. Gizlilik: XML beslemesi URL yolları/anahtarları veNetEntegrator.vb:3059içindeki sabit bağlantı dizesi (sunucu,sakullanıcı ve parolası) kopyalanmamıştır; yalnız alan adı verilir.kb_src/notes/integrations.jsoniçinde bu entegrasyon yoktur (yeni bulgu).
1. Amaç
Üç kanaldan gelen e-ticaret siparişlerini (SiparisType: N11=0, GG=1 (GittiGidiyor), NZP=2) XML beslemesinden okuyup NET.NetSiparis / NET.NetSiparisDetay tablolarına MERGE etmek; sipariş ürünlerini NET.NetStok ile ERP stok kodlarına (gram, milyem, kur) eşlemek; durum (Bekliyor/İşlemde/Tamamlandı/İptal) ve fatura seri/no güncellemek; sipariş listesini ve raporlarını Net Sipariş ekranında göstermek.
2. Protokol / taşıma
- HTTPS GET XML (
Xml.XmlTextReader(url)+XmlSerializer),ServicePointManager.SecurityProtocol = 3072(TLS 1.2). Üç besleme de www.nzpvitrin.com alan adından okunur (kanal başına farklı yol/parametre) — VERIFIEDERPPRO/Form/Siparis/NetEntegrator.vb:434-440 (GG), 1170-1176 (N11), 1726-1732 (NZP). Yani N11/GG verileri doğrudan pazaryeri API'sinden değil, NZP Vitrin aracı sitesinin XML çıktısından alınır (INFERRED adres ortaklığından). TrustAllCertificatesPolicyfonksiyonu tanımlı (:444-446) ama atanmış değil.- DB:
NET.SiparisEkle(MERGENET.NETSiparis),NET.SiparisDetayEkle,NET.StokYaz(yeni stoklarıNET.NetStok'a ekler;Altın/Gümüşadına göre tip),NET.GetSiparisler(@StartDate,@Status),NET.GetSiparisDetay,NET.NetSiparisOzet(V),NET.GetFatura,NET.GetPrice(@Tarih,@BirimId)(Sistem.Kurlaralış). VERIFIED (kb_src/db/modules_all.json) - Bağlantı:
Common.ConnStr— varsayılan değer kodda sabit (localhost,sa), ekran açılışındaInternalDb.ConnStrile ezilir (FrmNetSiparis.vb:4). VERIFIED
3. Giriş noktası sınıf ve metotlar
ERPPRO/Form/Siparis/NetEntegrator.vb(Namespace NetEntegretor):7-17enum'lar;:18-450GG.Siparis/Siparisler(XML modeli,GetSiparis :434);:451-1178N11.Urunler/Siparis/Siparisler(GetSiparis :1170);:1179-1734NZP.Invoice/Shipping/Product/Order_history/Order/Orders(GetSiparis :1726).:1735-2491Siparis.NetSiparis:ConvertDurum :1740,New(GetId) :1764,TOList :1809,Save :1857(NET.SiparisEkle),UpdateInvoiceNumber :2025/2055,ChangeStatus :2087,Delete :2110/2129.:2492-2896NetSiparisDetay:Save :2564(NET.SiparisDetayEkle),UpdateGram :2630,UpdateKur :2650,UpdateMilyem :2670.:2897-3046NetStok(TOList :2925→NET.NetStok).:3047-3308Common:RefreshData :3285(thread) →onRefresh :3289: stokları yükle → GG/N11/NZP beslemelerini çek →MappingNetSiparis :3099(kanal alanlarını ortak modele eşle,GetGram/GetMilyem :3248-3261) →SaveALL :3262→StokYaz :3271→DataRefreshingolayı._isrunningkilidi ile tek eşzamanlı çalışma.ERPPRO/Form/Siparis/FrmNetSiparis.vb:FormLoad :3-5(ConnStr, olay),RefreshData :14-56(Listele:NET.GetSiparisler, tarih ve durum filtresi; "Siparisleri Denetle" düğmesi çalışırken "(Güncelleniyor)"),BtnNetRefresh_Click :71-72→Common.RefreshData,VwIslem_CellValueChanged :58-62durum değişimi (ChangeStatus; hata "Sipariş Bilgileri Güncellenemedi."),:83detayNet.GetSiparisDetay,:114-125gram/milyem/kur düzenleme,ReportsCombo1(rapor yazdırma, parametreRecordId,SiparisTipi).- Tetik:
ERPPRO/Form/Genel/FrmMainForm.vb:167-168menü etiketiNETSIPARIS.
4. Kullandığı tablolar / ayarlar
| Nesne | Kullanım | Kanıt |
|---|---|---|
NET.NetSiparis (ID, SiparisNo, SiparisTarihi, RefNo, SiparisTipi, Unvan, Adress, Il, Ilce, PostaKodu, GSM, EMail, VergiDairesi, VergiNo, TCNo, Yetkili, Sevk*, GonderiTarihi, Kargo, TakipNo, Durum, SipDurum, FaturaSeri, FaturaNo, Tag, LastUpdate) |
Sipariş başlığı | NET.SiparisEkle; NET.GetSiparisler |
NET.NetSiparisDetay (SiparisTipi, SiparisId, ItemId, StokId, Kodu, Adet, Gram, Milyem, Kur, Tutar, Iscilik, KDV …) |
Sipariş satırları | NET.SiparisDetayEkle; NetEntegrator.vb:2564-2670 |
NET.NetStok (SiparisTipi, StokId, Kodu, Gram, Milyem(0.995 varsayılan), StokTipi) |
Kanal ürünü ↔ ERP stok eşlemesi | NET.StokYaz; NetEntegrator.vb:2925 |
Sistem.Kurlar |
NET.GetPrice |
fonksiyon metni |
| Kanal XML beslemeleri (nzpvitrin.com) | Kaynak | NetEntegrator.vb:438, 1174, 1730 |
Sabit Common.ConnStr |
Varsayılan bağlantı (ekranda ezilir) | NetEntegrator.vb:3059 |
5. Hangi ekrandan tetiklenir
Net Sipariş ekranı (FrmNetSiparis, menü NETSIPARIS): Siparişleri Denetle (besleme çek + kaydet), Listele (tarih/durum), satır içi durum ve gram/milyem/kur düzenleme, rapor yazdırma. Otomatik zamanlayıcı yok (yalnız düğme). VERIFIED
6. Hata / başarısızlık davranışı
- Besleme erişilemez/XML bozuk →
GetSiparisistisnası;onRefreshiçindeTry/Catchyok → thread'de yakalanmamış istisna,_isrunningTrue kalır → düğme kalıcı "(Güncelleniyor)" (uygulama yeniden başlatılana kadar). INFERRED (:3289-3304) StokYazSQL hatası yutulur (:3278).- Durum güncelleme hatası MessageBox.
7. Riskler
- Kaynak kodda sabit
saparolalı bağlantı dizesi (varsayılan; çalışma anında ezilse de sızıntı). VERIFIED - Besleme URL'leri ve olası erişim anahtarları kodda sabit; NZP Vitrin sitesi kapanırsa tüm kanallar durur. VERIFIED/INFERRED
- Müşteri kişisel verileri (ad, adres, GSM, e-posta, TC)
NET.NetSiparis'te; erişim yetkisi ERP kullanıcı yetkisine bağlı. INFERRED NET.StokYazürün tipini ad içindeki "Altın"/"Gümüş" metnine göre belirler; diğer ürünler altın (1) sayılır. VERIFIED- Sipariş → ERP işlem (
Cari.Islemler) dönüşümü bu kodda yok; fatura yalnız seri/no olarak işaretlenir. VERIFIED (grepCari.IslemNetEntegrator.vb → 0)
8. Kanıt listesi
ERPPRO/Form/Siparis/NetEntegrator.vb:1-17, 434-446, 1170-1176, 1726-1732, 1740-2150, 2564-2670, 2925, 3047-3308ERPPRO/Form/Siparis/FrmNetSiparis.vb:3-72, 83, 114-125, 143;ERPPRO/Form/Genel/FrmMainForm.vb:167-168- DB:
NET.SiparisEkle,NET.SiparisDetayEkle,NET.StokYaz,NET.GetSiparisler,NET.GetSiparisDetay,NET.NetSiparisOzet,NET.GetFatura,NET.GetPrice; tablolarNET.NetSiparis,NetSiparisDetay,NetStok(kb_src/db/modules_all.json,columns.json)
9. UNKNOWN
- NZP Vitrin'in N11/GG verilerini nasıl topladığı (aracı platform API'leri).
- Sipariş durumlarının pazaryerine geri bildirilip bildirilmediği (kodda giden çağrı yok → muhtemelen hayır).
- Sahada aktif kullanım.
