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
527
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
527
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
527
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 Kann nach Update auf 1.10 meine alten VCS-Lite Amazonrechnungen (noch erstellt mit 1.9.4.5.) nicht mehr drucken? Amazon-Anbindung - Fehler und Bugs 4
Neu Wawi 1.10 weigert sich zu starten und 1.11 kann man nicht downloaden JTL-Wawi - Fehler und Bugs 4
Neu Kunde kann sich im Checkout-Prozess nicht anmelden bzw. bleibt nicht angemeldet. Installation / Updates von JTL-Shop 11
Artikel kann trotz Lagerbestand nicht reserviert werden Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu Kann nicht Updaten... darum geht POS nicht mehr (1.5.19) Installation von JTL-Wawi 22
Neu JTL Wawi 1.10.14.3 / Unbehandelte Ausnahme im WaWi-Error-Log / Die Sammlung wurde geändert. Der Enumerationsvorgang kann möglicherweise .... JTL-Wawi - Fehler und Bugs 1
Neu Kann man das Shop-Guthaben von Kunden per Workflow beeinflussen? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Wo kann ich folgendes Wort übersetzen? Allgemeine Fragen zu JTL-Shop 2
kann man inzwischen aus der Wawi auf kaufland Varianten bilden, wenn ja, ab welcher Version? kaufland.de - Anbindung (SCX) 0
Neu Kann ich irgendwie ausgeben, welches JTL-Konto das Dokument gedruckt hat? Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 11
Kann keinen neuen Export für Google Shopping mehr erstellen Allgemeine Fragen zu JTL-Shop 4
Neu Shop 5.6. pagespeed FCP LCP Optimierung - java script & CSS veraltet bzw. nicht verwendet - Cache Dauer Betrieb / Pflege von JTL-Shop 0
Zugriff auf Artikel und Bestellungen nach Update nicht möglich JTL-Wawi 1.11 0
Neu OnBoard Newsletterversand funktioniert nicht Allgemeine Fragen zu JTL-Shop 0
Amazon Bestellungen werden nicht alle angezeigt Amazon-Anbindung - Fehler und Bugs 3
Kassenanbindung funktioniert nach Update auf 1.11 nicht mehr JTL-Wawi 1.11 2
Neu VCS Lite Amazon -> Rechnungs-Beleg konnte nicht verarbeitet werdenAmazon-Bestellpositionen nicht gefunden Amazon-Anbindung - Fehler und Bugs 0
Neu Amazon VCS lite - 2 Rechnungen wurde nicht übertragen Amazon-Anbindung - Fehler und Bugs 2
Bis alle Fehler behoben sind, nicht installieren. JTL-Wawi 1.11 6
Neu Auftrag automatisch nach Bestellung geht nicht Arbeitsabläufe in JTL-Wawi 2
Neu JTL Shop Brevo Plugin meldet keine Abmeldungen an JTL Shop + Kontakte landen nicht in der Willkommenssequenz Plugins für JTL-Shop 0
Datenbankverbindung Ameise funktioniert seit Update auf 1.11.1.0 nicht mehr JTL-Wawi 1.11 6
Neu AlertService: Wunschzettel -> Hinzufügen/Entfernen wird nicht mehr als Benachrichtigung ausgegeben JTL-Shop - Fehler und Bugs 0
Neu PayPal lädt nicht mehr nach Update auf 5.6 (Child theme Checkout index.tpl Bug) Installation / Updates von JTL-Shop 0
Rechnungsvorlage "nicht verwendet" JTL-Wawi 1.10 2
Globale Textbausteine – Inhalte werden nicht gespeichert (Wawi 1.11.1) JTL-Wawi 1.11 5
WMS Mobiler Server startet nach Update nicht mehr JTL-Wawi 1.11 12
eBay-Merkmal wird nach Ameise-Import nicht übernommen (Wawi 1.10.11.0) JTL-Wawi 1.10 1
Neu HOOK_SMARTY_OUTPUTFILTER wird nicht auf Kategorieseiten ausgeführt? Technische Fragen zu Plugins und Templates 0
Neu Lieferzeit / Verfügbarkeit nicht im google-Feed JTL-Shop - Fehler und Bugs 0
Worker 2.0 - Ebay abgleich - geht nicht mehr? JTL-Wawi 1.10 9
1.11 installiert - Wawi Sharp Version jetzt Standard - Startparameter funktionieren nicht mehr - gelöst JTL-Wawi 1.11 2
Neu Kundenkonto verknüpfen > "Die Anforderung wird nicht unterstützt" Installation von JTL-Wawi 1
Neu API Registrierung funktioniert nicht Schnittstellen Import / Export 3
Neu Globaler Mindestbestand unterschritten im Dashboard aber nicht in den Bestellvorschlägen. JTL-Wawi - Fehler und Bugs 2
Neu Lageroption Stückzahl nicht teilbar - wie an Kindartikel vererben ? User helfen Usern - Fragen zu JTL-Wawi 7
Neu Paypal: Erweiterte Kreditkartenzahlung geht nicht JTL-Shop - Fehler und Bugs 19
Neu Code:21920371] Gefahrstoff-Hinweis ID(s) EUH208 nicht gefunden User helfen Usern - Fragen zu JTL-Wawi 0
Neu Nach Update auf 1.10.14.1 - Zahlungsart wird beim Auftrag erstellen nicht mit übernommen + Sepa Eingänge JTL-Wawi - Fehler und Bugs 0
Neu JTL-Shipping Server nicht Erreichbar JTL-ShippingLabels - Fehler und Bugs 2
Neu TopBarNote wird nicht angezeigt Allgemeine Fragen zu JTL-Shop 1
Neu Bestellvorgang – Land und Postleitzahl werden nicht erkannt und HTTP-Fehler 500 bei der Lieferadresse JTL-Shop - Fehler und Bugs 11
Lieferzeit / Lieferdatum wird im Shop bei Variantenartikeln nicht angezeigt Allgemeine Fragen zu JTL-Shop 0
Steuersätze von EU Käufern greift nicht Einrichtung JTL-Shop5 3
Neu Picklisten-Barcode wird nicht korrekt erkann JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 1
Position sind nicht zu Verschieben JTL-Wawi 1.10 4
Neu (Bank-)Rückzahlungen aus der Wawi heraus nicht mehr möglich JTL-Wawi - Fehler und Bugs 2
Neu Stückzahl lässt sich mit [+] und [-] Buttons nicht ändern JTL-Shop - Fehler und Bugs 6
Neu Lizenzserver & Kundencenter nicht erreichbar JTL-Wawi - Fehler und Bugs 26
Neu Verkäufe aus LS-Pos werden nicht mehr in der Wawi angezeigt Fragen rund um LS-POS 2

Ähnliche Themen