Wann verwendet Magento Sitzungen und wann Cookies?

9

Ich weiß, dass Magento die folgenden Kernfunktionen für die Handhabung von Sitzungen und Cookies hat:

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

Wann setzt Magento Cookies und wann PHP-Sitzungen? Was sind die Anwendungsfälle?

Ich bin etwas verwirrt, weil ich weiß, dass Magento die Warenkorbinformationen Mage::getSingleton('checkout/session')und den Status des Benutzers darin speichert Mage::getSingleton('customer/session'). Die Checkout-Sitzung scheint jedoch keine Sitzung zu sein, sondern ein Cookie. Denn wenn ich den Browser schließe und die Seite erneut öffne, befinden sich die Artikel noch im Warenkorb.

Bedeutet das, dass das checkout/sessionModell Cookies setzt und nicht die globale $_SESSIONVariable?

Rouzbeh
quelle

Antworten:

14

Nein, das bedeutet, dass Sitzungen mit einem Cookie beibehalten werden, das die ID der Sitzung enthält. Die einzige Alternative in PHP ist ein URL - Parameter wie , ?SID=d41d8cd98f00b204e9800998ecf8427ewo d41d8cd98f00b204e9800998ecf8427eist die Session - ID.

Kurz gesagt, Session - Daten werden auf dem Server gespeichert , aber da HTTP staatenlos ist, ein Cookie oder Parameter mit der Session - ID sind notwendig , um die richtige Sitzung zu identifizieren.

Magento setzt zwei Sitzungscookies adminhtmlfür das Backend und frontendfür das Frontend. Sitzungsmodelle wie 'checkout/session'speichern ihre Daten in einem "Namespace", dh $_SESSION['checkout'].

Sitzungsunabhängige Cookies, die Magento setzt, sind beispielsweise die storeCookies, die sich merken, welche Speicheransicht Sie gerade durchsuchen.

Fabian Schmengler
quelle
0

Mage::getSingleton('checkout/session')Speichert alle Daten, die Sie im FlatsTabellenbeispiel ausgewählt haben . sales_flat_quote sales_flat_quote_addressund mehr.

Was ist das? Jeder Kunde erhält bei seinem ersten Besuch eine quote_ideindeutige und eine Beziehung zu Daten in anderen quoteTabellen. Sie ist dauerhaft, deshalb können Sie Ihren Warenkorb immer sehen. Diese Daten werden jedes Mal angezeigt, wenn Sie den Warenkorb, die Daten und etwas in Ihrem Bestellformular ändern, bevor Sie eine Bestellung abschließen. Nachdem Sie Ihre Bestellung abgeschlossen haben, werden alle Angebotsdaten abgerufen und in den orderTabellen ep gespeichert . sales_order_itemsund Ihre Angebotsdaten erhalten einen Deaktivierungsstatus. Dies geschieht jedes Mal, wenn Sie machen und bestellen.

Mage::getSingleton('customer/session') hat Ihre Kundendaten, wenn Sie angemeldet sind.


Ich hoffe das macht Sinn für dich. Dies kann leichter durch Sprechen erklärt werden. Die Art und Weise, wie Magento seine Daten verwaltet, ist komplex und wirklich gut verteilt. Wenn Sie jedoch erst einmal verstanden haben, wie Daten verwaltet werden und wie Sie sie bearbeiten können. Du hast es geschafft Esasy Kuchen Magento.


AKTUALISIEREN

Dies ist der Weg, um quote_iddurch die Sitzung zu kommen

   $session        = Mage::getSingleton('checkout/session');
   $quote_id       = $session->getQuoteId();
Duarte
quelle
Wird dies also quote_idin einer Sitzung oder einem Cookie gespeichert?
Rouzbeh
in der Sitzung. Cookies sind ein Mechanismus zum Speichern von Daten im Remote-Browser und zum Verfolgen oder Identifizieren von wiederkehrenden Benutzern.
Duarte
Genau das verstehe ich nicht. Die Sitzung läuft ab, wenn ich den Browser schließe. Aber wie erinnert sich Magento quote_idbeim erneuten Öffnen des Browsers noch an die Artikel und damit an den Warenkorb?
Rouzbeh
Ihre Sitzung speichert Ihre IP und wenn Sie zurückkommen, verwenden Sie Magento, um Ihre quote_idund Magic zu erhalten. Sie können Ihren Warenkorb wieder sehen. Protokollierte und nicht protokollierte Benutzer haben ein quote_idAngebot Daten laufen nicht ab
Duarte
1
Ok, überprüfe das. 1) Nicht protokolliert: Sie haben 3 Produkte zum Warenkorb hinzugefügt und Daten werden gespeichert, sales_flat_quotewenn Sie Cookies und den Cache entfernen. Ihre Daten gehen verloren und Ihr Warenkorb ist leer. Nicht angemeldete Benutzer, deren Token auf Cookies und Cache basiert. 2) Protokolliert: Gleiche 3 Produkte im Warenkorb Und Sie löschen Browser-Cookies und Cache. Sie erhalten eine Abmeldung, aber wenn Sie sich anmelden, sind noch 3 Produkte vorhanden. All diese Magie wird verwaltet vonquote
Duarte