Basit bir alış veriş sepetinin mantığı.

Elimden geldiğince e-ticaret sitelerinin en önemli unsurlarından biri olan alış-veriş sepeti mantığını anlatmaya çalışacağım. Bu konuya değinmemin sebebi sürekli sorulan ve korkulan bir konu olması. Esasında oldukça basit olan bu yapıya adım atmadan önce bize neler lazım bunlara bir bakalım. 2 Adet tablo işimizi görecektir. Bunlardan biri stoklarımızın olacağı stoklar ve sepetimizde saklayacağımız bilgilerin bulunacağı sepet tablosu.

--stoklar
CREATE TABLE [stoklar] (
  [id] int IDENTITY(1, 1) NOT NULL,
  [stokadi] nvarchar(300),
  [fiyat] decimal(10, 2) NULL,
  [parabirimi] nvarchar(5),
  PRIMARY KEY CLUSTERED ([id])
)
ON [PRIMARY]
GO

--sepet
CREATE TABLE [sepet] (
  [id] int IDENTITY(1, 1) NOT NULL,
  [stok_id] int NULL,
  [kullanici_id] int NULL,
  [adet] int NULL,
  [eklenmezamani] datetime NULL,
  PRIMARY KEY CLUSTERED ([id])
)
ON [PRIMARY]
GO

Tablolarımız görüldüğü üzere oldukça basit, sepete ürün eklemek için yapacağımız işlem şu, stoklar tablosundaki id değerini alıp  sepet tablosundaki stok_id alanına yazmak. Sepet tablomuzda bulunan kullanici_id alanı ise sepetin hangi kullanıcıya ait olduğunu anlamamız için sepete ürün ekleyen kullanıcının id bilgisi. Genelde üye giriş yaptığı zaman bu değeri bir sessiona atıyoruz. Sepet tablosuna yeni kayıt eklerken bu bilgiyide ilgili alana yazıyoruz. Örnek bir sql cümlesi yazalım.

-- kullanıcımızın id değeri 1
-- stoklar tablomuzdaki stoğun id değeri 5
-- adetimiz ise 1 olsun

insert into sepet (stok_id,kullanici_id,adet,eklenmezamani) values ('5','1','1',getDate())

Eğer kullanıcı sepetine daha önceden eklemiş olduğu ürünü tekrar eklemek isterse adet bilgisini arttırmak içinse şöyle bir cümle işimizi görecektir.

if not exists(select id from sepet where stok_id=5 and kullanici_id=1)
	insert into sepet (stok_id,kullanici_id,adet,eklenmezamani) values ('5','1','1',getDate())
		else
	Update sepet set adet=adet+1 where stok_id=5 and kullanici_id=1

Kullanıcıya sepetindeki ürünleri göstermek içinse

	Select stoklar.stokadi,stoklar.fiyat,stoklar.parabirimi,sepet.adet from sepet,stoklar where sepet.stok_id = stoklar.id order by sepet.id desc

Kullanıcıya sepetteki ürünleri gösterirken neden stoklar tablosuna bağlanıp fiyat, para birimi ve stok adı gibi verilerini alıyoruz ? Sepete ekleme yaparken bu bilgileri de girseydik daha rahat olmazmıydı ? gibi soruları duyar gibiyim. Bunun sebebi şu, kullanıcının sepetine ürünleri eklediğini varsayalım, aradan bir zaman geçti ve ürünün fiyatı değişti aynı şekilde para birimi veya ürünün adı da değişti. Buyurun ayıklayın pirincin taşını :) Ürün kullanıcı sepetine eklendiğinde 30 liraydı 1 hafta sonra 40 lira oldu, 10 lira zarardasınız. Gösterdiğim şekilde siz stoktan herhangi bir ürünün bilgisini değiştiğinizde tüm kullanıcılar güncel stok bilgilerini görebilirler. Yani bu iki tablo bir birleriyle ilişki içerisindedir. Çok karışık olmadığını düşündüğüm bir konu, sadece kayıt ekliyoruz okadar. Bir sonraki yazıda örneklerle bu işlerimin nasıl çalıştığını, ürünlerin fiyat toplamlarını vb.. sepet işlemlerini anlatmaya çalışacağım. Umarım faydalı olur.

İnternetten Alış-Veriş Bölüm-2 (Güvenlik)

Son günlerde İnternetten Alış – Verişin ve İnternet Bankacılığının yaygınlaşmasıyla birlikte kredi kartı bilgilerimizin güvenliğide bir hayli önem kazandı. Çoğu kullanıcı bu konularda bilgisizken bir kısım kullanıcı bilgili; fakat bu bilgileri çok da yeterli değil. Gelin biraz daha derinlere inelim.

Kafalardaki ilk soru kredi kartı bilgilerimi çekim işlemini yaptırdığım firmalardaki insanlar görüyormu, görebilirmi veya bilgilerim saklanabilirmi ? Bu soruların cevabı maalesef evet evet evet. Kredi kartı bilgilerinizi girdiğiniz alanlar, o sayfayı programlayan kişilerin kodları doğrultusunda girdiğiniz kart bilgilerinizi bankanıza gönderebileceği gibi istenilirsede bir yerde saklı tutulabilir ve daha sonradan kullanılabilir.Şimdiden tedirgin olmuş gibisiniz. Olaya birde şu açıdan bakalım. Benzinciden benzinimizi aldık ve kredi kartımızı pompacıya verip ücretin karttan tahsil edilmesini istedik. Pompacı kartla beraber içerde bir odaya girdi ve kartınızdan çekim işlemini gerçekleştirdi. Eğer pompacı kredi kartı bilgilerinizi o süre zarfı içerisinde bir yere not alırsa ne olur ? Şimdide yok daha neler dediğinizi duyar gibiyim. Kredi kartınızdaki bilgilerin esasında bu şekilde marketlerde yada benzeri mekanlarda elden ele dolaştığı bir gerçek. Bu açıdan olayı incelediğimizde bana göre alış veriş pompacıya kartı teslim etmekten çok çok daha güvenli. Örneklerimizde tamamiyle insiyatife kalmış bir durum gibi gözüksede pompacı kafasına göre hareket edebilirken internet ortamında çok daha ciddi bir işleyişin olduğunu açık ve net bir şekilde söyleyebiliriz.

Sitelerdeki SSL İbaresi Nedir ve Nasıl Çalışır ? Bilgilerimizi girdiğimiz alanların bulunduğu sayfalarda normalde adres çubuğunda HTTP ile başlayan adresin HTTPS şeklini alması herkesin dikkatini çekmiştir. Peki ne işe yarar bu S ? Girdiğimiz kredi kartı bilgileri bankaya gönderilip yorumlatılır. Yani önünüzdeki açık sayfa ve banka. Bankanın güvenirliliğinden kimsenin en ufak bir şüphesi yok. Kendinizden de en ufak bir şüpheniz yok ama ya 3. bir şahız araya girerse neolur? Tüm planlar alt üst olur bilgileri bankaya post etme anında bilgilerinizi bankadan önce bir hacker görebilir yada şüphe uyandırmamak için bankayla beraber görme yolunada gidebilir. Olayın özeti şu şekilde Önünüzdeki Ekran İle Banka Arasında bir casus olabilir ve bu hiçde hoş değil.! Bu nokta da SSL(Secure Sockets Layer) Teknolojisi devreye giriyor ve milyonlarca sitedeki güvenliği sağlıyor. Bu teknoloji sayesinde sizin ekrana girdiğiniz bilgiler bir algoritmayla sadece hedef bilgisayarın açabileceği bir şekilde neredeyse çözümlenmesi imkansız bir biçimde şifreleniyor. Dünyanın en güçlü bilgisayarı dahi olsa bu algoritmayı çözebilmesi için yıllarca hesaplama yapması gerekiyor. En büyük Güvenlik Sertifikası veren sitelerin logoları (Bkz: Şekil 1) sitelerde çoğu zaman ziyaretçiye gösterilirki ziyaretçinin güveni kazanılabilsin.


Şekil 1: Güvenlik Sertifikası Veren Firmaların Logoları

Bir Sitede SSL var ise Güvenlik Tamammıdır ?

Tabiki tamam değildir. Unutmayın ki güvenlik bir noktada biten olgu değildir. Tüm detayları gözden geçirmeli ve oluşabilecek riskleri minumuma indirmeniz herzaman sizin kârınızadır. Özellikle banka sitelerinde dikkatinizi çekmiştir, bilgilerin normal klavyenizden değilde sanal bir klavyeden giriliyor olması. Bu uygulamanın altında yatan sebep ise güvenlik daha çok güvenlik.! Bilgisayarınızda bir keyloger olduğunu düşünün. Keyloger;klavyeden her bastığınız tuşun birileri tarafından takip edilmesini sağlayan programcıklar. Kart bilgilerinize bu şekilde zahmetsizce ve riskten uzak bir şekilde erişebilirler. Bunun önüne geçebilmek için bankaların ve son zamanlarda alış veriş sitelerinde sanal klavye uygulamaları kullanılmaya başlandı. (Bkz: Şekil 2) Bu uygulamadaki amaç tüm girişleri mausunuza tıklayarak yapabilmek. Bunun bile çözümünü bulan kötü niyetli insanlar şöyle bir yol izliyorlar. Klavyenin ekrandaki koordinatları belli olduğu için yine casus bir yazılım yardımıyla mausumuzun tıkladığı koordinatları karşılaştırarark ekran üzerinde hangi harfe yada rakama tıklandığını bulabiliyorlar. Fakat bununda önüne şu şekilde geçmek mümkün oldu. Sanal klavyedeki tuşların sırası yeri sürekli değişiyor ve klavye her seferinde ekranda farklı yerlerde açılıyor. Bu sayede koordinatlar ile iş yürüten insanlara dur diyebiliyoruz.


Şekil 2: Sanal Klavye

Kart veya Aktivasyon Bilgilerini Nasıl Saklamalıyım ? Eğer imkanınız varsa sadece kafanızda saklamak en sağlıklısı. Kart bilgisi çalınan insanların çoğu mail adreslerinde yada benzer yerlerde bu bilgileri saklamasından dolayı oluyor. Mail hesabınızın hacklenmesi durumunda tüm bilgilerinize ulaşılabiliyor. Günümüzde maalesef bilgisayar ortamında bilgi saklamak özellikle kredi kartı bilgileri gibi kritik bilgileri saklamak kağıt üzerinde saklamaktan bile daha güvensiz bir hal aldı. Bilgi saklama konusunda teknolojiyi bir kenara koyup tamamiyle kendi geliştireceğiniz yöntemleri kullanmak en mantıklısı. Ne yaparsanız yapın nasıl bir çözüm üretirseniz üretin ikinci bir kişiyle asla bunu paylaşmayın.

Sonuç olarak şunu anlıyoruz herzaman adımlarımızı çok dikkatli atmamız gerekiyor çünkü düşmanlarımız atacağımız her adımı önceden tahmin edip ona göre silahlarını üzerlerimize doğrultmuş şekilde bizi gözetliyor. Maddeler halinde durumu özetlersek. Birinci madde alış veriş yaptığımız sitede SSL sertifikasının olup olmadığını kontrol etmemiz gerekiyor. İkinci madde ise güvenlik problemlerinin %50’sinin hatta daha da fazlasının kendi bilgisayarımızdan veya kişisel hatalarımızdan dolayı olduğunu bilip adımlarımızı ona göre sağlam atmamız gerekiyor.

Elimden geldiğince dilimin döndüğünce basit bir şekilde güvenlik unsurunu anlatmaya çalıştım inşallah başarılı olabilmişimdir. Farklı makalelerde buluşmak üzere hoşçakalın teknolojiyle kalın..

İnternetten Alış-Veriş Bölüm-1 (Genel Anlamda E-Ticaret)

İnternetten alış-veriş yapmak son zamanlarda modamı oldu yoksa gerçekten dahamı kârlı. E-Ticaret, Sanal Ticaret, E-Mağazacılık veya Sanal Mağazacılık gibi kavramlarda bu sistemin içerisideki farklı isimler, esasında hepsi aynı şey. İlk başlarda büyük bir kesimin karşı olduğu bu sitelere neden son zamanlarda talep giderek artıyor ? Hem internetten alış-veriş yapan birisi olarak hemde bu tarz siteleri yapan biri olarak dilimin döndüğünce aklınızdaki tüm sorulara cevap vermeye çalışacağım. Amacım hergeçen gün ortaya atılan iddialar yüzünden insanların kafalarındaki soru işaretlerini bir nebze olsun giderebilmek. Madde madde konularımızı sıralamaya başlayalım.

1- Neden İnternetten Alış-Veriş Yapar İnsanlar ? Bence ilk neden aranılan şeylerin bu tarz ortamlarda çok daha rahat bulunması ve özellikleri hakkında çok ayrıntılı bilgi sahibi olabilmek. Örneğin Trabzon’ da Intel E6700 işlemciyi bulmak imkansız tüm bilgisayarcıları dolaşıp bu ürünü aramak yada elimizde yok ama sipariş versek iki güne gelir şeklindeki alımlar yerine direk internetteki güvendiğimiz bir alış veriş sitesine girip birinci elden çok iyi fiyata, çok iyi ödeme seçenekleriyle bu ürünü temin edebiliriz. Bence nedenlerin en başında bu geliyor. İkinci bir neden ise çoğu alım yapacak insan kendini rahat hissetmek ister yani bir müşteri temsilcisinin yada bir tezgahtarın peşinden dolaşması son derece sinirini bozar ve alacağı varsada almaz. İnternet ortamında bir yandan çayını yudumlarken diğer yandan almak istediği ürünler hakkında detaylı bilgileri ve ürünler hakkındaki yorumları okuyup yapacağı seçime kimsenin etkisi olmadan kendi karar verir. İlk etapta bu bir avantajmış gibi görünsede yazımın ilerleyen satırlarında zaman zaman müşteri temsilcisinin olmamasının ne gibi sıkıntılar yaratacağından da bahsedeceğim. Kısacası internetten alış veriş çokdaha rahat ve zevklidir.

2- İnternet Ortamındaki Bir Mağazaya Nasıl Güvenebilirim ki ? Çoğu siteye güvenmek zaten yanlış olur. Sonuçta ne çalışanını nede sahibini tanımak gibi bir lüksümüz yok. En önemli ayrıntı sitenin tasarımında yatıyor. Görsel olarak göze hoş gelen ve ciddiyeti kullanıcısına yansıtabilen bir site olmalıdır. Üç tane ürün resmi koymuş bir siteden sipariş vermek gerçekten saçma olur. Aklımızda eğerki soru işareti kalıyorsa sitenin iletişim kısmından firmaya telefon açıp daha detaylı bilgide alabilirsiniz en azından telefonların doğru olması bile olumlu bir etkidir. Daha sonrasında sitenin Güvenlik Sertifikası olup olmadığına bakmamız gerekiyor ki bu bölümü detaylı bir şekilde Güvenlik Maddesinde yazacağım. Birde sitedeki diğer üyelerin görüşlerini okumalı www.Google.com‘ dan firmayı araştırıp varsa olumlu yada olumsuz görüşlere bir göz atmanız yerinde bir davranış olacaktır. Gerçeği söylemek gerekirse bu maddelerin dışında başka bir somut kriteriniz yok siteye güvenmek için.

3- Garanti ve İade Prosedürleri Nasıl İşler ? Malum karşınızda ne bir mağaza var nede muhatap olabileceğiniz bir insan. Çoğu zaman bu madde yüzünden netten alış-veriş yapmayan bir sürü insan var. Sonuç itibariyle resimden bakıp bir ürün alıyorsunuz umduğunuz gibi çıkmayabilir yada gelen ürün kullanılmış, bozuk vb.. gibi durumlarda olabilir. Genellikle sitelerde Arıza Formu, Teknik Servis Formu yada İade Formu tarzında forumların doldurulup ürüne iliştirilip belirtilen adrese düzgün paketlenerek gönderilmesi istenir fakat bu yöntem hiç bir zaman elinizle teslim edip derdinizi bir muhataba anlatmak kadar başarılı ve sağlıklı değildir. Tamamiyle karşınızdaki firmanın insafına kalmış bir prosedürdür. Yani size şunu bile diyebilirler (Maalesef iade alamıyoruz çünkü kutusu açık yada gözünün üstünde kaçı var misali..) Bu örnek herzaman geçerli değildir bazı firmalarda tutunmak için yada gerçekten kaliteli olduğu için zaman zaman çıkmaz gibi görülen problemleri bile çözebilir. Sonuçta buda bir nevi şansınıza kalmış bir durum.

4- Ödeme Seçenekleri ve Güvenilirlik. İnternetten alış veriş a’dan z’ye güvene dayanıyor. Alış verişin en can alıcı noktası olan ödemede buna dahil. Eğer internetten ilk defa alış veriş yapıyorsanız kredi kartı bilgilerinizi verirken bir hayli tedirgin olursunuz. Aklınıza direk şu sorular gelir. Acaba kart bilgilerimi başkalarıda görüyormu? Yada acaba parayı aldıktan sonra istediğim ürünü bana yollayacaklar mı? Başkalarıda görüyormu sorusuna farklı bir makalede uzun uzadıya cevap ariyacağız ama diğer sorumuzun tek cevabı Bekleyip Görmek şu ana kadar bilindik sitelerden alış veriş yapıpda bu konuda mağdur olan ne duydum ne işittim. Eğer ki internetten ilk kez alışveriş yapıyorsanız benim size tavsiyem UPS Kargo İle Kapıda ödeme seçeneğini işaretlemeniz. Bu sayade UPS kargonun görevlisi size ürününüzü elden teslim eder ve sizde ödemeyi kapıda görevliye elden verirsiniz. Bu kullanıcılara çoğu zaman çok daha güvenilir gelsede taksit seçeneklerinden faydalanamamanız kapıda ödemenin tek dezavantajı. Güvenilir site güvenilir site diye yazıyorum bunlara isterseniz bir kaçtane örnek verelim. Türkiye’nin en büyük ve en bilindik sitesi www.hepsiburada.com gerek güvenilirliği gerek işlevselliğiyle yurtiçinde ve yurt dışında sayısız ödül almış bir site. Diğer güvenilir siteler ise http://www.ideefixe.com ,http://www.mavibilgisayar.com tabi bunlar bir çırpıda aklıma gelenler. Örnekleri arttırmak mümkün..

Sonuç:Herşeyde, heryerde olduğu gibi netten alış verişin avantajları ve dezavantajları bulunmaktadır. Eğer dikkatli ve bilindik sitelerden alış veriş yaparsak hiç bir şekilde zarar görmeden piyasada bulunan parçaları daha ucuza ve daha rahat bir şekilde Internet ortamından alabiliriz. Unutmayın ki normal bir mağazadan bile bir ürün alsanız problem yaşama ihtimaliniz sanal ortam ile aynı fakat size tek kârı karşınızda sizle konuşacak bir insanın olması. Sanal ortamdan yapılan alış verişlerin Güvenlik üzerine olan kısmını ise farklı bir makalede yazmayı uygun gördüm..

Not: Bu yazımı bir kaç yıl önce yazmıştım, tozlu arşivimden çıkarıp sizlerle paylaşmak istedim, devamı gelecek ;)