Neu Name der Warengruppe am Artikel anzeigen

rote-locke

Gut bekanntes Mitglied
9. Dezember 2011
304
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
304
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
304
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
304
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
304
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
304
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
304
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 Auf die Rechnung soll der normale Artikelname stehen, nicht Amazon Name Amazon-Anbindung - Fehler und Bugs 5
Neu GPSR - > Vorname, Name anzeigen lassen? Allgemeine Fragen zu JTL-Shop 0
Problem beim Anlegen eigener Felder in Kategorieverwaltung – Fehlermeldung „Name nicht eindeutig“ trotz eindeutiger Bezeichnung JTL-Wawi 1.8 3
Neu Kindartikel-Name wird im Shop nicht richtig angezeigt Allgemeine Fragen zu JTL-Shop 8
Artikel Reiter "retail" (unser Name für JTL-POS) fehlt unter Sonderpreis JTL-Wawi 1.10 1
Neu Verkäufe aus LS-Pos werden nicht mehr in der Wawi angezeigt Fragen rund um LS-POS 0
Neu 404 Error DHL beim erstmaligen Aufruf der Tracking URL JTL-Wawi - Fehler und Bugs 0
Neu Fehlermeldung: Der angegebene Wert für "purchasable_offer" ist ungültig. | Fehlercode(s): (4000001) Amazon-Anbindung - Fehler und Bugs 11
Neu Fehlermeldung beim Überarbeiten der Daten unter Artikel Verkaufsplattform LLister Amazon-Lister - Fehler und Bugs 2
Worker Retouren Fehlermeldung "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt." JTL-Wawi 1.9 0
Neu Nach Import der Angebote sind alle versandarten auf kostenlosen Standardversand gesetzt worden Amazon-Lister - Ideen, Lob und Kritik 2
"statischer" Benutzername in der Login Maske JTL-Wawi 1.9 5
Neu Kurzbeschreibung unter Artikelbild in der Artikelliste anzeigen Templates für JTL-Shop 8
Bei der Länderverwaltung fehlt das Bearbeiten-Symbol Einrichtung JTL-Shop5 1
Neu Die folgenden Dateien sind nicht identisch mit den Dateien der aktuellen Version von JTL-Shop. Allgemeine Fragen zu JTL-Shop 0
Kundenstammdaten: Wie erkenne ich in der Wawi, ob ein Shop-Kunde ein Kundenkonto angelegt hat? JTL-Wawi 1.9 2
Neu Ausgabe von Artikeldaten außerhalb der "Position Table" - im Auftrag Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 2
Schriftzug „Invoice“ vor der Rechnungsnummer JTL-Wawi 1.10 7
Neuer Verkaufspreis eines Artikels wird in Angeboten/Aufträgen nicht übernommen, sondern nur der frühere ... JTL-Wawi 1.10 5
Neu Probleme mit der Email über jtl hosting (plesk) User helfen Usern 2
Neu Nach Update von WaWi 1.6 auf WaWi 1.10 kein Abgleich der Artikeldaten mehr möglich WooCommerce-Connector 0
Neu Fehlerhafte Darstellung der Box Stücklistekomponenten, wenn Konfigurationsartikel enthalten JTL-Wawi - Fehler und Bugs 0
Neu Ameise Übertrag der Textbeschreibung in den amz 2.0 Lister JTL-Ameise - Fehler und Bugs 4
Neu Unerklärliches Verhalten bei der Bestimmung der Seitenanzahl im Versandetikett Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Statistik über Zahlungsmoral der Kunden / Zahlungsverzug möglich? JTL-Wawi 1.9 4
Neu Shop 5 globale Variable die aus der Wawi gefüllt wird? Allgemeine Fragen zu JTL-Shop 0
Neu Änderung der Kundengruppe kein Einfluss im Shop Allgemeine Fragen zu JTL-Shop 2
Neu Sortieren und Ausgeben / Speichern / Drucken der externen Belege seit 1.10. Amazon-Anbindung - Fehler und Bugs 0
Neu Alarm SMS/E-Mail wenn der Worker nicht läuft Allgemeines zu den JTL-Connectoren 2
Neu Shopify Basic mit JTL? Wie einrichten? Ist der JTL Guide noch aktuelle wegen PII Einschränkung? Shopify-Connector 2
Neu Gibt es eine Möglichkeit Copilot Studio mit der JTL-Datenbank zu verbinden? User helfen Usern - Fragen zu JTL-Wawi 0
Zahlungsmodul in Kombination mit der Deutschen Bank funktioniert nicht JTL-Wawi 1.10 3
In Bearbeitung Kompakte Kasse gesucht mit der auch Kartenzahlung über 50 € funktioniert? JTL-POS - Fragen zu Hardware 4
Neu JTL Wawi braucht viel RAM und CPU wenn der Prozess lange läuft, ohne dass gearbeitet wird JTL-Wawi - Fehler und Bugs 3
Neu JTL Shop 5: ein Kundenkonto in der WAWI mit mehreren Konten im Webshop Allgemeine Fragen zu JTL-Shop 7
Nach Update auf 1.10.13.2 Probleme mit der POS Kasse JTL-Wawi 1.10 7
Neu Behandlung der Kasseneinnahmen als Händler statt als Endkunde im Wawi JTL-POS - Fehler und Bugs 0
Neu Rechnungsexport und Gutschriftenexport in der Ameise erzeugt doppelte Rechnungen / Gutschriften JTL-Ameise - Fehler und Bugs 1
kann man inzwischen aus der Wawi auf kaufland Varianten bilden, wenn ja, ab welcher Version? kaufland.de - Anbindung (SCX) 0
Neu Übermittlung der DHL Retourenetiketten ins DHL Geschäftsportal zum Druck JTL-ShippingLabels - Ideen, Lob und Kritik 1
Neu Hilfe bei Anpassung der JTL-Rechnung (v1.9.4.6) – EK pro Stück × Menge als Summe je Position + Privateinlage-Hinweis Dienstleistung, Jobs und Ähnliches 1
Neu PayPal V 2.0.2 mit Shop 5.5.2: Ablauf der Zahlung Plugins für JTL-Shop 13
Unterkategorien im Megamenü - Inaktiv in der Desktopversion, aktiv in der Mobilversion Einrichtung JTL-Shop5 1
Neu Hat jemand Erfahrung mit der Anbindung von TikTok Shop über Shopify? Einrichtung und Installation von JTL-eazyAuction 0
Probleme mit wawi, in der leiste wird kein onlineshop angezeigt JTL-Wawi 1.10 8
Neu Zurück/Abbrechen-Button nach Auswahl der Zahlungsart JTL-POS - Ideen, Lob und Kritik 1
Spalte "Verantwortliche Person" in der Artikelübersicht? JTL-Wawi 1.10 4
Neu Änderung des Layouts der Kategorieboxen im Nova Template Templates für JTL-Shop 6
Neu Ist es nicht möglich unter Plattformen - Neukunden sich die Mobilnummer anzeigen zu lassen, mit der die Kunden sich regsitriert haben? User helfen Usern - Fragen zu JTL-Wawi 2
Neu Bestellungen aus der Vergangenheit Shopify-Connector 3

Ähnliche Themen