Bir e-ticaret web sitesinde bir sepet içinde eşzamanlılığı yönetmek için en iyi uygulama


19

İki müşterinin aynı anda stoğu sadece 1 olan bir ürünü eklediği davayı yönetmek için en iyi uygulama nedir?

Bu 2 müşteriden birinin aynı ürünü eklemesini önlemek için sepet kodunda bir kontrol olmalı mı?

Yoksa bu kontrol, söz konusu ürünün hala stokta mevcut olduğunu doğrulamak için ikinci bir sorgulama yaparken ödeme aşamasında mı gerçekleştirilmelidir (eş zamanlı müşteri tarafından henüz satın alınmamış anlamına gelir)?


Tiyatro bileti rezervasyonları gibi bazı siteler, sipariş işlenirken öğeye sınırlı bir süre
Brad Thomas

Yanıtlar:


11

Bu soru için mükemmel bir cevap yok ve hepsi detaylara bağlı.

İlk bir 'savunma hattı' olarak, mümkünse düşük olan eşyaları satarak bu tür durumlardan kaçınmaya çalışacağım. Bu mümkünse, duruma ve satmak istediğiniz eşyaların türüne bağlı olabilir. Çalıştığım şirkette, stoklarımız bitmeden makaleler çoğunlukla web sitesinden kaldırılıyor. Ancak tüm satışı satıyoruz ve kalan birkaç makale satış görevlilerimiz tarafından özel teklifler olarak satılıyor. Bu, özellikle yüksek fiyatlı ürünler satarken küçük dükkanlar için bir seçenek olmayabilir.

Sepete bir şey eklerken çift kontrol yapmanın çözümü çok iyi değil. İnsanlar aslında sipariş vermeden sepete çok şey koydu. Bu nedenle bu makale belirli bir süre için engellenebilir.

Bu yüzden küçük işler için alçakgönüllü görüşüme göre en iyi yol, siparişin verildiği anda ödemeden hemen önce son bir kontrol yapmaktır. En kötü durumda, müşteriye şu anda stokunuzun tükendiğini söylemelisiniz (küçük dükkanlar için ne sıklıkta olmayacak).


güzel yakalamak - stokta düşük ve yüksek fiyatlar
rohanagarwal

5

Bence en iyi uygulama, aşağıdaki seçeneklerden hangisinin belirli ticari durumlar için daha uygun olduğunu seçmektir :

  1. İyimser Çevrimdışı Kilit

    ... bir oturum tarafından gerçekleştirilecek değişikliklerin başka bir oturumdaki değişikliklerle çakışmadığını doğrulayarak bu sorunu ( oturum çakışması sorunu) çözer . Başarılı bir ön taahhüt doğrulaması, bir anlamda, kayıt verilerindeki değişikliklerle devam etmenin uygun olduğunu gösteren bir kilit elde etmektir. Doğrulama ve güncellemeler tek bir sistem işleminde gerçekleştiği sürece, iş işlemi tutarlılık gösterecektir ...

  2. Kötümser Çevrimdışı Kilit
    ... çatışmaları tamamen önleyerek çatışmaları önler. Bir ticari işlemi, kullanmaya başlamadan önce bir veri parçasına kilit almaya zorlar, böylece çoğu zaman, bir iş işlemine başladığınızda, eşzamanlılık tarafından zıplamadan tamamlayacağınızdan emin olabilirsiniz. kontrol...
"Kötümser Çevrimdışı Kilit, oturum çakışması olasılığının yüksek olduğunu ve bu nedenle sistemin eşzamanlılığını sınırladığını düşünürken, İyimser Çevrimdışı Kilit, çakışma olasılığının düşük olduğunu varsayar. Oturum çakışması beklentisi, birden fazla kullanıcının aynı şekilde çalışmasına izin vermez aynı anda veri. "


5

Bu bir insan sorunu yanı sıra, bir veritabanı sorunu, veritabanı kilitleme kolay bit!

Bir müşterinin asla check-out yapamayacağı düşünüldüğünde…

İki temel seçeneğiniz var:

  • Müşteri için bir ürünü, sepete ekledikten sonra (20 dakika) sabit bir süre için ayırırsınız - zaman geçtikten sonra stok seviyesini tekrar kontrol etmeleri veya tekrar başlamaları gerekir. Bu genellikle etkinliklere veya havayolu koltuklarına bilet vermek için kullanılır.

  • Ya da “ 24 saat içinde xxx normal sevk ” gibi bir şey söylersiniz , ancak ödeme yaptıklarında stoğu rezerve edin, bu durumda bazı öğeler stokta ancak diğerleri değilse, ödeme sonrasında siparişi iptal etmelerine izin vermelisiniz. (Yeşil, Sarı, Kırmızı stok seviyeleri de iyi çalışabilir veya bazı web siteleri 1 veya 2'ye düştüğünde "düşük stok" der)


2

Her zaman olduğu gibi, gereksinimlerinizin ne olduğuna bağlıdır. Amazon iseniz ve günde 100.000.000 ürün satıyorsanız, önleyici kontrol ve kilitleme yükü muhtemelen yasaklayıcıdır ve günde bir müşterinin ürününü almaması sorunu önemsizdir. Benzersiz ve pahalı olan nadir antik dini ikonlarla uğraşıyorsunuz, bunun tersi geçerli. İş durumunuzun bu spektrumda nerede olduğunu kendiniz bilmelisiniz.


2

Bizim durumumuzda, siparişleri işlemek için mesaj kuyruğunu kullandık ve aynı üründe aynı anda yalnızca bir işi FIFO tarzında işleyecek şekilde yapılandırdık.

Uyarı, tüm sipariş işlemine işleri biraz geciktiren yeni bir ek yük eklemenizdir.


sadece bir tüketici tarafından tüketilecek kuyruğu sınırlandırıyorsunuz
rohanagarwal

1

Kullanıcı için en iyi uygulama, ikinci eklemenin başarısız olduğundan emin olmaktır. Ancak bu,% 0.1'lik bir durum uğruna tüm sitenizi yavaşlatacak.

Teknik olarak en verimli çözüm ve satışları en üst düzeye çıkarmak için çözüm, başarılı olmasına izin vermek ve daha sonra her iki siparişi de daha sonra yerine getirmeye çalışmaktır - sadece şu anda stokunuz olmadığı için bulamayacağınız anlamına gelmez Acil bir durumda. Eğer bunu yapamıyorsanız, birisinin şansını kaybeden ve özür dileyen kullanıcıyla iletişim kurması gerekir. Ancak bu yıl Noel'den önce kargaşaya neden olan şey buydu (ortaya çıkan tek makale bu değil, bu yüzden Best Buy'a özür dilerim, ancak bulduğum ilk şeydi).

İşiniz, tüm seçenekleri artıları ve eksileri ile işletmeye sunmak ve tavsiyelerinize dayanarak karar vermelerine izin vermektir. Satışları maksimuma çıkarmak için ara sıra küçük bir isabet alabiliyorlarsa, o zaman yeterince adil; hızlı bir şekilde çift güncellemeleri kontrol edebileceğiniz ve trafik o kadar düşükse, bu da onların çağrısıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.