Neu Name der Warengruppe am Artikel anzeigen

rote-locke

Gut bekanntes Mitglied
9. Dezember 2011
305
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
305
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
305
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
305
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
305
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
305
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
305
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
Neu Name der Versandart im Shop anzeigen Allgemeine Fragen zu JTL-Shop 36
Seit der Umstellung zu 1.11.4 meldet Googl Search Händlereinträge >Feld "name" fehlt (in „brand“) JTL-Wawi 1.11 4
Neu Versandart Name aus Lieferschain anstatt aus auftrag einsetzen Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 2
Neu Wo verändere ich die Variable #firma.name# die in Mail-Vorlagen zu finden ist? Allgemeine Fragen zu JTL-Shop 2
Neu Anzeigen der Zahlungsart, die bei der Zahlung gesetzt wird Eigene Übersichten in der JTL-Wawi 10
Gelöst Bekannte Störung: Fehler "Der Inhaltstyp text/html stimmt nicht mit text/xml überein" bei der Labelerstellung JTL-ShippingLabels - Fehler und Bugs 1
Neu Praktiker: Ende der Beta-Phase User helfen Usern - Fragen zu JTL-Wawi 0
Neu JTW Wawi hängt beim Bearbeiten der Druckvorlage für Mahnungen User helfen Usern - Fragen zu JTL-Wawi 0
Lieferadresse entspricht der Rechnungsadresse - vorausgewählt Checkout Einrichtung JTL-Shop5 2
Neu Anzeige Kategorie Pfad in der Übersicht User helfen Usern - Fragen zu JTL-Wawi 1
Neu Reihenfolge der Länder (bei der Versandkostenberechnung) Betrieb / Pflege von JTL-Shop 2
Neu CSS GeoIP MwSt.-Finder 2.7.1 verhindert das Anlegen von Shop-Kundenkonten aus der Wawi Plugins für JTL-Shop 1
Prüfung der UST-ID-Prüfung schlägt fehl. (Innergemeinschaftliche Lieferung) JTL-Wawi 1.8 2
Neu Amazon Abgleich - seit heute 12:26Uhr keine Übernahme der Bestellungen über Worker Amazon-Anbindung - Fehler und Bugs 9
Artikelbezeichnung auf der Rechnung anpassen von "Artikelname" in "Kurzbeschreibung" JTL-Wawi 1.10 4
Neu Fehler 35 XLM entspricht nicht der Konvention Plugins für JTL-Shop 4
Neu Schelle Peisänderung in der Tabellenansicht möglich? User helfen Usern - Fragen zu JTL-Wawi 2
Neu Update der Version 1.2.2.2 auf eine aktuelle Installation von JTL-Wawi 9
Neu Abbruch auf der Plattform löscht nicht mehr den Auftrag Arbeitsabläufe in JTL-Wawi 3
Neu Anzeige / Summe der Aufträge zu den Auftragspaketen in der Rechnung ?! User helfen Usern - Fragen zu JTL-Wawi 8
Neu QR Code Ausdruck der TSE Einrichtung / Updates von JTL-POS 0
Automatische Berechnung der Artikelmenge wenn Verkaufseinheit qm ist JTL-Wawi 1.10 4
Neu Der Auftrag wird nicht ausgeliefert. Der Auftrag befindet sich bereits auf einer anderen Pickliste. User helfen Usern - Fragen zu JTL-Wawi 1
Neu Bankverbindung in der Wawi ändern - Bankwechsel Installation von JTL-Wawi 2
Neu Fehler mit der Kartenzahlung Einrichtung / Updates von JTL-POS 9
Neu Artikel aus Shopware in der Wawi importieren und WMS redy machen Shopware-Connector 0
"Fehler beim Laden der Daten" in Liste Aufträge und Rechnungen JTL-Wawi 1.11 4
Neu Export der Umsätze kummuliert Allgemeine Fragen zu JTL-POS 0
Neu Der-Kurier anbindung an JTL JTL-ShippingLabels - Ideen, Lob und Kritik 3
Neu Fehler bei Artikel Filter in der Wawi JTL-Wawi - Fehler und Bugs 2
Neu Auffüllen der Tabelle Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 3
Neu Google Merchantcenter - Download der Shoppingfeeds nicht mehr möglich Allgemeine Fragen zu JTL-Shop 6
Neu Übertragung an DATEV mit Besonderheit der Kasse (LS-POS) User helfen Usern - Fragen zu JTL-Wawi 0
Neu Einen Artikel in der POS in zwei MwSt. Varianten abbilden Allgemeine Fragen zu JTL-POS 3
Nach Update auf 1.11.6 werden die Preisänderung nicht mehr von der Wawi an Amazon übertragen JTL-Wawi 1.11 0
Wareneingänge werde nicht mehr in der Liste der Korrekturbuchungen angezeigt? JTL-Wawi 1.11 1
Bankverbindung in der xml ZugFerd ändern je nach Zahlungsart JTL-Wawi 1.11 5
Webinar: Strategien der E-Commerce-Leader - wie unterschiedliche Produktrollen Umsatz und Marge steigern Messen, Stammtische und interessante Events 0
Neu Feedbackrunde zur Umsetzung der Verpackungsverordnung (PPWR) in JTL-Wawi Umfragen rund um JTL 1
Neu Wo ist der Worker Status hin? Bei mir ist in Version 1.11.4 nicht mehr zu finden? User helfen Usern - Fragen zu JTL-Wawi 7
Neu Karussell gehen auf der Startseite nach Update auf 5.6.1 nicht mehr Betrieb / Pflege von JTL-Shop 8
Neu Eingabefeld der PayPal Kreditkartenzahlung wird bei eingeloggten Kundenkonto nicht angezeigt JTL-Shop - Fehler und Bugs 1
Neu Text unter der Rechnung User helfen Usern - Fragen zu JTL-Wawi 2
Neu Lieferschein Nummer wird auf der Rechnung wird komisch angezeigt Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 2
Neu Für jeden Artikel Bild1 löschen mit der Ameise JTL-Ameise - Ideen, Lob und Kritik 3
Der ganze Betrieb hat keinen Zugriff auf JTL Wawi 1.11.4 meh JTL-Wawi 1.11 10
WMS Nachdruck Änderung der Versandart nicht mehr möglich JTL-Wawi 1.11 0
Neu angelegte Lieferantenbestellungen nicht sichtbar in der Übersicht Beschaffung JTL-Wawi 1.10 1
Wichtig Änderungen bei der Installation des Shopify Connectors ab 01.01.2026 Shopify-Connector 0
Neu Artikelfilter: CACHING_GROUP_FILTER – wo wird der Cache invalidiert? JTL-Shop - Fehler und Bugs 0

Ähnliche Themen