Jump to content

presta 8 - produktdetailseite mengenrabatt - undefined


rayban

Recommended Posts

am anfang ist es leer, alles ab zwei artikel, wenn beispiel auf 3 stück klicke und klicke danach wieder runter bleibt die warnung

 

ich habe chatcpt gefragt, der hat das hier rausgespuckt:

 

Typische Ursachen

JavaScript-Fehler im Theme

Viele Themes (auch Classic) oder Overrides verwenden JS, um den Preis dynamisch zu aktualisieren, wenn die Menge geändert wird.

Wenn der Mengenrabatt (price rules / specific prices) greift, wird manchmal ein Feld im JSON-Response vom Server nicht gefunden → Ergebnis: undefined.

Fehlerhafte oder inkompatible Übersetzung

Manchmal ist der Text für die Preisregel leer oder fehlerhaft (z. B. in der Sprachdatei fehlt ein String).

Das führt dazu, dass „undefined“ im Frontend angezeigt wird.

Cache oder Kompilierung

Änderungen oder Fehler im Cache (Smarty, JS, Theme) können alte Daten liefern.

Modulkonflikt

Ein Rabatt- oder Preis-Modul (z. B. „Advanced Quantity Discounts“, „Dynamic Pricing“) überschreibt den Preisblock und produziert fehlerhafte JS-Variablen.

 

🧪 Schritte zur Fehlersuche

Browser-Konsole öffnen

Drücke F12 → „Konsole“.

Ändere die Menge auf 3 Stück.

Schau, ob ein Fehler wie

Uncaught TypeError: Cannot read properties of undefined (reading 'price')

erscheint.
→ Das zeigt dir, welche JS-Datei betroffen ist.

Debug-Modus aktivieren

Im Backoffice: Erweiterte Einstellungen → Leistung → Debug-Modus.

Prüfe, ob im Frontend eine detailliertere Fehlermeldung erscheint.

Cache leeren

Backoffice → Leistung → Cache leeren.

Eventuell auch /var/cache/prod manuell löschen.

Theme prüfen

Teste mit dem Standard-Theme Classic.

Wenn der Fehler dort nicht auftritt → Problem liegt im Custom-Theme.

Overrides prüfen

In /override/classes/Product.php oder ProductController.php schauen, ob Preislogik verändert wurde.

 

⚙️ Häufige Lösung (JS-Patch)

Wenn der Fehler in themes/CLASSIC/assets/js/product.js auftritt (bei der Berechnung nach Mengenänderung), kannst du prüfen, ob eine Zeile wie diese vorkommt:

if (typeof product.price !== 'undefined') { updatePrice(product.price); }

Wenn sie fehlt oder product.price undefiniert ist, hilft ein Fallback:

updatePrice(product.price || 0);

oder das Prüfen, ob das Objekt vollständig existiert, bevor du darauf zugreifst.

 

🩹 Alternative Workaround

Wenn du nur sicherstellen willst, dass der Kunde keine „undefined“-Warnung sieht:

In der JS-Datei oder Template-Datei (product.tpl oder product.js) kannst du den Fehlertext abfangen:

if (isNaN(newPrice) || typeof newPrice === 'undefined') { newPrice = 0; }

→ Das verhindert, dass „undefined“ angezeigt wird, bis du die eigentliche Ursache findest.

 

ich verstehe nur bahnhof

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...