Bu döküman http://forum2.sambapos.com/index.php?topic=974.msg4845#new adresindeki konuyla ilgili olarak hazırlanmıştır. V3 alpha sürümü üzerinde çalıştığımız için gelecekteki V3 sürümlerinde bu dökümanda gösterilen bazı özellikler değişebilir.
Konumuz SambaPOS ile ön ödemeli kart uygulamalarının nasıl yapılabileceği. Bu yazımızda V3 sürümümüzde bulunan çeşitli özellikleri kullanarak bir kart uygulamasının nasıl yapılabileceğini örneklemeye çalışacağız.
Tanımlar
Öncelikle Müşteri Kartları için farklı bir hesap türü tanımlayacağız. Bu sayede kart hesaplarının normal müşteri hesaplarından farklı bir hesap türü altında takip edilmesini sağlayacağız ve bu hesap türüne özel çalışma kuralları belirleyebileceğiz.
Örnek olarak kartımızın adı SambaKart olsun. Yönetim > Hesaplar > Hesap Şablonları menüsünden yeni bir hesap şablonu tanımlayarak başlıyoruz.
Müşterilere vereceğimiz ve alacaklı çalışan her bir kart için bu hesap altında bir hesap oluşacak. Bu kartlara para yüklemesi yapmak için yani kart hesaplarını alacaklandırmak için bir hesap hareketi tipi tanımlayacağız. Öncelikle bir kısa açıklama yapalım. SambaPOS hesap sistemi restoranlar için basitleştirilmiş bir hesap sistemidir. Çift kayıt esasına göre çalışır. Bu şu anlama geliyor. Eğer bir kart hesabı alacaklanıyorsa (yani karta para yüklemesi yapılıyorsa) başka bir hesabın da borçlanması gerekir. Bu sayede hesapların dengede kalması sağlanır. Bunun için öncelikle “Satışlar Hesapları” altına SambaKart Satışları
isminde bir hesap tanımlayacağız. Doldurduğumuz her kart bu hesabın da borcuna yazacağı için toplam kart satışlarımızı da bu hesaptan takip edebiliriz.
Şimdi Kart Hesabını alacaklandırıp Kart Satışları hesabını borçlandıran bir hesap hareketi tanımlayacağız. Hesaplar > Hareket Tipleri kısmından yeni bir Hesap Hareketi Tipi tanımlıyoruz.
Bu ekranda henüz Türkçeleştirme tamamlanmamış ancak yaptığımız işlem çok basit. Borçlanan (Target Account) ve Alacaklanan (Source Account) hesap tipini seçiyoruz. Default Target Account kısmından ise hedef hesap olarak “SambaKart Satışları” hesabını seçiyoruz. Default Source Account yani alacaklanan hesap boş kalıyor çünkü bu kart hesabının ne olduğu işlem sırasında belirlenecek.
Böylece SambaPOS'a kart doldurma işleminin nasıl yapılacağını tarif etmiş olduk. Son olarak kullanıcının bu işi basitçe yapabilmesi için bir Döküman Tipi tanımlayacağız. Bu sayede bu hesap hareketleri otomatik olarak gerçekleştirilmiş olacak. Hesaplar > Döküman Tipleri menüsünden yeni bir döküman tipi tanımlıyoruz.
Dökümanın adını belirledik. Kullanıcının kart doldurmak için basacağı düğmenin başlığı Kart Doldur olacak. Düğme rengi olarak açık yeşil (Tan) seçtim. Hesap Şablonu olarak kartlar için tanımladığımız hesap şablonunu seçiyoruz. Yani bu düğme SambaKart Hesapları için çalışacak. Açıklama Şablonu kısmına ise varsayılan işlem açıklamasını yazıyoruz. Kullanıcı isterse kart dolumu sırasında bu açıklamayı değiştirebilir.
Burada en önemli kısım çalışacak Hesap Hareketlerini seçtiğimiz bölüm. Hesap Hareketi Tipi Ekle diyerek SambaKart Satışı hareketini listeye ekliyoruz. Burada birden fazla hareketin çalışacağı durumlar olabiliyor ama bu örnek için tek hareket çalıştırmamız yeterli olacak.
Kart Yükleme özelliğinin hangi durumlarda çalışacağını seçmek için Mappings sayfasına geçiyoruz.
Burada bu işlemin hangi kullanıcı ya da hangi terminal için çalışacağını seçiyoruz. * işareti Tüm Kullanıcılar anlamına gelir. Yani her tür kullanıcı bu işlemi yapabilir.
Burada Kart yükleme işleminin nasıl çalışacağını belirlemiş olduk. Kaydet'e basıp işlemi tamamlıyoruz.
Kart Hesapları ile ilgili yaptığımız tanımlamalar bu kadar. Şimdi Kartların açılması ve adisyonlara seçilmesi ile ilgili işlemleri yapalım.
Masa, Müşteri gibi adisyonlara bağladığımız her şeye Varlık ismi verdik. Yani Adisyonda seçmek istediğimiz herşeyi bir Varlık Tipi olarak tanımlayabiliriz. Adisyonda SambaKart seçimi yapabilmek için öncelikle Varlıklar> Varlık Tİpleri ekranından yeni bir Kaynak Tipi tanımlayalım.
Varlık Tipini SambaKart Müşteri Kartı olarak belirledik. Varlık adı kısmına kaynağın tekil ismini yazıyoruz. Bu ismi ilgili düğmeleri oluştururken kullanacağız. Hesap Şablonu olarak tanımladığımız SambaKart Hesapları şablonunu şeçiyoruz. Hesap İsmi Şablonu olarak da kartlar için açılacak hesabın isminin nasıl oluşturulacağını belirliyoruz. Buradaki örnekte Müşteri Adı Emre EREN, Telefonu da (312) 444-4444 ise hesap ismi SK-Emre EREN-3124444444 olarak oluşturulacak şekilde tanımladık.
Özel alanlar kart tanımlarken kullanacağımız bilgiler. Özel alanlar listesine sağ tıklayarak yeni alan açabiliriz. Örneği ekran görüntüsündeki gibi yapalım ve kaydedelim. Varlık adı olarak Kart numarasını kullanacağız. Diğer bilgileri için de özel alan olarak tanımladığımız alanları kullanacağız. İhtiyaca göre daha fazla sayıda özel alan tanımlanabilir.
Burada önemli bir konudan bahsetmek istiyorum. Farkettiğiniz gibi Varlık ve Hesap olarak iki farklı mantığımız var. Bunu şöyle düşünelim. Oluşturacağımız her SambaKart için bir hesap açmak zorunda değiliz. Bu kartlar sadece promosyon amaçlı kullanılabilirler. Eğer bir kart verdiğimiz kişi tarafından bir ödeme yöntemi olarak da kullanılabilecekse o zaman karta bir hesap açabiliriz. Yani her müşterimize bir SambaKart verebiliriz ancak sadece açık hesap çalışacak müşterilere verdiğimiz kartlar için hesap açacağız. Bunun örneğini az sonra göreceğiz.
Şimdi bu Kartları seçme, ekleme gibi işlemler için kullanacağımız POS ekranını tanımlayalım. Bunun için Varlıklar> Varlık Ekranları menüsüne gidiyoruz. Genel Ayarlar sayfasını şu şekilde düzenleyelim.
Ekran adını SambaKart yaptık. Bu POS ekranında bir buton olarak görünecek. Görünüm modunu Ara olarak belirliyoruz. Yani kartları tıpkı Müşteri arama ekranındaki gibi arayarak seçeceğiz. Buradaki ayarları tamamlayıp Varlık Listesi sayfasına geçiyoruz.
Bu ekran Masa seçimi gibi düğmeli bir varlık seçim ekranı kullanacaksak tanımlama yaptığımız yer. Düğmeli ekran kullanmayacağımız için sadece Varlık Tipini belirlememiz yeterli. Varlık Tipi olarak tanımladığımız tipi seçiyoruz ve Mappings sayfasına geçiyoruz.
Burada bu ekranı hangi departmanlarda hangi kullanıcıların kullanabileceğini belirliyoruz. Örneğin Paket Servis departmanında kartla satış özelliğini kullanmak istemeyebiliriz. Ben Ekle komutu vererek ayarları * olarak bırakıyorum. Bu ayar tanımladığımız ekran her departmanda ve her tip kullanıcı için çalışacak anlamına geliyor. Varlık tanımlarımız bu kadar.
SambaKart Varlık Tipinin Adisyon Belgesinde Kullanımı
Açtığımız adisyonlarımızın içerisinde SambaKart Seç butonun gelmesi için Yönetim > Adisyonlar > Adisyon Tiplerinde kullandığımız Belge tipinin içine girerek Varlık Seç linkine tıklayarak yukraıda tanımladığımız, SambaKart Müşterisi Varlık Tipini de ekliyoruz.
Ödeme Tipi Tanımları
Dökümanın başında kart hesaplarının alacaklanması yani Kart Yüklemesi işlemini tanımlamıştık. Şimdi de Kart hesaplarının borçlanması yani SambaKart ile Ödeme Yapma işlemini tanımlayacağız. Bunun için öncelikle bir hesap hareketi tanımlaması yapıyoruz. Hesaplar > Hareket Tipleri ekranından yeni bir Hareket Tipi ekleyelim.
Normalde açtığımız her adisyon Alacaklar hesabına Borç yazar yani Alacaklar tutarı artar. Aldığımız her ödeme de Alacaklar hesabına Alacak yazar yani bu hesabın tutarı düşer. Yani Alacaklar hesabının bakiyesi anlık olarak henüz ödenmemiş adisyonların toplam tutarını gösterecektir. SambaKart ile ödeme yapıldığı zaman da Alacaklar tutarını düşürmemiz ve SambaKart için açığımız hesabı da borçlandırmamız gerek. Bu Hareket Tipi bu işlemi yapacak olan hareket tipidir.
Kart ile ödeme yapıldığında hesap hareketinin nasıl yapılacağını tanımladık. Son olarak Ödeme ekranında kullanacağımız ödeme butonunun tanımlamasını yapıyoruz. Adisyonlar > Ödeme Tipleri ekranından yeni bir ödeme tipi ekleyelim.
Bu ekranda yaptığımız tanıma göre ödeme tipi düğmemiz SambaKart olarak ve yeşil renkte görüntülenecek. Hesap Hareketi Tipi olarak da biraz önce tanımladığımız SambaKart Hesap Hareketini seçiyoruz. Yine Mappings sayfasına geçerek bu düğmenin nasıl görüneceğini tanımlayalım.
Burada farklı olarak Ödeme Ekranında Göster ve Adisyon Altında Göster olarak iki seçeneğimiz daha var. Eğer Adisyon altında göster seçeneğini işaretlersek bu düğme Fast Food ekranlarındaki gibi bir hızlı ödeme düğmesi olarak görünecektir. Şimdilik sadece Ödeme ekranında göster seçeneğini işaretleyelim. Yine burada düğmenin hangi departmanlarda hangi tip kullanıcılara görünüp görünmeyeceğini de belirleyebiliyorum.
Kaydet tuşuna bastığımızda SambaPOS'a Ön Ödemeli Kart özelliğini eklemek için gerekli tanımları yapmış bulunuyoruz… Yapacağımız işlemler bu kadar. Şimdi bu özelliğin nasıl çalışacağını adım adım inceleyelim.
Örnek Uygulama
POS ekranımıza SambaKart isminde yeni bir ekran daha eklendi. Bu ekran tıpkı müşteri ekranları gibi çalışıyor. Kart ismi olarak kart numarası kullanacağız. Kart numarası olarak 55716911 girelim. Bu numarayı klavye emülasyonlu manyetik kart okuyucu kullanarak girebilmek de mümkün.
Böyle bir kart tanımlanmadığı için ekranda birşey görünmüyor. Yeni SambaKart düğmesine tıklayarak yeni bir kart tanımlayalım.
Sağ tarafta üç düğme görüyoruz.
Emre EREN kartını ödeme tipi olarak kullanabileceği için Hesap Oluştur düğmesine tıklıyoruz. Diğer seçeneklerden birini seçersem kart yine tanımlanacak ancak hesap açılmadığı için Emre EREN kartını ödemede kullanamayacak.
Tanımladığımız kart ekranda böyle görünüyor. Karta bağlı hesap oluştuğu için Hesap Detayları düğmesi aktif halde. Bu düğmeye basalım.
Karta bağlı SK-Emre EREN-4445555555 isimli hesap böyle görünüyor. Yeşil renkteki Kart Doldur düğmesine basarak karta yükleme yapalım.
Tutar kısmına 200 yazarak Kaydet diyelim.
Karta 200 TL yüklemiş olduk. Kapat diyerek ekranımıza geri dönelim. Kart ekranda seçili olarak bekliyor. Eğer karta hesap açmayı unutursak ya da hesap açılmamış bir karta yükleme yapmak istersek SambaKart Düzenle diyerek hesap açma işlemini yapabiliriz. Burada yeni bir kart daha açalım.
Bu karta hesap tanımlamayalım ve Kaydet diyerek listeye geri dönelim. Bu noktada SambaKart Seç diyerek karta bağlı yeni bir adisyon açabiliriz ancak bunun yerine Tüm Masalar ekranından bir masa seçelim ve Adisyondaki duruma bakalım.
Adisyonda da SambaKart Seç düğmesi görünüyor. Hatırlarsanız bu düğmeleri tüm departmanlarda görünür yapmıştık. Şimdi SambaKart Seç düğmesine tıklayalım ve 55716911 numaralı kartı arayalım. Burada yine Kart okuyucu kullanabileceğimizi hatırlayalım. Ayrıca bu ekranda numara yerine müşteri adını, telefonu ya da adresi yazarak da özel alanlardan arama yapabileceğimizi belirtmeden geçmeyelim.
Dikkat ederseniz bu ekrana adisyon içinden SambaKart Seç diyerek geldiğim için üst tarafta sadece SambaKart ekranı görünüyor. Bu ekranda yeni kart açmak ya da kart bilgilerinde değişiklik yapmak gibi işlemler yapabilirim. Hesap Detayları düğmesine tıklayarak kartın geçmiş hareketlerini inceleyebilirim. Ya da SambaKart Yok düğmesine tıklayarak kart seçmeden adisyona geri dönebilirim. Şimdi SambaKart Seç düğmesine tıklayalım ve adisyona dönelim.
Adisyonun üst kısmında seçili kart numarasını görüyorum. Şimdi Ödeme düğmesine tıklarayarak ödeme ekranına geçelim.
Bu ekranda bayağı bir değişiklik oldu. Öncelikle en sol üst köşede kartın kalan tutarını görebiliyorum. Sağda en alta da yeşil renkte SambaKart butonu gelmiş. Eğer SambaKart ile ödeme alabileceksem Tümü butonuna tıkladığımda bu butonun aktif hale gelmesi gerekiyor. Tümü diyelim ve SambaKart düğmesine tıklayarak ödemeyi alalım.
İşte yaptığımız tanımlar sayesinde bu işlemleri yapabilmiş olduk. Eğer bu işlemde diğer tanımladığım SambaKartı seçseydim bu karta hesap açmadığım için SambaKart ile ödeme alamayacaktım ancak diğer tanımladığım promosyon kuralları çalışacaktı.
Şimdi farklı bir işlem deniyoruz. Yine boş bir masaya tıklayalım, Emre EREN için açtığımız kartı seçelim ve 200 TL'yi aşacak şekilde sipariş girelim.
Kartın bakiyesi 192 TL ve Sipariş Tutarı 250 TL. Kart kredisini aştığımız halde program halen SambaKart ile ödeme almaya izin veriyor. Ödemeyi alalım. SambaKart ekranına geçip Emre EREN kartını bulalım ve Hesap Detayları butonuna tıklayalım.
Bu kart üzerinde gerçekleşen tüm işlemleri bu ekranda göreceğim. Göründüğü gibi müşterimiz bize 58 TL borçlanmış oldu. Ön ödemeli kartlar için bu istenmeyen bir durum olabilir. Küçük bir ayar yaparak kartın borçlu duruma geçememesini sağlayabiliriz. Yönetim > Hesaplar > Hesap Şablonları ekranından SambaKart Hesapları'na çift tıklayalım.
Bu ekranda Kurallar: ayarını Varsayılan seçeneğinden Alacak Seçeneğine çevirelim. Bu ayar SambaKart hesaplarının Alacaklı çalışan hesaplar olduğunu belirliyor. Yani kart hesaplarının ödeme ekranı kullanılarak Borçlu duruma geçmesini engellemiş oluyoruz.
Şimdi tekrar POS ekranına geçelim. 55716911 numaralı kartı arayalım, Hesap Detayları ekranına geçelim, Kart Doldur diyelim ve 100 TL daha yükleme yapalım.
Ekranda göründüğü gibi 100 TL daha yükleyince kartımızın kredisi 42 TL oldu. Şimdi Kapat diyerek önceki ekrana göre dönüyoruz ve SambaKart Seç diyerek yeni bir adisyon açıyoruz.
Adisyon tutarı 42 TL'den az olduğu program SambaKart ile ödemeye izin veriyor.
Ancak Adisyon tutarı 42 TL'yi geçerse SambaKart ile ödemeye izin verilmiyor.
Böylece SambaKart kullanıcılarının borçlu duruma geçmesini engellemiş oluyoruz. Aslında benzer özellik Kredi Limiti tanımlayarak da yapılabilir. Bu kart bazlı olarak bir borçlana limiti tanımlamak için kullanılabilecek bir özellik. Bu sayede SambaKart kullanıcılarının 5~10 TL'lik ya da ne kadar limit koyuyorsak o kadar borçlanabilmelerini sağlayabiliriz.
Uzun bir yazı oldu ancak birçok yeni V3 özelliğini de incelemiş olduk. Sorularınız, düşünceleriniz ya da önerileriniz için http://forum2.sambapos.com/index.php?topic=974 adresindeki forum konusunu ziyaret edebilirsiniz.
Notlar:
Yukarıda anlatılan uygulamalar için SambaPOS V3.010 veya üzeri bir versiyon kullanmalısınız.
Bu uygulamanın yapıldığı örnek SDF veritabanı dosyasını Buradan İndirebilirsiniz.