Templates umschalten funktioniert nicht

Kein System ist vollkommen, findet Ihr Fehler im System der Version 3.x, könnt ihr diese hier gerne Posten. Wir werden auch kurzfistige Lösungen und Fixes hier schreiben.

Moderatoren: Magnus, mmaass, ablass

Templates umschalten funktioniert nicht

Beitragvon Magnus » So 18. Apr 2021, 11:59

Hallo,

hab mir zum Test und Ausprobieren die 3.0 installiert.
Bei mir funktioniert die Template-Umschaltung nicht. Es bleibt immer das Standardtemplate aktiv.

Soweit ich das sehen kann sind da mehrere Fehler/Unschönheiten drin:
- beim Speichern des Templates wird in der Tabelle bei jedem Speichern ein neuer Datensatz in der Tabelle _templates angelegt.
- der Primärschlüssel der Tabelle passt nicht zum ON DUPLICATE KEY UPDATE beim Speichern
- das Feld aktiv steht bei allen Datensätzen auf 1 und wird nicht verändert. Richtig wäre, die bisher für diesen Shop angelegten templates zu löschen oder auf aktiv = 0 zu setzen

- Beim Anzeigen wird nur nach shop_id gefiltert (aktiv wird nicht gefiltert), damit alle Datensätze der Tabelle geholt und absteigend nach shop_id sortiert und per Limit 0,1 das zuletzt eingetragene Template gefunden.
Das Sortieren nach shop_id ist auch der eigentliche Fehler, die Sortierung muss auf id laufen:
In der functions.global.inc.php ist das in GetTemplateDetail die Zeile 97:
aus
Code: Alles auswählen
   $SQLString .= "ORDER BY " . TABLE_TEMPLATES . '.shop_id DESC ';

muss das werden
Code: Alles auswählen
   $SQLString .= "ORDER BY " . TABLE_TEMPLATES . '.id DESC ';

Damit funktionierts dann wieder.

Die Reihenfolge meiner "entdeckten Fehler" zeigt wie irreführend ein nicht genutztes Feld aktiv in einer Tabelle sein kann.
Auch die Tatsache, dass bei jedem Wechsel des Templates ein neuer Datensatz geschrieben wird und ON DUPLICATE KEY UPDATE verwendet wird, führt als erstes zu der Annahme, dass nur ein aktives Template eingetragen ist.
Dass das tatsächlich gar nicht so verwendet wird, darauf kommt man erst, wenn auch das SELECT zur Anzeige des Templates analysiert wird.

Das Eintragen jedes einzelnen Template-Wechsels machte z.B. dann Sinn, wenn auch der Zeitpunkt (Datum und Uhrzeit) eingetragen würde.
Damit ließen sich dann sogar Umsätze der Templates miteinander vergleichen.
Oder man legt mehrere Templates an, markiert zwei als aktiv, wählt beim Besuch des Kunden aus den beiden aktiven ein Template aus (schreibts dem Kunden in ein Cookie), speichert die id des Templates mii der Bestellung und vergleicht dann die Umsätze der templates miteinander. Sind dann sogenannte A/B Tests.

Oh Mann, gäbe so schöne Sachen zu machen :-)

viele Grüße
Magnus
Magnus
 
Beiträge: 1602
Registriert: Mi 21. Feb 2007, 21:10

Re: Templates umschalten funktioniert nicht

Beitragvon ablass » Di 18. Mai 2021, 12:06

Hi Magnus,

ich hab mir das grad nochmal angeschaut und noch einen Fehler im Installations SQL Script für die leere Datenbank gefunden. Dort war noch ein falscher Primärschlüssel für die Tabelle hinterlegt. Ich vermute mal du hast deine Testinstallation mit der leeren Datenbank (ohne Testdaten) angelegt?

Grundsätzlich ist der Primärschlüssel auf shop_id korrekt und auch die Sortierung nach shop_id ist so gewollt. Es soll in dieser Tabelle maximal einen Eintrag pro shop_id geben. Die Sortierung nach shop_id sorgt dabei dafür dass wenn für eine bestimmte shop_id kein Eintrag existiert, der Eintrag für die Standardeinstellung (shop_id 0) genommen wird.

Gruß Alex
ablass
 
Beiträge: 126
Registriert: Mi 22. Jul 2009, 07:56


Zurück zu Bugmeldungen

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast
cron