Gesamtpreis (Bestellmenge * Einzelpreis) anzeigen auf Produktdetailseite

Hallo zusammen,

wir würden gerne den Gesamtpreis auf der PDP anzeigen lassen, sprich die voreingestellte Bestellmenge * Einzelpreis. Hier in dem Fall 200 * 0,14€ = 28,00€ anzeigen.

Hätte nun versucht das über Child Theme und Plugin/Twig zu machen allerdings wird mir nichts ausgegeben. Sprich wahrscheinlich Problem mit Vererbung, namespaces, override.

Wir benutzen das Zenit Gravity Pro Theme und davon habe ich auch das ChildTheme erstellt.
Kann es sein dass es damit zusammenhängt dass wir nicht das standard Storefront Theme benutzen?

Hier der Aufbau der Ordnerstruktur unter /html/shopware-sw6-2024/custom/plugins

custom/plugins/ZenitGravityProGesamtpreis/
│
├── composer.json
├── src/
│   ├── ZenitGravityProGesamtpreis.php
│   └── Resources/
│       ├── theme.json
│       └── views/
│           └── storefront/
│               └── page/
│                   └── product-detail/
│                       └── buy-widget.html.twig
│       └── app/
│           └── storefront/
│               └── src/
│                   └── main.js   (aktuell nicht befüllt, weil Testausgabe)

Und hier der Inhalt der wichtigen Dateien:

Composer.json
{
„name“: „zenit/gravity-pro-gesamtpreis“,
„description“: „Child-Theme für ZenitGravityPro, ergänzt Gesamtpreis auf Produktdetailseite“,
„type“: „shopware-platform-plugin“,
„license“: „MIT“,
„version“: „1.0.0“,
„autoload“: {
„psr-4“: {
„ZenitGravityProGesamtpreis\“: „src/“
}
},
„require“: {
„shopware/core“: „",
„shopware/storefront“: "

},
„extra“: {
„shopware-plugin-class“: „ZenitGravityProGesamtpreis\ZenitGravityProGesamtpreis“,
„label“: {
„de-DE“: „ZenitGravityPro Gesamtpreis“,
„en-GB“: „ZenitGravityPro total price“
}
}
}

ZenitGravityProGesamtpreis.php

<?php declare(strict_types=1); namespace ZenitGravityProGesamtpreis; use Shopware\Core\Framework\Plugin; use Shopware\Storefront\Framework\ThemeInterface; class ZenitGravityProGesamtpreis extends Plugin implements ThemeInterface { public function getThemeConfigPath(): string { return 'src/Resources/theme.json'; } }

theme.json
{
„name“: „ZenitGravityProGesamtpreis“,
„author“: „Raphael Schönberger“,
„views“: [
„(at)ZenitGravityProGesamtpreis“,
„(at)zenitPlatformGravity“,
„(at)Storefront“,
„(at)Plugins“
],
„style“: [
„(at)zenitPlatformGravity“
],
„script“: [

],
„asset“: [

],
„configInheritance“: [
„(at)zenitPlatformGravity“
]
}

buy-widget.html.twig

Notiz: (at) durch at-Zeichen ersetzen

Den Gesamtpreis bekommst du nur per JavaScript, da der Wert dynamisch verändert werden kann. Die Twig Datei müsstest du also gar nicht überschreiben.

Danke schonmal für den Hinweis dass es nur per JavaScript funktioniert.
Hast du eventuell auch eine Ahnung warum selbst diese Testausgabe „TEST GESAMTPREIS-OVERRIDE“ nicht angezeigt wird?

Was mir direkt auffällt: Themes überschreibt man mit Plugins. Ein Plugin hat keine theme.json. Ansonsten ist der Code leider nicht wirklich leserlich um schnell darauf antworten zu können.

Ich muss zugeben, dass ich das alles das erste Mal versuche und dadurch viel Lösungsfindung mit KI gemacht habe. Vielleicht muss ich mir erst mal mehr grundlegendes Verständnis aneignen zum Thema Themes und Anpassungen.

1 „Gefällt mir“