วีโอไอพีใช้เซสชันและคุกกี้เมื่อใด


9

ฉันรู้ว่าวีโอไอพีมีฟังก์ชั่นหลักสำหรับการจัดการเซสชันและคุกกี้:

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

วีโอไอพีตั้งค่าคุกกี้เมื่อใดและเมื่อใดที่ PHP ใช้เซสชัน กรณีการใช้งานคืออะไร?

ฉันบิตสับสนเพราะฉันรู้ว่าร้านวีโอไอพีข้อมูลรถเข็นในและสถานะของผู้ใช้ในMage::getSingleton('checkout/session') Mage::getSingleton('customer/session')แต่เซสชันการชำระเงินดูเหมือนจะไม่ใช่เซสชัน แต่เป็นคุกกี้แทน เพราะเมื่อฉันปิดเบราว์เซอร์และเปิดหน้าขึ้นใหม่รายการนั้นยังคงอยู่ในรถเข็น

นั่นหมายความว่าcheckout/sessionโมเดลตั้งค่าคุกกี้และไม่ใช่$_SESSIONตัวแปรส่วนกลางใช่หรือไม่

คำตอบ:


14

ไม่นั่นหมายความว่าเซสชันจะคงอยู่กับคุกกี้ซึ่งมี ID ของเซสชัน ทางเลือกเดียวใน PHP คือพารามิเตอร์ URL แบบ?SID=d41d8cd98f00b204e9800998ecf8427eที่d41d8cd98f00b204e9800998ecf8427eID เซสชันนั้นอยู่ที่ไหน

ในระยะสั้นข้อมูลเซสชันจะถูกเก็บไว้บนเซิร์ฟเวอร์ แต่เนื่องจาก HTTP ไม่มีสถานะจึงจำเป็นต้องมีคุกกี้หรือพารามิเตอร์ที่มีIDเซสชันเพื่อระบุเซสชันที่ถูกต้อง

Magento ตั้งค่าคุกกี้สองเซสชันadminhtmlสำหรับแบ็กเอนด์และfrontendส่วนหน้า รุ่นเซสชั่นเช่น'checkout/session'การจัดเก็บข้อมูลของพวกเขาใน "namespace" $_SESSION['checkout']คือ

คุกกี้ที่ไม่เกี่ยวข้องกับเซสชั่นที่วีโอไอพีตั้งไว้นั้นเป็นตัวอย่างของstoreคุกกี้ที่จดจำซึ่งเก็บมุมมองที่คุณเรียกดูในปัจจุบัน


0

Mage::getSingleton('checkout/session')บันทึกข้อมูลทั้งหมดที่คุณเลือกในFlatsตัวอย่างตาราง sales_flat_quote sales_flat_quote_addressและอื่น ๆ.

อะไรคือสิ่งนี้: ลูกค้าทุกคนที่เข้ามาครั้งแรกจะได้รับข้อมูลquote_idที่ไม่เหมือนใครและมีความสัมพันธ์กับข้อมูลในquoteตารางอื่น ๆและเป็นแบบถาวรนั่นคือสาเหตุที่คุณเห็นรถเข็นของคุณเสมอ ข้อมูลนี้ทุกครั้งที่คุณเปลี่ยนรถเข็นข้อมูลและบางอย่างในแบบฟอร์มการชำระเงินของคุณก่อนที่คุณจะเสร็จสิ้นการสั่งซื้อ หลังจากคุณเสร็จสิ้นการสั่งซื้อข้อมูลใบเสนอราคาทั้งหมดจะได้รับและบันทึกไว้ในorderตาราง ep sales_order_itemsและข้อมูลใบเสนอราคาของคุณจะได้รับสถานะปิดการใช้งาน สิ่งนี้เกิดขึ้นทุกครั้งที่คุณทำและสั่งซื้อ

Mage::getSingleton('customer/session') มีข้อมูลลูกค้าของคุณเมื่อคุณเข้าสู่ระบบ


ฉันหวังว่านี่จะสมเหตุสมผลสำหรับคุณ สิ่งนี้สามารถอธิบายได้ง่ายขึ้นโดยการพูดคุย วิธีที่วีโอไอพีจัดการกับข้อมูลของเขานั้นซับซ้อนและกระจายได้ดี แต่เมื่อคุณเข้าใจว่าข้อมูลนั้นถูกจัดการอย่างไรและจะจัดการอย่างไร คุณทำมัน Esento cake magento


UPDATE

นี่คือวิธีที่จะได้รับquote_idตามเซสชั่น

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

ดังนั้นสิ่งนี้quote_idถูกบันทึกไว้ในเซสชั่นหรือคุกกี้?
Rouzbeh

ในเซสชัน คุกกี้เป็นกลไกสำหรับการจัดเก็บข้อมูลในเบราว์เซอร์ระยะไกลและติดตามหรือระบุผู้ใช้ที่ส่งคืน
Duarte

นั่นคือสิ่งที่ฉันไม่เข้าใจ เซสชั่นจะหมดอายุเมื่อฉันปิดเบราว์เซอร์ แต่วีโอไอพียังจำquote_idและซื้อสินค้าได้อย่างไรเมื่อเปิดเบราว์เซอร์ใหม่
Rouzbeh

เซสชั่นของคุณเก็บ IP ของคุณและเมื่อคุณกลับมาวีโอไอพีใช้มันเพื่อรับquote_idและเวทมนตร์คุณสามารถเห็นรถเข็นของคุณอีกครั้ง ผู้ใช้ที่เข้าสู่ระบบและไม่ได้เข้าสู่ระบบมีquote_idข้อมูลการอ้างอิงไม่หมดอายุ
Duarte

1
ตกลงตรวจสอบสิ่งนี้ 1) ไม่ได้เข้าสู่ระบบ:คุณเพิ่ม 3 ผลิตภัณฑ์ลงในรถเข็นจากนั้นข้อมูลจะถูกบันทึกไว้sales_flat_quoteหากคุณลบคุกกี้และแคช ข้อมูลของคุณสูญหายและรถเข็นของคุณจะว่างเปล่า ดังนั้นผู้ใช้ที่ไม่ได้เข้าสู่ระบบโทเค็นของพวกเขาจะขึ้นอยู่กับคุกกี้และแคช 2) บันทึก:ผลิตภัณฑ์ 3 รายการเดียวกันในตะกร้าและคุณล้างคุกกี้และแคชของเบราว์เซอร์ คุณได้ออกจากระบบ แต่เมื่อคุณเข้าสู่ 3 ผลิตภัณฑ์ยังมี เวทมนต์ทั้งหมดนี้บริหารงานโดยquote
Duarte
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.