Neu Kann nicht auf eigene Smartyvariable zugreifen

karabas

Gut bekanntes Mitglied
26. September 2015
167
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
524
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
167
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
524
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
167
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
524
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
167
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
JTL Wawi 1.9.4.4 startet gar nicht und kann auch keine Fehlermeldung senden JTL-Wawi 1.9 2
Neu Warum kann ich bei Druckvorlagen die Seitengröße nicht anpassen? Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 6
Beantwortet Doppelt erstellt, kann man nicht löschen =') Smalltalk 0
Update 1.9.4.6 Fehlerhafte Adresse von Amazon kann nicht mehr bearbeitet werden. JTL-Wawi 1.9 3
Listenansicht kann nicht mehr eingestellt werden (außer für Admins) JTL-Wawi 1.9 2
Neu DropShipping - Artikel kann nicht geliefert werden - aus Bestellung entfernen User helfen Usern - Fragen zu JTL-Wawi 0
Neu [Wawi 1.7]Rechnung drucken - Vorlage fehlt / kann nicht geändert werden JTL-Wawi - Fehler und Bugs 0
Neu JTL WAWI RESTAPI Sales Order kann nicht erstellt werden User helfen Usern - Fragen zu JTL-Wawi 0
Neu Wie kann ich über eigene Felder eine Mehrfachauswahl erstellen? User helfen Usern - Fragen zu JTL-Wawi 4
Neu Kann man JTL 1.8 und 1.9 auf einem Client parallel betreiben (ohne hyper V) ? Installation von JTL-Wawi 3
Neu Kann man manuell versendet setzen und Shipping Labels nutzen? JTL-ShippingLabels - Ideen, Lob und Kritik 1
WYSIWYG kann kein HTML mehr einstellen ? Einrichtung JTL-Shop5 0
Neu Wie kann ich verhindern, dass ein Auftrag den verfügbaren Lagerbestand beeinflusst? JTL-Wawi - Ideen, Lob und Kritik 1
Neu Kann ich das alte EVO-Template löschen? Templates für JTL-Shop 2
Neu pf_amazon_lagerbewegung - kann man diese Tabelle leeren User helfen Usern - Fragen zu JTL-Wawi 0
Neu Farbe setzen funktioniert nach dem Updaten anders als früher. Was kann ich dagegen tun? Arbeitsabläufe in JTL-Wawi 0
Gelöst Kann bei Wawi kein neues Zertifikat für den POS Server erstellen Einrichtung / Updates von JTL-POS 5
Neu WMS Mobile picken - wie kann ich Pickreihenfolge umdrehen ? User helfen Usern - Fragen zu JTL-Wawi 2
Neu Artikel an der Kasse beim scannen nur über Artikelnummer, nicht über GTIN identifizieren (Gebrauchtware, GTIN mehrfach in der Wawi) Allgemeine Fragen zu JTL-POS 0
Otto angebunden - Versandstatus wird nicht übertragen Otto.de - Anbindung (SCX) 2
Bilder werden nicht auf WMS mobile angezeigt JTL-Wawi 1.9 0
Versanddaten Export bearbeiten nicht möglich JTL-Wawi 1.9 0
Exportvorlagen - Rechnung können nicht geöffnet werden - Externe Rechnung JTL-Wawi 1.7 1
Neu JTL Partner bewerten ! Bewertungen werde nicht freigeschaltet User helfen Usern 1
Zahlungsmodul mit DKB klappt nicht JTL-Wawi 1.9 21
Neu Amazon Abgleich Fehler: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt Amazon-Anbindung - Fehler und Bugs 18
Neu Google shopping JTL SHOP 4 - "geht" nicht mehr Allgemeine Fragen zu JTL-Shop 1
Neu Abgleich mit JTL Shop läuft nach zahlreichen erfolgreichen Durchläufen nicht mehr weiter JTL-Shop - Fehler und Bugs 11
Neu Unicorn 2.6.0.1 / 2.6.0.2 und Wawi 1.9 - WorkFlows werden nicht ausgeführt Schnittstellen Import / Export 2
Neu Login im Admin Backend nicht möglich. Installation / Updates von JTL-Shop 0
Neu Staffelpreise "ab..." werden nicht mehr in der Artikelübersicht angezeigt JTL-Shop - Fehler und Bugs 0
Neu Lieferstatus wird nicht übertragen Shopware-Connector 0
Workflow DotLiquid: KomplettLieferbarAusLager zeigt FFN Lager an obwohl nicht komplett lieferbar aus diesem Lager JTL-Wawi 1.9 1
Neu 1.9 Gibt es beim Picken die Funktion "Zurückstellen" nicht mehr? Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 2
Neu Hinweis auf JTL-POS Customer Display 'Meldung nicht erneut anzeigen' funktioniert nicht JTL-POS - Fehler und Bugs 0
Neu JTL Wawi: Bestandsanpassung zwischen eBay und eigenem Onlineshop – Warum funktioniert die Mengeinstellung nicht automatisch? User helfen Usern - Fragen zu JTL-Wawi 1
Neu Anlegen einer eigenen Seite ohne Text für externen Link nicht möglich JTL-Shop - Fehler und Bugs 2
Neu Email Vorlage - Mailen bearbeiten funktioniert nicht JTL-Wawi - Fehler und Bugs 0
Neu Box Filter (Merkmale) nicht Verfügbar JTL-Shop - Fehler und Bugs 2
Neu Adminbereich lässt sich nicht aufrufen Installation / Updates von JTL-Shop 8
Neu JTL-ERP-Connector funktioniert ab 20.09.2024 nicht mehr mit Shopify!? Shopify-Connector 2
Neu PayPal Checkout Update auf 1.5.1 nicht möglich Betrieb / Pflege von JTL-Shop 2
UVP-Preise werden nicht übertragen Otto.de - Anbindung (SCX) 2
Steuerverwaltung Steuerklasse angelegt aber nicht wieder löschbar JTL-Wawi 1.9 2
Neu Artikel wird in der der Detailbeschreibung nicht angezeigt Allgemeine Fragen zu JTL-Shop 0
Neu Der Lister listet einfach nicht Amazon-Lister - Fehler und Bugs 2
Neu Warenkorb wird nicht angezeigt Templates für JTL-Shop 0
WaWi Bestellung über Amazon erfüllen lassen - FBA Bestände werden nicht angezeigt Amazon-Anbindung - Ideen, Lob und Kritik 0
Wawi holt Bestellung aus Shop nicht ab. JTL-Wawi 1.9 2
Artikel lassen sich plötzlich nicht mehr öffnen JTL-Wawi 1.9 2

Ähnliche Themen