Magento सत्र का उपयोग कब करता है और कुकीज़ कब?


9

मुझे पता है कि Magento के सत्र और कुकी से निपटने के लिए मुख्य कार्य हैं:

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

Magento कुकीज़ कब सेट करता है और PHP सत्र कब होता है? उपयोग के मामले क्या हैं?

मैं थोड़ा उलझन में हूं, क्योंकि मुझे पता है कि Magento गाड़ी की जानकारी Mage::getSingleton('checkout/session')और उपयोगकर्ता की स्थिति को संग्रहीत करता है Mage::getSingleton('customer/session')। लेकिन चेकआउट सत्र एक सत्र नहीं लगता है, बल्कि एक कुकी है। क्योंकि जब मैं ब्राउज़र को बंद करता हूं और पृष्ठ को फिर से खोलता हूं तो आइटम अभी भी कार्ट में हैं।

इसका मतलब यह है, कि checkout/sessionमॉडल कुकीज़ सेट करता है और वैश्विक $_SESSIONचर नहीं है?

जवाबों:


14

नहीं, इसका मतलब है कि सत्र एक कुकी के साथ बने हुए हैं, जिसमें सत्र की आईडी शामिल है। PHP में एकमात्र विकल्प URL पैरामीटर है, ?SID=d41d8cd98f00b204e9800998ecf8427eजहां d41d8cd98f00b204e9800998ecf8427eसत्र ID है।

शॉर्ट में, सत्र डेटा सर्वर पर संग्रहीत किया जाता है लेकिन चूंकि HTTP स्टेटलेस है, सही सत्र की पहचान करने के लिए सत्र आईडी के साथ एक कुकी या पैरामीटर आवश्यक है।

Magento के दो सत्र कुकीज़ सेट करता है, adminhtmlबैकएंड के frontendलिए और फ्रंटएंड के लिए। सत्र मॉडल जैसे 'checkout/session'अपने डेटा को "नेमस्पेस" में संग्रहीत करते हैं, अर्थात $_SESSION['checkout']

मैजेंटो सेट करने वाले सत्र-असंबंधित कुकीज़, उदाहरण के लिए storeकुकी को याद करते हैं, जो आपके वर्तमान में ब्राउज़ करने वाले स्टोर को देखते हैं।


0

Mage::getSingleton('checkout/session')आपके द्वारा चुने गए सभी डेटा को Flatsटेबल उदाहरण में सहेजता है । sales_flat_quote sales_flat_quote_addressऔर अधिक।

यह क्या है: अपनी पहली यात्रा में हर ग्राहक को प्राप्त होता है quote_idजो अद्वितीय है और अन्य quoteतालिकाओं में डेटा के साथ एक संबंध है और यह लगातार है कि आप हमेशा अपनी कार्ट को क्यों देख सकते हैं। यह डेटा हर बार जब आप ऑर्डर पूरा करने से पहले अपने चेकआउट फॉर्म में कार्ट, डेटा और कुछ बदलते हैं। जब आप अपना ऑर्डर पूरा कर लेते हैं, तो सभी orderतालिका डेटा प्राप्त हो जाते हैं और तालिकाओं में सहेजे जाते हैं । sales_order_itemsऔर आपके उद्धरण डेटा को एक अक्षम स्थिति मिलती है। यह हर बार जब आप बनाते हैं और आदेश देते हैं।

Mage::getSingleton('customer/session') जब आप लॉग इन होते हैं तो आपका ग्राहक डेटा होता है।


मुझे उम्मीद है कि यह आपके लिए समझ में आता है। इससे बात करके समझाने में आसानी हो सकती है। Magento की तुलना में उसका डेटा जटिल और वास्तव में अच्छा वितरित है लेकिन एक बार जब आप समझ जाते हैं कि डेटा कैसे प्रबंधित किया जाता है और इसे कैसे हेरफेर किया जाता है। आपने इसे एसासी केक मैगनेटो किया।


अपडेट करें

यह quote_idसत्र द्वारा प्राप्त करने का तरीका है

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

तो क्या यह quote_idएक सत्र या कुकी में सहेजा गया है?
रौज़बेह

सत्र में। कुकीज रिमोट ब्राउजर में डेटा स्टोर करने का एक तंत्र है और इस तरह से रिटर्न यूजर्स को ट्रैक या पहचान देता है।
डुटर्टे

यह वही है जो मुझे समझ में नहीं आता है। जब मैं ब्राउज़र बंद करता हूं तो सत्र समाप्त हो जाता है। लेकिन quote_idब्राउज़र को फिर से खोलते समय मैगेंटो को अभी भी और इस तरह से कार्ट आइटम कैसे याद हैं ?
रूजबेह

आपका सत्र आपके आईपी को संग्रहीत करता है और जब आप वापस आते हैं तो मैगेंटो अपने quote_idऔर मैजिक को प्राप्त करने के लिए इसका उपयोग करते हैं आप अपनी कार्ट को फिर से देख सकते हैं। लॉग इन किया और लॉग इन नहीं किया गया उपयोगकर्ता का quote_idउद्धरण डेटा समाप्त नहीं होता है
Duarte

1
ठीक है, यह जांचें। 1) लॉग इन नहीं: आपने कार्ट में 3 उत्पाद जोड़े हैं, sales_flat_quoteयदि आप कुकीज़ और कैश निकालते हैं तो डेटा सहेजा जाता है । आपका डेटा खो गया है और आपकी कार्ट खाली हो जाएगी। तो लॉग इन उपयोगकर्ताओं को अपने टोकन कुकीज़ और कैश में आधारित नहीं है। 2) लॉग इन किया: कार्ट में एक ही 3 उत्पाद और आप ब्राउज़र कुकीज़ और कैश को साफ़ करें। आप लॉगआउट हो जाते हैं लेकिन जब आप 3 उत्पादों में लॉग इन करते हैं तब भी। इस सभी जादू का प्रबंधनquote
ड्यूर्ट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.