Rehber
Çevrimdışı çalışan kasa neden önemli?
· 6 dk okuma · Kasadaş ekibi
Kısa cevap: Çevrimdışı çalışan (offline-first) kasa, her satışı önce kendi yerel veritabanına yazar ve internet ya da ağ kesildiğinde satışa devam eder; bekleyen kayıtlar bağlantı gelince sırayla ve tekrarsız gönderilir. Markette bu, kesintide kuyruğun durmaması demektir.
Market kasasında en pahalı dakika, kuyruk varken kasanın durduğu dakikadır. İnternet sağlayıcısı arıza yapar, modem yeniden başlar, şube sunucusu güncellenir. Bunlar her işletmenin başına gelir. Önemli olan, bu anlarda kasanın satışa devam edip edemediğidir.
“Bulut” ve “çevrimiçi” aynı şey değil
Bulut yazılımların çoğu her işlemde merkezi bir sunucuya bağlanır. Bağlantı gidince ekran donar ya da “bağlantı yok” uyarısı verir. Çevrimdışı öncelikli (offline-first) bir kasada ise sıra terstir:
- Kasa, ürün, fiyat ve kampanyaların yerel bir kopyasını tutar.
- Satış önce kasanın kendi veritabanına yazılır.
- Kayıt bir gönderim kuyruğuna eklenir. Bağlantı varsa hemen, yoksa bağlantı gelince sunucuya aktarılır.
Bu yapıda internet kesintisi satışı durdurmaz. Yalnız merkezle eşitlemeyi geciktirir.
Tekrarsız aktarım: aynı satış iki kez sayılmamalı
Bağlantı gidip gelirken bir kayıt iki kez gönderilebilir. İyi tasarlanmış bir sistemde her kaydın kasada üretilen benzersiz bir kimliği vardır. Sunucu aynı kimliği ikinci kez görürse kaydı yeniden işlemez. Böylece ciro ve stok iki kez sayılmaz.
Katmanlar: kasa, şube, merkez
Çok kasalı marketlerde genellikle mağazada bir şube sunucusu, uzakta bir merkez bulunur. Her katmanın bir üstüne ulaşamadığında kendi başına çalışabilmesi gerekir:
- Kasa ↔ şube: Şube sunucusu yeniden başlarken kasalar satışa devam etmeli.
- Şube ↔ merkez: İnternet kesildiğinde şube; satış, iade, vardiya kapanışı ve raporlarla çalışmalı.
Veri akışının yönü de bellidir. Ürün, fiyat ve kampanya gibi ana veriler merkezden aşağı iner. Satış, iade ve stok hareketi gibi işlem verileri yukarı çıkar. Her verinin tek bir sahibi olursa çakışma çıkmaz.
Kesinti anında neler yapılamaz?
Dürüst bir çevrimdışı tasarım, kesintide yapılamayanları da söyler. Merkezdeki güncel bilgiye ihtiyaç duyan işlemler beklemek zorundadır. Örnekler:
- Merkezde tutulan sadakat puanını harcamak,
- Başka kasada kesilmiş bir fişin iadesi (o fiş henüz bu kasaya ulaşmadıysa),
- Uzaktan yönetici onayı,
- Yeni fiyat ve kampanyaları almak (son alınanlar geçerli kalır).
Bu listenin kasiyer ekranında açıkça görünmesi, “neden olmuyor?” sorusunu ve müşteriyle yaşanan gerginliği önler.
ÖKC’nin yeri ayrıdır
Çevrimdışı çalışma, mali fişten vazgeçmek demek değildir. Fiş ÖKC’den kesilir. ÖKC’ye ulaşılamıyorsa satış tamamlanmamalı, askıda beklemelidir. İnternet kesintisi ile ÖKC bağlantısının kopması farklı durumlardır. Yazılım ikisini ayrı ele almalıdır.
Elektrik kesilirse?
Elektrik kesintisi ya da uygulama çökmesi yarım kalmış bir satış bırakabilir. Kasa açılışta bu satışları bulmalı, ÖKC’ye son fişi sorup mutabakat yapmalıdır. Fiş kesildiyse satış tamamlanır, kesilmediyse satış yeniden ele alınır.
Kontrol soruları
- Ağ kablosunu çektiğinizde kasa satış yapıyor mu? Demoda bunu deneyin.
- Kablo geri takılınca bekleyen kayıtlar kendiliğinden gidiyor mu, sayılar tutuyor mu?
- Kesinti sırasında kasiyer ne yapabileceğini ekrandan anlayabiliyor mu?
Kasadaş çevrimdışı öncelikli tasarlandı. Mimarinin özeti özellikler sayfasında.