Jump to content

Cookie Problem bei Compare-Products


Recommended Posts

Hi,

 

ich habe folgendes Problem:

 

Auf jeder Kategorienseite besteht ja die Möglichkeit mehrere Artikel miteinander zu vergleichen.

Aber leider werden alle Artikel aus sämtlichen Kategorien, die man irgendwann zum Vergleichen ausgewählt hat/hatte gespeichert (im Cookie).

 

Der User wählt also einen Artikel zum Vergleichen aus und es erscheint bereits nach einem Klick die Fehlermeldung "Es können nur 3 Artikel miteinander verglichen werden...". Obwohl in dieser Kategorie noch gar nichts ausgewählt wurde....

Natürlich kann der User auf "Vergleichen" klicken und dort die Artikel händisch entfernen - aber das kann's ja wohl nicht sein.

 

Ich möchte daher den gesetzten Cookie beim onLoad initialisieren bzw. löschen. Ist das über >Tools::getValue('action') == 'remove' möglich ...???

 

Habe im CompareContoller.php auch das gefunden:

if (isset(self::$cookie->id_compare))
 CompareProduct::removeCompareProduct((int)$this->context->cookie->id_compare, (int)Tools::getValue('id_product'));
else
...

 

Der Cookie soll aber komplett initialisiert werden und zweitens müsste die Funktion aus dem Template (z.B. product-list.tpl) aufgerufen werden....

 

Eine Alternative wäre evtl. die Kategorie-ID mit zuspeichern, damit würde jeder Vergleich nur pro Kategorie zählen.

 

Wer weiß Rat? Aktuelles Beispiel auf bibarella.de

 

Danke für eure Hilfe!

Pinback

Edited by Pinback (see edit history)
Link to comment
Share on other sites

Ich habe es jetzt einmal live bei dir ausprobiert. Es ist ein Problem deines Themes. Offensichtlich nicht für PS 1.5.3.1. Wenn du JS ausschaltest, dann kommt kein Fehler, auch kannst du die angeklickten Produkte wieder abwählen. Wenn du JS einschaltest, dann kommt bei mir auch kein Fehler, aber ich kann angeklickte Produkte nicht mehr sofort abwählen. Man muß einige Zeit vertreichen lassen, damit man sie abwählen kann. Könnte aber auch ein Serverproblem sein, welches JS in einem Cache lädt und nicht sofort wieder ablädt..

 

Falls du CCC (Erweiterte Parameter -> Leistung) eingeschaltet hast, dann probiere bitte dieses mal abzuschalten und bei allen anderen Einstellungen es bei "konventionell" zu belassen.

 

Wenn das nichts bringt, dann bitte setze dich mit dem Entwickler deines Themes in Verbindung. Es kann sein, dass der ein altes JS-Skript verwendet.

Link to comment
Share on other sites

Hi cd,

 

danke für den Hinweis! Leider geht ohne JS nichts beim compare.

Vermute die ursprüngliche Idee war/ist, dass man Produkte aus allen Kategorien vergleichen kann - warum auch immer. Daher der Cookie.

Ansonsten hätte man das sauberer mit normaler Parameterübergabe gelöst.

Ich möchte die Vergleichsfunktion aber nur Kategorie spezifisch zulassen.

Also so:

  1. Kategorie(seite) A wird aufgerufen > Cookie wird initialisiert wenn vorhanden
  2. User wählt Produkte zum Vergleich
  3. User klickt auf "Jetzt vergleichen" > Cookie wird gespeichert
  4. Vergleichsseite (products-comparison) zeigt Produkte an
  5. Kategorie(seite) B wird aufgerufen > Cookie wird initialisiert wenn vorhanden
  6. ... usw.

Natürlich ist ein Cookie hier völlig unnötig. Aber alles neu zu proggen traue ich mir noch nicht zu.

 

Die Frage ist jetzt, wie kann ich den Cookie beim ersten Aufruf der jeweiligen Kategorieseite initialisieren, so dass ich ältere Produkte die noch im Cookie gespeichert sind nicht erst händisch aus der products-comparison Page entfernen muss.

Werde den Entwickler (Miled) trotzdem mal kontakten.

 

Gruß

Pinback

Link to comment
Share on other sites

Vermute die ursprüngliche Idee war/ist, dass man Produkte aus allen Kategorien vergleichen kann - warum auch immer. Daher der Cookie.

 

Das ist korrekt. Compare macht nur Sinn, wenn man über den ganzen Shop Artikeln auswählen kann. War früher nicht so, wurde geändert.

 

Ich kann auch ohne eingeschaltetem JS die Haken setzen. Aber die Compare Seite wird natürlich nicht geladen, weil die einem JS-file unterliegt.

 

Ich würde die Cookie-Laufzeit im Front-Office kürzer setzen.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...