Magento ne zaman oturum ve ne zaman çerez kullanıyor?


9

Magento'nun oturum ve çerez işleme için aşağıdaki temel işlevlere sahip olduğunu biliyorum:

Mage::getSingleton('core/cookie');
Mage::getSingleton('core/session');

Magento ne zaman Çerezler ve ne zaman PHP Sessions ayarlar? Kullanım durumları nelerdir?

Biraz kafam karıştı, çünkü Magento'nun sepet bilgilerini Mage::getSingleton('checkout/session')ve kullanıcının durumunu sakladığını biliyorum Mage::getSingleton('customer/session'). Ancak ödeme oturumu bir oturum değil, bir çerez gibi görünüyor. Çünkü tarayıcıyı kapatıp sayfayı tekrar açtığımda öğeler hala alışveriş sepetinde.

Bu, checkout/sessionmodelin global $_SESSIONdeğişkeni değil çerezleri ayarladığı anlamına mı geliyor ?

Yanıtlar:


14

Hayır, bu, oturumların, oturumun kimliğini içeren bir çerezle devam ettiği anlamına gelir. PHP'deki tek alternatif , oturum kimliğinin ?SID=d41d8cd98f00b204e9800998ecf8427eolduğu gibi bir URL parametresidir d41d8cd98f00b204e9800998ecf8427e.

Kısacası, oturum verileri sunucuda depolanır, ancak HTTP durum bilgisi olmadığından, doğru oturumu tanımlamak için oturum kimliğine sahip bir çerez veya parametre gereklidir.

Magento adminhtmlarka uç ve frontendön uç için iki oturum tanımlama bilgisi ayarlar . Oturum modelleri 'checkout/session', verilerini "ad alanında" depolamak gibi $_SESSION['checkout'].

Magento'nun ayarladığı oturumla ilgili olmayan çerezler, örneğin storeşu anda göz atmakta olduğunuz görünümü depolayan hatırlayan çerezdir.


0

Mage::getSingleton('checkout/session')Seçtiğiniz tüm verileri Flatstablo örneğinde kaydeder . sales_flat_quote sales_flat_quote_addressve dahası.

Bu nedir: ilk ziyaretindeki her müşteri quote_id, benzersiz ve diğer quotetablolardaki verilerle bir ilişki alır ve kalıcıdır, bu yüzden Sepetinizi her zaman görebilirsiniz. Bir siparişi bitirmeden önce ödeme formunuzdaki alışveriş sepetini, verileri ve bir şeyi her değiştirdiğinizde bu veriler. Siparişinizi bitirdikten sonra tüm teklif verileri ordertablo ep. sales_order_itemsve teklif verileriniz devre dışı bırakılır. Bu her yaptığınız ve sipariş ettiğinizde olur.

Mage::getSingleton('customer/session') giriş yaptığınızda müşteri verilerinize sahiptir.


Umarım bu sizin için mantıklıdır. Bunu konuşarak açıklamak daha kolay olabilir. Magento'nun verilerini yönetme yolu karmaşık ve gerçekten iyi dağıtılmış ancak verilerin nasıl yönetildiğini ve nasıl manipüle edildiğini anladıktan sonra. Başardın Esasy kek eflatun.


GÜNCELLEME

bu quote_idoturumla elde etmenin yolu

   $session        = Mage::getSingleton('checkout/session');
   $quote_id       = $session->getQuoteId();

Bu quote_idbir oturumda veya çerezde saklanıyor mu?
Rouzbeh

seansta, oturumda, toplantıda. Çerezler, verileri uzak tarayıcıda depolamak ve böylece geri dönen kullanıcıları izlemek veya tanımlamak için bir mekanizmadır.
Duarte

Tam olarak anlamadığım şey bu. Tarayıcıyı kapattığımda oturumun süresi dolar. Ancak Magento quote_id, tarayıcıyı yeniden açarken öğeleri hala hatırlıyor ve bu yüzden arabaya nasıl gidiyor ?
Rouzbeh

Oturumunuz IP'nizi saklar ve geri döndüğünüzde Magento'yu almak için kullanın quote_idve Magic'inizi tekrar Sepetinizi görebilirsiniz. Kayıtlı ve giriş yapmamış kullanıcı bir quote_idTeklif Verisi süresi
Duarte

1
Tamam, kontrol et. 1) Giriş yapılmadı: Sepetinize 3 ürün eklediniz, ardından sales_flat_quoteçerezleri ve önbelleği kaldırırsanız veriler kaydedilir . Verileriniz kaybolur ve Sepetiniz boş olur. Bu yüzden kayıtlı kullanıcılar jetonları çerezlere ve önbelleğe dayanır. 2) Kayıtlı: Sepetinizde aynı 3 ürün Ve Tarayıcı çerezleri ve önbellek temizleyin. çıkış yapıyorsunuz ama hala 3 ürüne giriş yaptığınızda. Bütün bu sihir quote
Duarte
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.