İşletme

Dijital Ürün Satış Scriptinde Rapor Sayıları Neden Tutmuyor? Panelde Gördüğün Ciro ile Bankadaki Para Arasındaki O Sessiz Farkın 6 Gerçek Kaynağı

Satış raporu ile ödeme geçidi ve muhasebe tutmuyorsa hata değil tanım farkıdır. Saat dilimi, iade, KDV ve çift sayım farklarını adım adım kapat.

Dijital Ürün Satış Scriptinde Rapor Sayıları Neden Tutmuyor? Panelde Gördüğün Ciro ile Bankadaki Para Arasındaki O Sessiz Farkın 6 Gerçek Kaynağı

Çoğu işletme sahibi raporun tek bir gerçeği gösterdiğini sanır. Panelde "bugün 184 satış" yazıyorsa, bugün 184 satış olmuştur. Oysa rapor bir gerçek değil, bir tanımdır: hangi siparişin sayıldığı, hangi saat diliminde gruplandığı, iadeli kaydın düşülüp düşülmediği ve tutarın KDV'li mi KDV'siz mi alındığı sorularının verdiğin cevaptır. Tanımı değiştirdiğinde sayı da değişir ve hiçbir tarafta hata olmaz.

İşte bu yüzden "rapor sayıları tutmuyor" cümlesi neredeyse her zaman yanlış teşhistir. Doğru teşhis şudur: iki rapor farklı soruları cevaplıyor ve sen ikisini aynı soru sanıyorsun. Aşağıda o farkların altı somut kaynağını, hangi sırayla kontrol edeceğini ve kalıcı olarak nasıl kapatacağını anlatıyorum. Sonunda elinde tek bir kanonik gelir tanımı olacak.

3 saatSaat dilimi farkının yarattığı gün kayması
%18Fark vakalarında iade/iptal kaynaklı sapma
2 kaynakAynı ciroyu hesaplayan bağımsız sorgu sayısı
%100Tanım netleştiğinde kapanan fark oranı

Hangi sipariş "satış" sayılıyor?

Bir siparişin yaşam döngüsü uzundur: oluşturuldu, ödeme bekleniyor, ödendi, teslim edildi, kısmi teslim, iptal, iade. Ana sayfa özeti genelde "oluşturulan" siparişi sayar, muhasebe raporu "ödenen" siparişi, teslimat raporu ise "teslim edilen" siparişi. Üç rakam da doğrudur ve üçü de birbirinden farklıdır. Aradaki boşluk, ödemesi tamamlanmamış veya teslimi bekleyen kayıtlardır.

Yapılması gereken şey basit ama disiplin ister: tek bir kanonik gelir durumu seç ve tüm raporlarda o durumu kullan. Genellikle doğru seçim "ödemesi onaylanmış ve iptal edilmemiş" kümesidir. Diğer sayımları tamamen kaldırmak zorunda değilsin, ama başlıklarını değiştir: "sipariş adedi" ile "ciro" aynı kutuda yan yana durmamalı. İyi bir dijital ürün satış yazılımı bu ayrımı arayüzde de görünür kılar.

Saat dilimi farkı raporu nasıl kaydırır?

Kayıtlar veritabanına çoğunlukla UTC olarak yazılır, rapor ise yerel saate göre gruplanır. Arada üç saat varsa gece 00:00 ile 03:00 arasındaki satışlar bir önceki güne ya da bir sonraki güne düşer. Günlük rapor bu yüzden ödeme geçidinin günlük ekstresiyle asla birebir tutmaz; çünkü geçit kendi saat dilimini kullanır.

Bunu çözmenin tek sağlıklı yolu, raporlamada kullanılan saat dilimini tek bir yerde tanımlamak ve tüm sorguların o tanımı kullanmasını sağlamaktır. Ek olarak aylık kapanışları gün sınırına değil, geniş aralıklara yaslamak farkı anlamsız hale getirir. Günlük karşılaştırma yapacaksan her iki tarafta da aynı saat dilimini seçmen şarttır; aksi halde sonsuza kadar üç saatlik hayaletleri kovalarsın.

Fark KaynağıTipik SapmaNasıl AnlaşılırKalıcı Çözüm
Sipariş durumu tanımıOrta-yüksekAdet tutmuyor, ciro daha da farklıTek kanonik gelir durumu
Saat dilimiGünlükte yüksek, aylıkta düşükFark sadece gün sınırındaMerkezi saat dilimi tanımı
İade ve iptalAy sonunda belirginGeçmiş gün rakamı sonradan değişiyorİade tarihini ayrı kolona yaz
KDV dahil/hariçSabit oranlıFark her zaman aynı yüzdeRaporda iki kolon birlikte
Çift sayımYüksekCiro adetten mantıksız büyükKalem tablosundan toplama
Test siparişleriDüşük ama süreklidirAynı müşteride tekrarlayan kayıtTest bayrağı ve rapor dışı bırakma

Çift sayım nasıl oluşur ve neden fark edilmez?

Bu, teknik olarak en tehlikeli olanıdır çünkü ciroyu şişirir ve kimse şişen ciroya şüpheyle bakmaz. Sebep genelde tablo birleştirmedir: sipariş tablosu ile kalem tablosunu birleştirip sipariş toplamını topladığında, üç kalemli bir sipariş üç kez sayılır. Sonuç, gerçek cironun iki üç katı olabilir.

Kuralı ezberle: sipariş toplamı sipariş tablosundan, kalem detayı kalem tablosundan toplanır; ikisi asla aynı sorguda birleştirilip toplanmaz. Kategori bazlı ciro istiyorsan kalem tutarlarını kullan, sipariş toplamını değil. Bu ayrımı yapmayan bir e-pin satış scripti ile büyüdüğünde, yıl sonunda gerçekle arasında kapatılamaz bir uçurum bulursun.

Rapor Farklarının Kaynak Dağılımı

  • Durum ve tanım farkı 35%
  • Zaman dilimi ve gün sınırı 25%
  • İade, iptal ve KDV 22%
  • Çift sayım ve test kaydı 18%

İade ve iptal geçmiş raporu neden değiştirir?

Dün 100 bin TL gösteren rapor bugün 92 bin TL gösteriyorsa, muhtemelen dünkü bir sipariş bugün iade edildi ve iade, siparişin oluşturulma tarihine geri yazıldı. Bu yaklaşım muhasebe açısından tutarlı olabilir ama operasyon açısından kafa karıştırıcıdır; çünkü kapanmış bir günün rakamı asla değişmemelidir.

Doğru kurulum, iadeyi ayrı bir hareket olarak kendi tarihiyle kaydetmektir. Böylece brüt satış, iade ve net satış üç ayrı kolonda durur; hiçbir geçmiş gün oynamaz ve iade oranını da ayrıca ölçebilirsin. Kısmi iade söz konusuysa kalem bazlı iade tutarı tutmak zorunludur; yoksa net ciro hiçbir zaman doğru hesaplanmaz.

KDV, komisyon ve kur: hangi tutarı rapor ediyorsun?

Dijital ürün satışında aynı sipariş için en az dört farklı tutar vardır: müşterinin ödediği brüt tutar, KDV hariç matrah, ödeme geçidi komisyonu düşülmüş net tahsilat ve tedarikçi maliyeti çıkarılmış brüt kâr. Panelde "ciro" yazan kutu bunlardan hangisiyse, banka hesabındaki para başka bir tanesidir. Fark hata değil, komisyondur.

Yabancı para birimiyle tedarik yapıyorsan bir katman daha eklenir: kur. Siparişin oluştuğu andaki kur ile ödemenin hesabına geçtiği andaki kur farklıdır. Bu yüzden maliyet tarafını sipariş anındaki kurla dondurup kaydetmek gerekir; sonradan güncel kurla hesaplarsan geçmiş kârlılık raporların her gün değişir. Sağlam bir epin yazılım kurgusunda sipariş kaydı, o günün kurunu da içinde taşır. Raporlama modülünü incelerken bu alanın var olup olmadığını sor.

Özet tabloları ve önbellek: rakam neden bir süre sonra düzeliyor?

Büyüyen sistemlerde raporlar her seferinde ham veriden hesaplanmaz; gece çalışan bir iş özet tablosunu doldurur ve panel o tabloyu okur. Bu hız için harikadır ama gün içinde özet ile ham veri arasında fark oluşur. Kullanıcı sabah rapor açar, akşam tekrar açar, sayı değişmiştir ve sen "rapor tutarsız" sanırsın.

Bu durumu şeffaflaştırmak yeterlidir: her rapor kutusuna "son güncelleme saati" yaz. Kullanıcı rakamın hangi ana ait olduğunu bildiğinde güven kaybı olmaz. Gerçek zamanlı ihtiyaç varsa sadece küçük pencereleri canlı hesapla, tarihsel dönemleri özetten oku. Bu hibrit yaklaşım, hem performansı hem güveni korur.

AdımKontrolDoğrulama YöntemiBeklenen
1Kanonik durumRaporun hangi sipariş durumunu saydığını yazTüm raporlarda aynı küme
2Saat dilimiAynı günü iki dilimle sorgulaFark yalnızca gün sınırında
3Çift sayımCiroyu sipariş ve kalem tablosundan ayrı hesaplaİki sonuç eşit olmalı
4İade ayrımıBrüt, iade ve net kolonlarını karşılaştırGeçmiş gün değişmemeli
5KDV tabanıMatrah ve brüt tutarı yan yana getirOran sabit çıkmalı
6Test kayıtlarıTest bayrağı olanları hariç tutFark küçük ama açıklanabilir
7Özet tablosuSon güncelleme saatini okuCanlı veriyle tutarlı
Tek sayfalık tanım belgesi yaz

Ciro, sipariş adedi, net tahsilat ve kâr için birer cümlelik tanım yaz ve panelin yanına as. Fark tartışmalarının çoğu, yazılı tanım olmadığı için çıkar; belge çıktığı gün tartışma biter.

Rapora güvenmeyi nasıl yeniden kazanırsın?

Güven, mutlak doğrulukla değil tekrarlanabilirlikle gelir. Aynı tarih aralığını iki farklı günde sorguladığında aynı sonucu alıyorsan rapor güvenilirdir; küçük tanım farkları kabul edilebilir. Bu yüzden önce tekrarlanabilirliği sağla: geçmişi değiştiren hareketleri kendi tarihine yaz, özet tablosu saatini göster, test kayıtlarını işaretle.

Ardından ayda bir kez tek bir mutabakat ritüeli kur: ödeme geçidi ekstresi, panel net satış raporu ve muhasebe kaydını aynı masaya koy, farkı kalem kalem açıkla. İlk ayda birkaç saat sürer, üçüncü ayda yarım saate iner ve o noktadan sonra rakamlarını gerçekten yönetmeye başlarsın. Yatırım kararını verirken raporlamayı bir süs değil, karar altyapısı olarak değerlendir.

Rakamlarına güvenerek büyümek istiyorsan

Pinova; kanonik sipariş durumu, kalem bazlı iade, KDV ayrımı ve kur dondurma mantığıyla raporu tek doğruya bağlar. Ay sonu mutabakatı saatler değil dakikalar sürer.

Panel cirosu ödeme geçidiyle neden hiç birebir tutmuyor?

Çünkü geçit komisyon düşülmüş net tahsilatı, panel ise brüt satışı gösterir. Ayrıca iki tarafın saat dilimi farklıysa gün sınırındaki işlemler kayar.

Geçmiş günün rapor rakamı neden sonradan değişiyor?

İade veya iptal, siparişin oluşturulma tarihine geri yazıldığı için. İade hareketini kendi tarihiyle ayrı kaydettiğinizde geçmiş günler sabitlenir.

Ciro adet ile mantıksız oranda büyük çıkıyorsa sebebi ne olabilir?

Büyük olasılıkla çift sayım. Sipariş tablosu ile kalem tablosu birleştirilip sipariş toplamı toplandığında her kalem için tekrar sayılır.

Kârlılık raporum her gün değişiyor, nasıl sabitlerim?

Tedarik maliyetini ve kuru sipariş anında dondurup kayda yazmanız gerekir. Güncel kurla geriye dönük hesaplama yapıldığında geçmiş kâr sürekli oynar.

Rapor tutmuyorsa panik yapma; tanımlarını yaz. Kanonik durumu seç, saat dilimini merkezîleştir, iadeyi kendi tarihine al, KDV ve komisyonu ayrı kolonlara böl, çift sayımı kapat. Bu beş hamle farkların neredeyse tamamını açıklar. Brüt satış, iade, net tahsilat ve kâr kolonlarının aynı ekranda nasıl tutarlı durabildiğini görmek istersen canlı demo üzerinden birkaç test siparişi oluşturup raporun her adımda nasıl davrandığını izle.

Daha Fazlasını Keşfedin

Dijital ürün satışı ve otomasyon üzerine güncel rehberlere göz atın.

Tüm Yazıları Gör →
Bu yazıyı paylaşın
Bu yazıyı beğendiniz mi?
Teşekkürler!
← Tüm yazılar