Neu Kann nicht auf eigene Smartyvariable zugreifen

karabas

Gut bekanntes Mitglied
26. September 2015
177
5
Hallo zusammen.
Ich habe ein Problem mit eigens erstellten Smartyvariablen.
Ich habe in Bootstrap.php in Child-Template eine Funktion erstellt:
Code:
public function boot(): void
    {
        parent::boot();
        try {
            $this->getSmarty()->registerPlugin(Smarty::PLUGIN_FUNCTION, 'getRating', [$this, 'getRating']);
        } catch (\SmartyException $e) {
            throw new \RuntimeException('Problems during smarty instantiation: ' . $e->getMessage());
        }
    }
Code:
    public function getRating($params, $smarty)
    {
        $erg = Shop::Container()->getDB()->queryPrepared(
            'SELECT AVG(tbewertung.nSterne) AS Durchschnitt, COUNT(*) AS Anzahl
            FROM tbewertung
            INNER JOIN tkategorieartikel ON tbewertung.kArtikel = tkategorieartikel.kArtikel
            WHERE tkategorieartikel.kKategorie = :artikelID AND tbewertung.nAktiv = 1',
            ['artikelID' => $params['artikelID']],
            ReturnType::ARRAY_OF_OBJECTS
        );
        $assocArray = get_object_vars($erg[0]);
        Shop::Smarty()->assign('Rating', $assocArray);
        /*$smarty->assign('Rating', $erg);*/
        
        return;
    }
Es wird auch im Debugger ausgegeben:
smarty.jpg
Aber wenn ich in Template darauf zugreifen will, passiert gar nicht.
So greife ich darauf zu: {$Rating.Anzahl}
Kann jemand vielleicht erkennen, was ich falsch mache?
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
528
Halle
Kann jemand vielleicht erkennen, was ich falsch mache?
Zuerst musst du natürlich dafür sorgen, dass deine eigene Smarty-Funktion (getRating) aufgerufen wird, bevor du auf die Variable zugreifst.
Das ist ungünstig:
PHP:
Shop::Smarty()->assign('Rating', $assocArray);
Das wäre richtig:
PHP:
$smarty->assign('Rating', $assocArray);
Das hier
PHP:
$assocArray = get_object_vars($erg[0]);
birgt die Gefahr eines Fatal Error, wenn es keine Bewertungen gibt. Dann ist $erg[0] undefined und get_object_vars erwartet ein Objekt als Parameter.
Das hier
SQL:
WHERE tkategorieartikel.kKategorie = :artikelID
sieht falsch aus. Entweder stimmt das Naming nicht oder du vergleichst tatsächlich die ID einer Kategorie mit der eines Artikels.

Es ist ggfs. extrem performancelastig in einer Template-Funktion SQL auszuführen!
Es ist immer ungünstig eine gesamte Liste (ARRAY_OF_OBJECTS) per SQL abzufragen, wenn man zum Schluß nur ein Element verwenden will. Hier wäre ein ReturnType::SINGLE_OBJECT und ein zusätzliches LIMT 1 im SQL in jedem Fall performanter. Für deinen konkreten Fall wäre sogar ReturnType::SINGLE_ASSOC_ARRAY empfehlenswert, da sparst du zusätzlich das get_object_vars.
 

karabas

Gut bekanntes Mitglied
26. September 2015
177
5
Zuerst musst du natürlich dafür sorgen, dass deine eigene Smarty-Funktion (getRating) aufgerufen wird, bevor du auf die Variable zugreifst.
Das ist ungünstig:
PHP:
Shop::Smarty()->assign('Rating', $assocArray);
Das wäre richtig:
PHP:
$smarty->assign('Rating', $assocArray);
Das hier
PHP:
$assocArray = get_object_vars($erg[0]);
birgt die Gefahr eines Fatal Error, wenn es keine Bewertungen gibt. Dann ist $erg[0] undefined und get_object_vars erwartet ein Objekt als Parameter.
Das hier
SQL:
WHERE tkategorieartikel.kKategorie = :artikelID
sieht falsch aus. Entweder stimmt das Naming nicht oder du vergleichst tatsächlich die ID einer Kategorie mit der eines Artikels.

Es ist ggfs. extrem performancelastig in einer Template-Funktion SQL auszuführen!
Es ist immer ungünstig eine gesamte Liste (ARRAY_OF_OBJECTS) per SQL abzufragen, wenn man zum Schluß nur ein Element verwenden will. Hier wäre ein ReturnType::SINGLE_OBJECT und ein zusätzliches LIMT 1 im SQL in jedem Fall performanter. Für deinen konkreten Fall wäre sogar ReturnType::SINGLE_ASSOC_ARRAY empfehlenswert, da sparst du zusätzlich das get_object_vars.
Vielen Dank für deine kommentare!
Ich müsste wahrscheinlich zuerst mein Vorhaben beschreiben. Ich möchte einfach die Bewertungen von allen Produkten aus aktuelle Kategorie auf Kategorieseite anzeigen lassen. Vielleicht gibt es eine einfache Lösung dazu, ich habe aber nichts dazu gefunden.
Ich habe mir gedacht, ich frage einfach in DB alle Daten ab und stelle die in Tamplate dar. Durch DB-Abfrage:
Code:
WHERE tkategorieartikel.kKategorie = :artikelID
ermittle ich alle Produkte aus aktuelle Kategorie (die Variable "artikelID" ist die ID von aktuelle Kategorie, die ich der Funktion "getRating" mittels "$oNavigationsinfo->getCategory()->kKategorie" in Template übergebe - {getRating artikelID=$oNavigationsinfo->getCategory()->kKategorie}).
Ich habe jetzt deine Vorschläge umgesetzt und ich kann jetzt endlich auf die Daten zugreifen!!! Vielen DANK!
Allerdings werden die Daten in Debugger nicht angezeigt.

So sieht jetzt meine Code aus:
Bootstrap.php:
Code:
public function getRating($params, $smarty)
{
    $erg = Shop::Container()->getDB()->queryPrepared(
        'SELECT AVG(tbewertung.nSterne) AS Durchschnitt, COUNT(*) AS Anzahl
        FROM tbewertung
        INNER JOIN tkategorieartikel ON tbewertung.kArtikel = tkategorieartikel.kArtikel
        WHERE tkategorieartikel.kKategorie = :artikelID AND tbewertung.nAktiv = 1',
        ['artikelID' => $params['artikelID']],
        ReturnType::SINGLE_ASSOC_ARRAY
    );
    $smarty->assign('Rating', $erg);
}
Und in Template rufe ich die Daten so ab:
Code:
{getRating artikelID=$oNavigationsinfo->getCategory()->kKategorie}
<ul>
    <li class="rating-wrapper nav-it dpflex-a-center">
        <strong class="icon-wt">{lang key="catRating" section="custom"}:</strong>
        <a id="jump-to-votes-tab" class="hidden-print">
            {$Rating.Anzahl}
        </a>
    </li>
    <li class="rating-wrapper nav-it dpflex-a-center">
        <strong class="icon-wt">{lang key="catRatingStars" section="custom"}:</strong>
        <a id="jump-to-votes-tab" class="hidden-print">
            {include file='productdetails/rating.tpl' stars=$Rating.Durchschnitt total=$Rating.Anzahl}
        </a>
    </li>
</ul>

Das Ergebnis sieht dann so aus:
bewertungen.jpg
Noch mal vielen Dank!
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
528
Halle
(die Variable "artikelID" ist die ID von aktuelle Kategorie, die ich der Funktion "getRating" mittels "$oNavigationsinfo->getCategory()->kKategorie" in Template übergebe - {getRating artikelID=$oNavigationsinfo->getCategory()->kKategorie}).
Dann tu dir doch den Gefallen und nenne den Parameter auch categoryID oder kategorieID statt artikelID, wenn du darüber eine Kategorie-ID übergibst. Sonst stolpert man doch da jedesmal drüber...
Das Ergebnis deiner Abfrage kann immer noch NULL sein und wird ungeprüft im Template ausgegeben. Das wird zu einem Fehler führen, wenn eine Kategorie KEINE Bewertungen hat.
 

karabas

Gut bekanntes Mitglied
26. September 2015
177
5
Dann tu dir doch den Gefallen und nenne den Parameter auch categoryID oder kategorieID statt artikelID, wenn du darüber eine Kategorie-ID übergibst. Sonst stolpert man doch da jedesmal drüber...
Das Ergebnis deiner Abfrage kann immer noch NULL sein und wird ungeprüft im Template ausgegeben. Das wird zu einem Fehler führen, wenn eine Kategorie KEINE Bewertungen hat.
Da hast du Recht, habe die Variable in "catID" umbenannt.
In Template prüfe ich ob Bewertungsanzahl größer 0 ist und erst dann wird was ausgegeben.

Es ist ggfs. extrem performancelastig in einer Template-Funktion SQL auszuführen!
Wie kann ich den das anders lösen? Für jede Info diesbezüglich bin ich dir sehr dankbar!

Wie gesagt, ich möchte alle Bewertungen von allen Produkten aus aktuelle Kategorie auf Kategorieseite darstellen.
Mit deine Hilfe kann ich schon auf alle Daten in Template zugreifen, bin wahrscheinlich heute damit fertig und poste endgültigen Code hier rein (vielleicht braucht jemand das auch).
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
528
Halle
Wie kann ich den das anders lösen? Für jede Info diesbezüglich bin ich dir sehr dankbar!
Wenn diese Funktion nur einmalig pro Seite aufgerufen wird ist das OK - deshalb habe ich ja ggfs. geschrieben. ;)
Aufgrund der falschen Benennung des Parameters (artikelID) bin ich jedoch davon ausgegangen, dass dies für jeden Artikel auf der Seite einzeln aufgerufen werden soll. Das wäre dann als zentraler Aufruf besser gewesen.
 

karabas

Gut bekanntes Mitglied
26. September 2015
177
5
Vielen Dank für deine Unterstützung!

Wie versprochen hier das ganze Projekt. Ich muss dazu sagen, dass ich den Snackys-Template von eRock-Marketing nutze und die Anpassungen in Child-Template nur für diesen Template gelten:

Das Ergebnis kann man z.B. hier betrachten: https://www.germes.com/bankauflagen
kategoriebewertungen.jpg
PFAD_CHILD_TEMPLATE/Bootstrap.php:
Code:
public function boot(): void
{
    parent::boot();
    try {
        $this->getSmarty()->registerPlugin(Smarty::PLUGIN_FUNCTION, 'hatPreiskonfig', [$this, 'hatPreiskonfig']);
        $this->getSmarty()->registerPlugin(Smarty::PLUGIN_FUNCTION, 'cachePreiskonfig', [$this, 'cachePreiskonfig']);
        /*Eigene Funktion "getRating" registrieren*/
        $this->getSmarty()->registerPlugin(Smarty::PLUGIN_FUNCTION, 'getRating', [$this, 'getRating']);
    } catch (\SmartyException $e) {
        throw new \RuntimeException('Problems during smarty instantiation: ' . $e->getMessage());
    }
}

/*Eigene Funktion "getRating"*/
public function getRating($params, $smarty)
{
    $bewertungen = Shop::Container()->getDB()->queryPrepared(
        'SELECT tbewertung.cName AS Name, tbewertung.cText AS Text, tbewertung.dDatum AS Datum, tbewertung.cTitel AS Titel, tbewertung.nSterne AS Sterne
        FROM tbewertung
        INNER JOIN tkategorieartikel ON tbewertung.kArtikel = tkategorieartikel.kArtikel
        WHERE tkategorieartikel.kKategorie = :catID AND tbewertung.nAktiv = 1
        ORDER BY tbewertung.nSterne DESC',
        ['catID' => $params['catID']],
        ReturnType::ARRAY_OF_ASSOC_ARRAYS
    );
    $smarty->assign('Bewertungen', $bewertungen);
}

PFAD_CHILD_TEMPLATE/productdetails/rating.tpl (habe ich angepasst, damit der Gesamtanzahl von Bewertungen in Klammern hinter den Sternen angezeigt werden):
kategoriebewertungen-2.jpg
Code:
{extends file="{$parent_template_path}/productdetails/rating.tpl"}

{block name='productdetails-rating'}
{if $stars > 0}
{assign var=filename1 value='rate'}
{assign var=filename3 value='.png'}
{if isset($total) && $total > 1}
{lang key='averageProductRating' section='product rating' assign='ratingLabelText'}
{else}
{lang key='productRating' section='product rating' assign='ratingLabelText'}
{/if}
{block name="productdetails-rating-main"}
<div class="rating dpflex-a-center dpflex-wrap" title="{$ratingLabelText}: {$stars}/5">
    {strip}
    <div class="img-ct icon op1">
        <svg><use xlink:href="{$ShopURL}/{if empty($parentTemplateDir)}{$currentTemplateDir}{else}{$parentTemplateDir}{/if}img/icons/icons.svg?v={$nTemplateVersion}#icon-star-full"></use></svg>
    </div>
    <div class="img-ct icon op1">
        <svg><use xlink:href="{$ShopURL}/{if empty($parentTemplateDir)}{$currentTemplateDir}{else}{$parentTemplateDir}{/if}img/icons/icons.svg?v={$nTemplateVersion}#icon-star{if $stars >= 2}-full{elseif $stars > 1}-half{/if}"></use></svg>
    </div>
    <div class="img-ct icon op1">
        <svg><use xlink:href="{$ShopURL}/{if empty($parentTemplateDir)}{$currentTemplateDir}{else}{$parentTemplateDir}{/if}img/icons/icons.svg?v={$nTemplateVersion}#icon-star{if $stars >= 3}-full{elseif $stars > 2}-half{/if}"></use></svg>
    </div>
    <div class="img-ct icon op1">
        <svg><use xlink:href="{$ShopURL}/{if empty($parentTemplateDir)}{$currentTemplateDir}{else}{$parentTemplateDir}{/if}img/icons/icons.svg?v={$nTemplateVersion}#icon-star{if $stars >= 4}-full{elseif $stars > 3}-half{/if}"></use></svg>
    </div>
    <div class="img-ct icon op1">
        <svg><use xlink:href="{$ShopURL}/{if empty($parentTemplateDir)}{$currentTemplateDir}{else}{$parentTemplateDir}{/if}img/icons/icons.svg?v={$nTemplateVersion}#icon-star{if $stars >= 5}-full{elseif $stars > 4}-half{/if}"></use></svg>
    </div>
    {/strip}
    {if $nSeitenTyp === $smarty.const.PAGE_ARTIKEL && !empty($total)}
        <small>({$total})</small>
    {elseif empty($total) && !empty($total2)}
        <small>({$total2})</small>
    {/if}
</div>
{/block}
{/if}
{/block}

Snackys-Template hat eigenen Plugin, wo man eigene Inhalte auf der Seite ausgeben kann. Ich habe engender Code in Zone "after_content" bei Seitentyp "Artikelliste" eingefügt:
Code:
{getRating catID=$oNavigationsinfo->getCategory()->kKategorie}
{assign var="gesamtSterne" value=0}
{assign var="anzahlBewertungen" value=$Bewertungen|count}
{if $anzahlBewertungen > 0}
{foreach from=$Bewertungen item=bewertung}
    {assign var="gesamtSterne" value=$gesamtSterne + $bewertung.Sterne}
{/foreach}
{assign var="durchschnitt" value=$gesamtSterne / $anzahlBewertungen}
{assign var="nSterne_arr" value=[0,0,0,0,0]}
{foreach from=$Bewertungen item=bewertung}
    {assign var="index" value=$bewertung.Sterne-1}
    {$nSterne_arr[4-$index] = $nSterne_arr[4-$index]+1}
{/foreach}

<div class="tab-ct tab-pane panel-default" id="tab-votes">
<h2>Produktbewertungen aus der Kategorie "{$oNavigationsinfo->getCategory()->cName}"</h2>
<br>
    <div class="dpflex row">
        <div id="reviews-overview" class="col-xs-12 col-md-4 col-md-push-4">
            <div class="panel panel-default">
                <div class="panel-heading">
                    <h4 class="panel-title">
                        <div>
                            <span class="h1 m0">{$durchschnitt|round:1}</span>
                            <span class="h2 m0">/5</span>
                        </div>
                        <div class="float-left">{include file='productdetails/rating.tpl' stars=$durchschnitt|round:1 total2=$anzahlBewertungen}</div>
                    </h4>
                </div>
                <div class="panel-body hidden-print">
                {if $anzahlBewertungen > 0}
                    <div id="article_votes">
                    {foreach name=sterne from=$nSterne_arr item=nSterne key=i}
                        {assign var=int1 value=5}
                        {math equation='x - y' x=$int1 y=$i assign='schluessel'}
                        {assign var=int2 value=100}
                        {math equation='(a/b)*c' a=$nSterne b=$anzahlBewertungen c=$int2 assign='percent'}
                        <div class="dpflex-a-center">
                            <div class="text">
                            {if isset($bewertungSterneSelected) && $bewertungSterneSelected === $schluessel}
                                <strong>
                            {/if}
                            {if $nSterne > 0 && (!isset($bewertungSterneSelected) || $bewertungSterneSelected !== $schluessel)}
                                <a>
                                    <strong>
                                        {$schluessel}
                                        {if $i == 4}
                                            {lang key="starSingular" section="product rating"} ({$nSterne})
                                        {else}
                                            {lang key="starPlural" section="product rating"} ({$nSterne})
                                        {/if}
                                    </strong>
                                </a>
                            {else}
                                {$schluessel}
                                {if $i == 4}
                                    {lang key="starSingular" section="product rating"}
                                {else}
                                    {lang key="starPlural" section="product rating"}
                                {/if}
                            {/if}
                            {if isset($bewertungSterneSelected) && $bewertungSterneSelected === $schluessel}
                                </strong>
                            {/if}
                            </div>
                                <div class="progress">
                                    {if $nSterne > 0}
                                        <div class="progress-bar" role="progressbar" aria-valuenow="{$percent|round}" aria-valuemin="0" aria-valuemax="100" style="width: {$percent|round}%;">
                                            {$nSterne}
                                        </div>
                                    {/if}
                            </div>
                        </div>
                    {/foreach}
                    </div>
                {/if}
                </div>
            </div>
        </div>
        <div id="rv-wp" class="col-xs-12 col-md-8 col-md-pull-8">
            {foreach from=$Bewertungen item=bewertung}
                <div class="review panel panel-default mb-sm bewertung">
                    <div class="review-comment">
                        <div class="top5">
                            <div class="title dpflex-j-between dpflex-a-start row">
                                <strong class="col-xs-12">{$bewertung.Titel}</strong>
                                <span class="col-xs-12">{include file='productdetails/rating.tpl' stars=$bewertung.Sterne}</span>
                            </div>
                            {$bewertung.Text|replace:"\r\n":"<br>"}<br>
                            <small>
                                <cite><span><span>{$bewertung.Name}</span></span>.</cite>, {$bewertung.Datum|date_format:"%d.%m.%Y"}
                            </small>
                            <span class="verified-purchase">{lang key="verKauf" section="custom"}</span>
                        </div>
                    </div>
                </div>
            {/foreach}
            <nav aria-label="Page navigation"><ul id="pagination" class="pagination text-center"></ul></nav>
        </div>
    </div>

</div>
<style>
#article_votes .progress {
    flex-grow: 1;
}
#tab-votes .progress, #tab-votes .progress-bar {
    border-radius: 1rem;
    font-size: 0;
    height: 0.5rem;
    background: #ddd;
}
#tab-votes .progress-bar {
    background: #666;
}
#tab-votes .progress, #tab-votes .progress-bar {
    border-radius: 1rem;
    font-size: 0;
    height: 0.5rem;
}
#article_votes .text {
    width: 7rem;
}
/*#reviews-overview {
    min-width: 25rem;
    order: 1;
}
#rv-wp {
    flex-grow: 1;
    margin-right: 4rem;
}*/
.lh-4rem {
    line-height: 4rem;
}
.bewertung {
    display: none;
}
#pagination {
    padding: 0;
}
.pagination li {
    display: inline;
}

.pagination li a {
    width: 40px;
    height: 40px;
    line-height: 40px;
    border-radius: 50%;
    display: inline-block;
    text-align: center;
    margin-right: 5px;
    border: 1px solid #ddd;
}

.pagination li.active a {
    background-color: #900;
    color: white;
    border-color: #900;
}

.pagination li.disabled a {
    color: #ddd;
    cursor: not-allowed;
    background-color: #f5f5f5;
}

/* Styles für Hover-Effekte */
.pagination li a:hover:not(.active) {
    background-color: #ddd;
}
</style>
<script>
$(document).ready(function() {
    var itemsPerPage = 4; // Anzahl der Bewertungen pro Seite
    var totalItems = $('.bewertung').length; // Gesamtzahl der Bewertungen
    var totalPages = Math.ceil(totalItems / itemsPerPage); // Anzahl der Seiten
    var visiblePages = 5; // Anzahl der sichtbaren Paginationslinks

    // Funktion zum Anzeigen der Bewertungen für eine bestimmte Seite
    function showPage(page) {
        $('.bewertung').hide();
        var start = (page - 1) * itemsPerPage;
        var end = start + itemsPerPage;
        $('.bewertung').slice(start, end).show();
    }

    // Funktion zum Erstellen der Pagination-Links
    function renderPagination(currentPage) {
        var startIndex = (currentPage - Math.floor(visiblePages / 2) > 0) ? currentPage - Math.floor(visiblePages / 2) : 1;
        var endIndex = (startIndex + visiblePages <= totalPages) ? startIndex + visiblePages : totalPages + 1;
        if (endIndex - startIndex < visiblePages) {
            startIndex = endIndex - visiblePages > 0 ? endIndex - visiblePages : 1;
        }

        var paginationHtml = '<li class="page-item ' + (currentPage === 1 ? 'disabled' : '') + '"><a class="page-link" href="#" aria-label="Previous" data-page="' + (currentPage - 1) + '"><span aria-hidden="true">&laquo;</span></a></li>';
        
        for (var i = startIndex; i < endIndex; i++) {
            paginationHtml += '<li class="page-item ' + (i === currentPage ? 'active' : '') + '"><a class="page-link" href="#" data-page="' + i + '">' + i + '</a></li>';
        }
        
        paginationHtml += '<li class="page-item ' + (currentPage === totalPages ? 'disabled' : '') + '"><a class="page-link" href="#" aria-label="Next" data-page="' + (currentPage + 1) + '"><span aria-hidden="true">&raquo;</span></a></li>';
        
        $('#pagination').html(paginationHtml);
    }

    // Klick-Event für die Pagination-Links
    $('#pagination').on('click', 'a.page-link', function(e) {
        e.preventDefault();
        var page = $(this).data('page');
        if (page >= 1 && page <= totalPages) {
            renderPagination(page);
            showPage(page);
        }
    });

    // Initialisieren der Pagination und Anzeigen der ersten Seite
    renderPagination(1);
    showPage(1);
});
</script>
{/if}

Bin kein richtiger Programmierer, daher würde ich für jede Art an Verbesserungsvorschläge dankbar.
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Exchange Konto kann nicht eingerichtet werden für E-Mail Versand User helfen Usern - Fragen zu JTL-Wawi 2
Neu Wawi Synchronisation mit JTL Shop nicht möglich! seit 3 Stunden was kann man machen? Onlineshop-Anbindung 1
JTL Wawi App Registrierung kann nicht gelöscht werden JTL-Wawi App 11
Neu DPD: YourInternalID 28: (1) Strasse - Postleitzahl - Ort kann nicht zugeordnet werden. Evtl. liegt ein Schreibfehler in der Adresse vor. JTL-ShippingLabels - Fehler und Bugs 0
Neu Versandschnittstelle DPD Meta - wofür kann man diese nutzen? JTL-ShippingLabels - Ideen, Lob und Kritik 4
Neu kann man JTL POS alleine nutzen für 29 Euro? Einrichtung / Updates von JTL-POS 0
Neu Kann man mit JTL Gebrauchtware verkaufen? User helfen Usern - Fragen zu JTL-Wawi 8
Neu Wo kann ich in JTL das Datum sehen, an dem eine Bestellung als bezahlt bestätigt wurde? User helfen Usern - Fragen zu JTL-Wawi 1
Neu Kann die Verkaufsstatistik auch den aktuellen Bestand angeben? User helfen Usern - Fragen zu JTL-Wawi 1
Neu hood.de - Wie kann ich Dateien (z.B. Sicherheitsdatenblatt) automatisch einbinden? Einrichtung und Installation von JTL-eazyAuction 1
Neu JERA kann keine Conrad-Erlöse aus JTL importieren, JTL-SCX importiert keine Conrad-Rechnungen JTL-ShippingLabels - Fehler und Bugs 3
Neu Wo kann ich mich über JTL Kundencenter beschweren? 20 Minuten Lang einen Bug im Ticket dokumentiert, und am Ende "ein Fehler ist aufgetreten" Smalltalk 3
Shop Apotheke Bestellungen seit Update als „nicht bezahlt“ – Versand blockiert JTL-Wawi 2.0 3
Neu Anbindung JTL <---> Greyhound via API funktioniert nicht sauber User helfen Usern - Fragen zu JTL-Wawi 0
Neu Stücklisten nach Artikelkopie nicht mehr direkt änderbar – Bug oder gewollte Änderung? JTL-Wawi - Fehler und Bugs 1
Export als PDF auch Mailen nicht mehr möglich JTL-Wawi 2.0 11
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 Amazon Lister 2.0 aktualisiert Produkte nicht. Amazon-Lister - Fehler und Bugs 0
Neu Die verwendete Version von JTL-Wawi wird nicht mehr unterstützt. Bitte nutzen Sie die Version 2.0.0.0 User helfen Usern - Fragen zu JTL-Wawi 1
Neu Pickliste wird auf Packtisch und in Wawi unter Picklisten nicht angezeigt. JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 1
Neu Neue Sprache erscheint nicht im Frontend Allgemeine Fragen zu JTL-Shop 2
Rechnungsversand per eMail hin und wieder nicht erfolgreich JTL-Wawi 1.9 0
Neu Planung: Disposition ausgegraut, Produktionstücklisten nicht mehr buchbar (WaWi 1.11.7) JTL-Plan&Produce - Fehler und Bugs 4
GPSR Daten werden nicht korrekt an Amazon übermittelt JTL-Wawi 1.10 0
OTTO Artikel Zuweisung nicht möglich (1.11.6) JTL-Wawi 1.11 0
Neu Beim Versuch Paypal-Plugin mit Paypal-Konto zu verbinden Shop nicht mehr erreichbar Plugins für JTL-Shop 2
Neu Variantenwerte werden nicht im Auftrag angezeigt Shopware-Connector 6
Neu FBA-Streckenlager wird nicht mehr automatisch ausgebucht Einrichtung und Installation von JTL-eazyAuction 0
Unter-Unterkategorie Pfeil wird nicht angezeigt! Einrichtung JTL-Shop5 4
Unter-Unterkategorie Pfeil wird nicht angezeigt! Upgrade JTL-Shop4 auf JTL-Shop5 0
Neu nach Update nicht alle Rechnungen mehr an Amazon Amazon-Anbindung - Fehler und Bugs 0
Neu Googleshopping.zip vom Exporte Manager nicht erstellt Betrieb / Pflege von JTL-Shop 2
Kundennummer wird in E-Mail-Bestellung nicht angezeigt JTL-Wawi 1.10 0
Update von 1.11.6 auf 1.11.7: JTL Worker verbindet nicht mehr mit Datenbank (WaWi schon) JTL-Wawi 1.11 1
Neu DHL Versenden 4.0 - Firmenname nicht auf Label JTL-ShippingLabels - Ideen, Lob und Kritik 7
OTTO: Keine Retourennummer (Hermes HSI) – Versandstatus wird nicht aktualisiert JTL-Wawi 1.11 1
Ameisen-Vorlagen Attribute und Eigene Felder lassen sich nicht speichern JTL-Wawi 1.11 2
Neu Fehler 35 XLM entspricht nicht der Konvention Plugins für JTL-Shop 4
Aktuelles Update 1.11.7: Anmeldedialog merkt sich den letzten User immer noch nicht & falsche Warnung für angeblich fehlendes SQL Server Update JTL-Wawi 1.11 3
Neu Varkombis Import Fehler "#VARKOMBI WIRD NICHT ANGELEGT#" JTL-Ameise - Fehler und Bugs 4
Neu Sprachvariablen Textbausteine mit "." im Namen lassen sich nicht ändern JTL-Shop - Fehler und Bugs 2
Preise lassen sich nicht importieren über Ameise JTL-Wawi 1.10 4
Neu Abbruch auf der Plattform löscht nicht mehr den Auftrag Arbeitsabläufe in JTL-Wawi 3
Neu 12.02.2025 JTL Newsletter nicht Eure Ernst :+) Smalltalk 5
Neu Bestellung per Mail, Kunde registriert sich im Nachgang, Bestellung nicht im Kundenkonto User helfen Usern - Fragen zu JTL-Wawi 2
Anmeldung funktioniert nicht mehr JTL-Wawi 1.11 3
Neu Email in Outlook funktioniert nicht mehr User helfen Usern 9
Neu Neue Box im Footer erstellt, Inhalt wird nicht korrekt angezeigt Betrieb / Pflege von JTL-Shop 1
Neu Workflow funktioniert nicht so wie gewollt :) User helfen Usern - Fragen zu JTL-Wawi 1
Neu JTL Pos Anbindung Button existiert nicht Einrichtung / Updates von JTL-POS 1

Ähnliche Themen