Neu Name der Warengruppe am Artikel anzeigen

rote-locke

Gut bekanntes Mitglied
9. Dezember 2011
306
10
Hallo Forum,

ich möchte den Namen der Warengruppe (nicht Kategorie) am Artikel anzeigen lassen - genauer einen Teil daraus, da hier in der WAWI ein Fremdschlüssel hinterlegt ist.
Die Variable für die interne Warengruppen-ID lautet: "kWarengruppe" also bekomme ich die Zahl über {$Artikel->kWarengruppe} aber wie komme ich an den Namen? Wird der überhaupt aus der WAWI zum Shop übertragen?

Frage bezieht sich auf Shop5 NOVA Template

Vielen Dank.
 
Zuletzt bearbeitet:

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.369
347
Halle (Saale)
Die Namen sollten in der Tablle twarengruppe stehen. Du wirst da aber nicht drum herum kommen, selber SQL zu schreiben.

Code:
select * FROM twarengruppe;
+--------------+-----------------+
| kWarengruppe | cName           |
+--------------+-----------------+
|            1 | essbar          |
|            2 | nicht essbar    |
|            3 | Kosmetik        |
|            4 | Sportbekleidung |
|            5 | Sportgeräte     |
|            6 | Elektronik      |
|            7 | Ernährung       |
+--------------+-----------------+
 

rote-locke

Gut bekanntes Mitglied
9. Dezember 2011
306
10
Danke für die Rückmeldung. SQL-Abfrage werde ich irgendwie hinbekommen, war mir nur erst mal unsicher, ob der Name überhaupt zum Shop übertragen wird.
 

rote-locke

Gut bekanntes Mitglied
9. Dezember 2011
306
10
@FMoche
Habe mal den Guide durchgesehen und etwas im Forum gesucht. Sehe ich das so als Ansatz für das NOVA Template richtig:
  • NOVAChild Template besteht bereits, bisher aber nur Erweiterung einiger TPL-Blocks
  • In der Bootsrap.php muss eine Funktion erstellt werden, die auf Basis der übergebenen kWarengruppe per SQL-Abfrage den Namen findet.
  • Diese Funktion dann in der entsprechenden TPL-Datei aufrufen/auslesen?
Gibt es da eine aktuellere/bessere Dokumentation als das hier: https://jtl-devguide.readthedocs.io/projects/jtl-shop/de/latest/shop_templates/index.html
Das scheint sich alles eher auf das EVO Template zu beziehen.
 

rote-locke

Gut bekanntes Mitglied
9. Dezember 2011
306
10
Habe inzwischen unter Tips&Tricks das Beispiel für die getPI-Funktion gefunden und mich daran orientiert.

Was schon mal klappt ist eine Funktion in der Bootstrap.php zu integrieren und dieser den Wert für kWarengruppe mitzugeben. Ich kann also am Artikel z.B. die ID wieder ausgeben.
Leider scheitere ich aber jetzt doch noch am SQL-Aufruf welcher die ID auf den Namen mappen sollte.
So sieht die Bootstrap.php bisher aus, stimmt der Befehl zum Verbindungsaufbau überhaupt so an dieser Stelle?

Code:
<?php declare(strict_types=1);

namespace Template\NOVAChild;
use Smarty;

/**
 * Class Bootstrap
 * @package Template\NOVAChild
 */
class Bootstrap extends \Template\NOVA\Bootstrap
{
    /**
     * @inheritdoc
     */
    public function boot(): void
    {
        parent::boot();
        // whatever you do, always call parent::boot() or delete this method!
        try {
            $this->getSmarty()->registerPlugin(Smarty::PLUGIN_FUNCTION, 'getWarengruppenname', [$this, 'getWarengruppenname']);
        } catch (\SmartyException $e) {
            throw new \RuntimeException('Problems during smarty instantiation: ' . $e->getMessage());
        }
    }

    protected function registerPlugins(): void
    {
        parent::registerPlugins();
        // whatever you do, always call parent::registerPlugins() or delete this method!
       
    }
   
    public function getWarengruppenname($id)
    {
        $nummer = $id['ID'];
        $warengruppe = $GLOBALS['DB']->executeQuery('SELECT cName FROM twarengruppe WHERE kWarengruppe = $nummer');

        return $warengruppe;
    }
}
 

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.369
347
Halle (Saale)
Das hier wäre ein Beispiel für die Bootstrap.php zur Integration ins Childtemplate:
Code:
<?php declare(strict_types=1);

namespace Template\NOVAChild;

use JTL\DB\ReturnType;
use JTL\Smarty\JTLSmarty;

/**
 * Class Bootstrap
 * @package Template\NOVAChild
 */
class Bootstrap extends \Template\NOVA\Bootstrap
{
    /**
     * @inheritdoc
     */
    public function boot(): void
    {
        parent::boot();
        // whatever you do, always call parent::boot() or delete this method!
    }

    protected function registerPlugins(): void
    {
        parent::registerPlugins();
        $this->getSmarty()->registerPlugin(JTLSmarty::PLUGIN_FUNCTION, 'wgname', [$this, 'getWgName']);
    }

    /**
     * @param array $params
     * @param JTLSmarty $smarty
     * @return string|void
     */
    public function getWgName($params, $smarty)
    {
        if (isset($params['id'])) {
            $all = $this->getDB()->query('SELECT * FROM twarengruppe', ReturnType::ARRAY_OF_OBJECTS);
            foreach ($all as $item) {
                if ((int)$params['id'] === (int)$item->kWarengruppe) {
                    if (isset($params['assign'])) {
                        $smarty->assign($params['assign'], $item->cName);
                        break;
                    } else {
                        return $item->cName;
                    }
                }
            }
        }
    }
}

Wenn dein ChildTemplate nicht "NOVAChild" heißt, jeweils alle Vorkommen von "NOVAChild" durch deinen Template-Namen ersetzen.

Das würde jetzt die Smarty-Funktion "wgname" definieren, die du dann im Template so aufrufen kannst:
{wgname id=6} // gibt den Namen direkt aus
{wgname id=3 assign='myVarName'} // gibt nichts aus, sondern assignt den Namen der Gruppe der Smartyvariablen $myVarName
 

rote-locke

Gut bekanntes Mitglied
9. Dezember 2011
306
10
Vielen Dank für das Beispiel. Leider bekomme ich das so nicht zum Laufen. Die Ausgabe ist immer leer, egal ob direkte Ausgabe oder über eine Variable.

ChildTemplate heißt NOVAChild (auch auf Groß-/Kleinschreibung geachtet), es wird auch kein Fehler generiert, sondern das Feld bleibt einfach leer.
Ich verstehe zwar die Funktion selbst, aber der Rest der Datei erschließt sich mir noch nicht so richtigt.

So sieht mein Aufruf für deine Bootstrap.php in der Template-Datei aus:
Code:
<span>{wgname id=($Artikel->kWarengruppe)}</span>

Auch wenn ich dort mit einer Zahl als id teste, ist das Ergebnis ein leerer <span>
 

rote-locke

Gut bekanntes Mitglied
9. Dezember 2011
306
10
Ha! Ja, die gibt es. Aber leider nur eine Handvoll, wo es eigentlich ein paar hundert hätten sein sollten. Es scheint als würde diese Tabelle beim Abgleich nicht vollständig gefüllt. Ist das ein Bug oder so gewollt?

EDIT: Die bestehenden Einträge sind darüber hinaus alle bis auf einen falsch. Hier scheint tatsächlich ein Fehler vorzuliegen. Ich versuche mal eine Komplettabgleich zum Shop zu machen.

EDIT2: Habe nochmal mit einem Eintrag getestet der definitiv in der Tabelle steht, hier funktioniert es erwartungsgemäß einwandfrei - dafür schon mal vielen Dank. Aber die Übertragung der Warengruppen zum Shop scheint definitiv einen Fehler zu haben.
 
Zuletzt bearbeitet:

rote-locke

Gut bekanntes Mitglied
9. Dezember 2011
306
10
Ein Komplettabgleich hat jetzt die Einträge vervollständigt.

Ein normaler Abgleich ändert an der Tabelle aber nichts, egal ob neu hinzugefügte oder geänderte Warengruppe. Ich denke, das sollte geprüft werden. Eine neu hinzugekommene oder geänderte Warengruppe sollte beim Shopabgleich mit übertragen werden.

EDIT: ich habe dazu gerade eine Ticket erstellt.
 
Zuletzt bearbeitet:
Ähnliche Themen
Titel Forum Antworten Datum
Name der Versandarten wird im Auftrag sporadisch nicht mehr angezeigt (2.0.3) JTL-Wawi 2.0 2
Neu Internetmarke 2.0 Beta – Value cannot be null. Parameter name: accessToken JTL-ShippingLabels - Fehler und Bugs 24
Neu DHL 4.0 Fehler "Please Enter Name 1" JTL-ShippingLabels - Fehler und Bugs 3
Neu Wird irgendwo in der Datenbank geloggt welcher WMS-Mobile Benutzer mit dem MDE-Gerät einen Auftrag, bzw. Pickliste gepickt hat? User helfen Usern - Fragen zu JTL-Wawi 1
Neu Gibt es in der WaWi-Datenbank einen Zeitstempel, der anzeigt wann ein Kunde sich in einem bestimmten Shop registriert hat? User helfen Usern - Fragen zu JTL-Wawi 3
Neu Amazon.com - kein Abgleich der Bestände Wawi 1.11.9 Amazon-Anbindung - Fehler und Bugs 0
Neu Wawi 1.11. Amazon Rechnungen (extern) in der Kundenansicht verschwunden ?! User helfen Usern - Fragen zu JTL-Wawi 2
Neu Der wahrscheinlich östlichste JTL Servicepartner: Standortvorteil, faire Preise und vieles mehr Dienstleistung, Jobs und Ähnliches 16
Neu Eigener Export - Kunden individuelle Preise + verfügbarer Bestand + VK netto der Kundengruppe User helfen Usern - Fragen zu JTL-Wawi 6
Neu Rechnungen zeigen Paypal Text an, obwohl er in der Vorlage nicht ausgewählt ist JTL-Wawi 2.0 3
Updatezwang beim öffnen der WAWI JTL-Wawi 1.6 13
Neu Produktionsaufträge tauchen nicht in der Workbench auf JTL-Plan&Produce - Fehler und Bugs 2
Neu Ist es ohne Probleme möglich Cloudflare in der Free Version mit JTL zu nutzen? Allgemeine Fragen zu JTL-Shop 7
Neu Paypal 2.2.1; Fehler "Der Zahlungsanbieter hat eine Anmeldung gefordert" Plugins für JTL-Shop 0
Neu Sortierung der Variationswerte funktioniert nicht mehr Shopify-Connector 5
Neu Wert aus „Eigenes Feld“ eines Artikels im Lieferschein unter der Artikelbezeichnung anzeigen Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Rabatte aus dem JTL-Shop werden in der Wawi nur als Netto-Preis übernommen, Rabatt % gehen verloren Onlineshop-Anbindung 0
Freie Felder in der Artikelliste anzeigen JTL-Wawi 2.0 3
ändern von Servernamen nach Neuinstallation von SQL und Verbindung mit neuem Server in der Wawi JTL-Wawi 2.0 2
Neu Erstellung der Sitemap bei WaWi Abgleich funktioniert nicht Allgemeine Fragen zu JTL-Shop 0
Neu Unterschiedliche Abnahmeintervalle von Variationskombinationen in der Warenkorbmatrix Templates für JTL-Shop 0
Neu Betrag auf der Rechnung nach Rechnungskorrektur User helfen Usern - Fragen zu JTL-Wawi 1
Neu PDF Anhänge in der Bestellbestätigung anhängen missglückt JTL-Shop - Fehler und Bugs 1
Neu Anzahl der URLs in der Sitemap ändern Allgemeine Fragen zu JTL-Shop 3
Neu Ab welcher JTL Wawi Version ist der OnPremise REST API Endpoint POST /v2/returns oder POST /v1/returns für Create Return verfügbar? Schnittstellen Import / Export 0
Neu ⚠️📦 ACHTUNG: Abkündigung der DHL-Schnittstelle zum 15.06.2026 News, Events und Umfragen 0
Neu Telemetrie-Datenerfassung in JTL-Shop 5.7.0: Bitte um Klarstellung der DSGVO-relevanten Aspekte Allgemeine Fragen zu JTL-Shop 5
Frage zur Speicherung der Produktbilder JTL-Wawi 1.11 1
Neu Der Inhalt / Text ist verschwunden – ist das ein Fehler JTL-Shop - Fehler und Bugs 0
Plattformabgleich Shop löschen - Wo ist das in der MySQL DB? JTL-Wawi 2.0 4
Anzeige der Variantenartikel JTL-Wawi 1.11 0
Neu Workflows speichern z.B. Rechnungen nicht mehr seid der 2.01 User helfen Usern - Fragen zu JTL-Wawi 1
Neu Ein Artikel in der Kategorie Allgemeine Fragen zu JTL-Shop 5
Neu Widerrufsbutton: Jeder, der den Button betätigt, kann das Widerrufsformular ausfüllen und absenden - auch ohne Bestellung? Allgemeine Fragen zu JTL-Shop 94
Neu Komma aus Produktbezeichnung soll als Bindestrich in der URL sein Allgemeine Fragen zu JTL-Shop 1
Retouren - Bearbeitung der Adressdaten JTL-Wawi 2.0 4
Update auf Shop 5.5.0 von 5.4.1 ist der Shop nicht mehr erreichbar Upgrade JTL-Shop4 auf JTL-Shop5 4
Neu Lieferadresse in PayPal-Transaktion weicht von der in der Wawi ab Plugins für JTL-Shop 0
Häufiges Aufhängen - vermutlich Probleme mit der Datenbank JTL-Wawi 2.0 13
Neu Wichtige Info: Abkündigung der DHL-Schnittstelle zum 31.05.2026 News, Events und Umfragen 0
Neu Fehler beim Update der Datenbank von 1.11.7 auf 2.0.1 JTL-Wawi - Fehler und Bugs 7
2.0.0: Aufruf der Plattform - Logbücher führt zu Crash der Wawi JTL-Wawi 2.0 0
Neu Falsche Berechnung der Kassen im Kundencenter - Multikasse noch aktiv Smalltalk 0
Probleme bei der Verbindung zur Datenbank JTL-Wawi 2.0 12
Neu Platz der Sidebar nutzen JTL-Shop - Ideen, Lob und Kritik 0
Worker versendet keine E-Mails mehr aus der Workflow Queue JTL-Wawi 2.0 6
Tabelle tfirma in der Shop-Datenbank ist leer Einrichtung JTL-Shop5 3
Neu Seit Update auf JTL-WaWi 2.0.0.0 keine Abholung der Kundendaten bei MediaSaturn-Bestellungen JTL-Wawi - Fehler und Bugs 7

Ähnliche Themen