Dieses Problem kam zuerst ins Bewusstsein, da die Bestellhistorie-Seite (*/sales/order/history /) im Frontend nur eine kurze Nachricht enthielt: Sie haben keine Bestellungen aufgegeben.Magento-Kunde/Sitzung funktioniert nicht
Nach einiger Fehlersuche, stellt sich das Problem mit dieser Funktion liegt out:
Mage::getSingleton('customer/session')
Es spielt keine Sitzung Entität zurückgeben aktuellen Informationen des Kunden mit Ausnahme der Website-ID enthalten, weshalb die Reihenfolge Sammlung eine leere zurück Ergebnis nach dem Filtern auf die Kundennummer.
Es gibt tatsächlich einen Beitrag auf Stack Overflow, der ein ähnliches Problem diskutiert: Customer session is different in different parts of a Magento website . Aber es hat keine gute Erklärung gegeben.
Und was verwirrend ist, dass mit meinem Fall funktioniert die Funktion in einigen Teilen gut, aber nicht in den anderen. Zum Beispiel habe ich in die Katalogproduktlistenvorlage
eingefügt, und es zeigt die Kundennummer nach der Anmeldung an. Aber die gleiche Zeile gibt Null in der Bestellhistorie-Seite zurück.
ich diese Codes in app/code/core/Mage/Kunde/Modell/Session.php
public function getCustomer()
{
...
$customer = Mage::getModel('customer/customer')
->setWebsiteId(Mage::app()->getStore()->getWebsiteId());
if ($this->getId()) {
$customer->load($this->getId());
}
$this->setCustomer($customer);
return $this->_customer;
}
Nach dem Einstellen der Website-ID befindet, lädt es den Kunden Einheit je nach $ this-> getId ().
Warum ist das ID-Attribut der Kundensitzungseinheit nicht immer gültig? Kann jemand sein Wissen bitte teilen? Danke vielmals.
Ist die Seite mit der Bestellungshistorie HTTPS, während die Katalogseite HTTP? Es ist möglich, dass die Sitzung zwischen den beiden nicht ordnungsgemäß durchgeführt wird. – nachito
Nein, sie verwenden alle HTTP. Die Anfragen an diese Seiten sind identisch mit den angeforderten URLs und Referrers. – vicch
In der Tat auf/sales/order/history/page wird der Kunde nicht wie eingeloggt "behandelt". Es wird auch nicht der Link "Abmelden" angezeigt. Was könnte das Problem sein, wenn der Kunde auf einigen Seiten als nicht eingeloggt betrachtet wird? – vicch