Neu Name der Warengruppe am Artikel anzeigen

rote-locke

Gut bekanntes Mitglied
9. Dezember 2011
267
2
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.065
188
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
267
2
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
267
2
@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
267
2
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.065
188
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
267
2
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
267
2
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
267
2
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 Nova Child Theme: Atikel Name in downloads.tpl abfragen? Technische Fragen zu Plugins und Templates 4
Neu Idee: Kundennachricht direkt aus der Auftragsübersicht JTL-Wawi - Ideen, Lob und Kritik 0
Neu Der Artikel besitzt nicht die korrekte Anzahl von Variationen Amazon-Anbindung - Fehler und Bugs 0
Neu IDEE: Artikel Etiketten Drucken aus der Wawi in Einkauf - Bestellungen JTL-Shop - Ideen, Lob und Kritik 1
Verwiesen an Support [1.6.31.1] JTL-Memory wieder in der Taskleiste JTL-Workflows - Fehler und Bugs 1
In Bearbeitung Belege auf der TSE Swissbit ansehen Allgemeine Fragen zu JTL-POS 1
Neu Automatisch setzten der Zahlung bei Rechnungskorrektur / Retoure Arbeitsabläufe in JTL-Wawi 0
Beantwortet Was ist die Funktion der OSS -Verfahren Checkbox ? Steuerverwaltung User helfen Usern - Fragen zu JTL-Wawi 2
In Bearbeitung Telecash Belege werden nicht an der Kasse gedruckt JTL-POS - Fehler und Bugs 2
Neu Servicedesk stürzt sofort ab - die insert-anweisung steht in konflikt mit der foreign key-einschränkung... JTL-Wawi - Fehler und Bugs 2
Neu Anzahl der Pakete auf Lieferschein User helfen Usern - Fragen zu JTL-Wawi 0
Neu Plugin zum Ergänzen der ShopID PrestaShop-Connector 1
In Bearbeitung JTl-Ameise Formatierung der Dezimaltrennzeichen JTL-Ameise - Fehler und Bugs 1
Neu Mobile App startet nicht mit der 1.5.50.0 JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 0
Neu Ø EK laut WE der letzten 12 Monate neu berechnen User helfen Usern - Fragen zu JTL-Wawi 0
Neu Umlagerung Menge der Artikel sofort angeben JTL-Wawi - Ideen, Lob und Kritik 1
Neu Ebay Titel/Beschreibung mit der Ameise eBay-Anbindung - Ideen, Lob und Kritik 0
Neu Amazon carriercode wird nicht übertragen + Email Adresse fehlt bei DHL nach übertrag der Daten des Kunden. JTL-ShippingLabels - Fehler und Bugs 0
Neu Steuerklassen der Produkte falsch übergeben PrestaShop-Connector 8
Neu Fehler in der Konfiguration bei Artikel in Warenkorb Allgemeine Fragen zu JTL-Shop 0
Neu Kein Bestandsabgleich mehr nach löschung der "Angebotsvorlagen" in dem Reiter "Marktplätze" eBay-Anbindung - Fehler und Bugs 1
Neu FBA Bestellungen fehlen in der Wawi seit 1 Woche Amazon-Anbindung - Fehler und Bugs 8
Neu Keine Daten in der Druckvorschau User helfen Usern - Fragen zu JTL-Wawi 3
Neu Mehrfachauswahl Merkmale, Or-Verknüpfung der Merkmal-Werte JTL-Shop - Fehler und Bugs 2
Neu Abfrage, ob der Warenkorb aus einem oder aus mehreren Lägern versendet werden muss Betrieb / Pflege von JTL-Shop 0
Neu Pflege der Versandkosten im Shop umständlich Betrieb / Pflege von JTL-Shop 0
Neu JTL-Wawi 1.6 Eigene Felder eines Auftrags in der Ausgabe nutzen User helfen Usern - Fragen zu JTL-Wawi 1
Neu 1.6 - JTL_GetSalesOFFERCustomField fehlt in der Auswahl JTL-Wawi - Ideen, Lob und Kritik 0
Neu Warnung vor der aktuellen Version 1.5.49.1 User helfen Usern 2
Neu Track & Trace Problem in der WaWi - keine gültige Lizenz User helfen Usern - Fragen zu JTL-Wawi 1
Neu Automatischer Reload der Seite, wenn Consent-Manager aktiv ist Allgemeine Fragen zu JTL-Shop 1
Neu Beim Upload von Kinderartikel werden die Preise und Variationsbilder der Kinder nicht übernommen Modified eCommerce-Connector 2
Neu Probleme beim Anpassen der Facebook Export CSV Plugins für JTL-Shop 2
Neu Falsche Artikelbilder im JTL Shop in Verbindung mit der WaWi Allgemeine Fragen zu JTL-Shop 0
Neu Probleme mit den Einstellungen die der Connector vornimmt (Preise) WooCommerce-Connector 1
Nach Upload der Shopdaten Admin passwort falsch Upgrade JTL-Shop4 auf JTL-Shop5 2
Neu Falsche Artikelbilder im JTL Shop in Verbindung mit der WaWi User helfen Usern - Fragen zu JTL-Wawi 3
Neu JTL 5 Shop -> Slick Slider auf der Startseite im Nova Template verändern Templates für JTL-Shop 2
Neu Sichtbarkeiten und Status der Marktplätze in "!Eigene Übersichten" Individuelle Listenansichten in der JTL-Wawi 0
Gelöst Überprüfung der Exportvorlagen schlägt fehl layout/index.tpl JTL-Shop - Fehler und Bugs 1
Neu Problem bei der Installation siehe Anhang Installation von JTL-Wawi 2
Neu JTL-Shop 5.1.1 - Import der Postleitzahlen funktioniert nicht, was muß man tun? JTL-Shop - Fehler und Bugs 1
Beantwortet Nicht zusammenfassbare Aufträge mit der selben Adresse farblich kennzeichen JTL-Workflows - Ideen, Lob und Kritik 14
Neu Hintergrundfarbe der linken Sidebar (Kategorien) ändern Templates für JTL-Shop 1
Neu JTL Shop 5 Preisfarbe und individuelle Anpassung von der "footnote-reference" Allgemeine Fragen zu JTL-Shop 0
Neu Schriftgröße der Artikelnamen im Listenansicht Allgemeine Fragen zu JTL-Shop 3
Beantwortet Funktion der Prioritäten für Lagerplätze Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 3
Neu Der Remoteserver hat einen Fehler zurückgegeben: (500) Interner Serverfehler. WooCommerce-Connector 0
Neu Layout der Artikelübersicht-Ansicht speichern User helfen Usern - Fragen zu JTL-Wawi 0
Neu Der Produktschlüssel ist nicht gültig. Bitte prüfen Sie Ihre EKP. Code: JTL_SHIPPING_PRODUCT_CODE_INVALID ID: c6e1a38e JTL-ShippingLabels - Fehler und Bugs 0

Ähnliche Themen