Neu get_product_list auf Startseite

Leo Versand

Aktives Mitglied
10. Oktober 2016
41
2
Hallo!
Wir haben seit einige Zeit das Problem bei einem unseren Webshop mit get_product_list Funktion.
Wenn ein neuer Kunde auf die Startseite kommt, liefert die Funktion keine Ergebnisse. Sobald man geht in die Kategorie rein und kehrt zur Startseite zurück, dann liefert die Funktion plötzlich die Ergebnisse. Bis man Browser- Cache löscht, dann geht alles von vorne.
Die Funktion ist im Template-Datei (httpdocs/templates/SmileChild/page/index.tpl) implementiert.
PHP:
{if isset($StartseiteBoxen) && $StartseiteBoxen|@count > 0}

    {assign var='moreLink' value=null}
    {assign var='moreTitle' value=null}
    {counter name=srows start=0 print=false assign="sbrows"}
    {foreach name=startboxen from=$StartseiteBoxen item=Box}
        {if isset($Box->Artikel->elemente) && count($Box->Artikel->elemente)>0 && isset($Box->cURL)}
             {counter print=false name="srows"}
            {if $Box->name === 'TopAngebot'}
                {lang key="topOffer" section="global" assign='title'}
                {lang key='showAllTopOffers' section='global' assign='moreTitle'}
            {elseif $Box->name === 'Sonderangebote'}
                {lang key="specialOffer" section="global" assign='title'}
                {lang key='showAllSpecialOffers' section='global' assign='moreTitle'}
            {elseif $Box->name === 'NeuImSortiment'}
                {lang key="newProducts" section="global" assign='title'}
                {lang key='showAllNewProducts' section='global' assign='moreTitle'}
            {elseif $Box->name === 'Bestseller'}
                {lang key="bestsellers" section="global" assign='title'}
                {lang key='showAllBestsellers' section='global' assign='moreTitle'}
            {/if}
            {*assign var='moreLink' value=$Box->cURL*}
            {include file='snippets/product_slider.tpl' productlist=$Box->Artikel->elemente title=$title hideOverlays=true moreLink=$moreLink moreTitle=$moreTitle}
            
          {if isset($smarty.session.Linkgruppen->Parallax) && $sbrows == 1}
                {include file="snippets/parallax_box.tpl" inhalt=$smarty.session.Linkgruppen->Parallax}
            {/if} 
        {/if}
    {/foreach}
    <div class="panel-heading">
        <h2 class="panel-title"><a href="https://***/Growshop">Growshop</a></h2>
            <span></span>
    </div>
    <div class="row panel-body">
        {get_product_list kKategorie=1426 nLimit=8 kSuchspecial=7 nSortierung=rand(1,12) cAssign="myProducts"}
        {include file='snippets/product_slider.tpl' id='slider-top-products' productlist=$myProducts title=$slidertitle}
        {usleep(50000)}
        <br/>
    </div>
    <div class="panel-heading">
        <h2 class="panel-title"><a href="https://***/Head">Headshop</a></h2>
            <span></span>
    </div>
    <div class="row panel-body">
        {get_product_list kKategorie=1427 nLimit=8 kSuchspecial=100 nSortierung=rand(1,12) cAssign="myProducts1"}
        {include file='snippets/product_slider.tpl' id='slider-top-products' productlist=$myProducts1 title=$slidertitle}
        {usleep(50000)}
        <br/>
    </div>
    <div class="panel-heading">
        <h2 class="panel-title"><a href="https://***/Vaporizer_1">Vaporizershop</a></h2>
            <span></span>
    </div>
    <div class="row panel-body">
        {get_product_list kKategorie=1428 nLimit=8 kSuchspecial=100 nSortierung=rand(1,12) cAssign="myProducts2"}
        {include file='snippets/product_slider.tpl' id='slider-top-products' productlist=$myProducts2 title=$slidertitle}
        {usleep(50000)}
        <br/>
    </div>           
{/if}

Diese Funktion ist gleich im anderen Shop implementiert und funktioniert dort einwandfrei.
Das Problem tritt bei alle Browsern auf. Die Screenshots sind im Anhang.

JTL-Support hat vermutet, dass die Kategorien mit dieser Nummern nicht existieren, was offensichtlich falsch ist, weil die Funktion nachdem Kategoriebesuch die Ergebnisse liefert. Und vorgeschlagen unsere Service-Partner zu kontaktieren.
Themeart hat geantwortet, dass es funktionieren müsste, und sie machen kein Support für eigene Anpassungen.

Die beide Shops, wo ich diese Funktion implementiert habe, haben dieselbe Version (4.06.11), dasselbe Template und gleiche Einstellungen. Beide sind bei JTL gehostet und arbeiten unter php 7.2.14. Es gibt keine Fehlermeldungen in der Browser-Konsole, oder in der php-Logdateien.

Wie kann man dieses Problem beheben?

Vielen Dank!

Mit freundlichen Grüßen,
Victor vom Leo Team
 

Anhänge

  • Bild3.png
    Bild3.png
    154,3 KB · Aufrufe: 29
  • Bild2.png
    Bild2.png
    11,6 KB · Aufrufe: 28

Tomas

Sehr aktives Mitglied
8. Januar 2018
330
69
Lübeck
Hallo Victor,

hast du denn mal einen Link zum Shop? Kannst du mir auch per PN schicken. Der leoversand ist es ja scheinbar nicht. Da funktioniert das ja soweit.
Hast du dir mal das Debug PLugin von JTL angeschaut? Da findet man auch oft interessante Informationen, grad was smarty angeht.

VG
Tomas
 

Leo Versand

Aktives Mitglied
10. Oktober 2016
41
2
Hallo Tomas,

der Shop befindet sich unter https://leoversand.de . Ich habe kurz die Funktion von der Startseite rausgeworfen. Jetzt ist sie wieder da. JTL-Debug Plugin liefert nicht so viel Information.

Mit freundlichen Grüßen,
Victor vom Leo Team
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.878
518
Halle
Hallo,
der Zusammenbau des "Navifilter", der in get_productlist verwendet wird, nutzt einige Sachen aus der aktuellen Session. Was jetzt hier beim Erstaufruf genau fehlt, müsste man im Detail untersuchen. Ins Blaue gesprochen würde ich hier ein Problem mit der Standardsprache im Zshg. mit den SEO-Links vermuten. Aber wie gesagt, ohne das konkret auf dem Server zu prüfen ist das Glaskugelleserei. Wenn du ein Ticket beim JTL-Support hast, dann verweise mal auf diesen Thread, ich würde mir das dann mal ansehen.
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.878
518
Halle
Ich kann das bei mir auch nicht nachstellen. Du kannst testweise mal die beiden defines:
PHP:
define('NICEDB_EXCEPTION_BACKTRACE', true);
define('NICEDB_EXCEPTION_ECHO', true);
in die config.JTL- Shop.ini.php aufnehmen, um zu prüfen ob ggfs. Abfrage-Fehler auftreten.
 

Leo Versand

Aktives Mitglied
10. Oktober 2016
41
2
Ja, die Abfrage-Fehler sind da.
SQL:
string(1482) "SELECT tartikel.kArtikel
            FROM tartikel
             JOIN tpreise ON tartikel.kArtikel = tpreise.kArtikel AND tpreise.kKundengruppe = 1
            
            
            JOIN tkategorieartikel ON tartikel.kArtikel = tkategorieartikel.kArtikel
            
            
            
            
            
            
            LEFT JOIN tartikelsichtbarkeit ON tartikel.kArtikel=tartikelsichtbarkeit.kArtikel
                AND tartikelsichtbarkeit.kKundengruppe = 1
            WHERE tartikelsichtbarkeit.kArtikel IS NULL
                AND tartikel.kVaterArtikel = 0
                AND (tartikel.cLagerBeachten != 'Y'
                        OR tartikel.fLagerbestand > 0
                        OR (tartikel.cLagerVariation = 'Y'
                            AND (
                                SELECT MAX(teigenschaftwert.fLagerbestand)
                                FROM teigenschaft
                                INNER JOIN teigenschaftwert ON teigenschaftwert.kEigenschaft = teigenschaft.kEigenschaft
                                WHERE teigenschaft.kArtikel = tartikel.kArtikel
                            ) > 0))
                
                
                
                 AND tkategorieartikel.kKategorie = 1426
                
                
                
                
            GROUP BY tartikel.kArtikel
            
            ORDER BY tbestseller.fAnzahl DESC, tartikel.cName, tartikel.kArtikel
             LIMIT 8"

Exception: string(94) "SQLSTATE[42S22]: Column not found: 1054 Unknown column 'tBestseller.fAnzahl' in 'order clause'"

Code:
array(25) {
  [0]=>
  array(5) {
    ["file"]=>
    string(73) "/var/www/vhosts/leoversand.de/httpdocs/classes/core/class.core.NiceDB.php"
    ["line"]=>
    int(892)
    ["function"]=>
    string(8) "_execute"
    ["class"]=>
    string(6) "NiceDB"
    ["type"]=>
    string(2) "->"
  }
  [1]=>
  array(5) {
    ["file"]=>
    string(73) "/var/www/vhosts/leoversand.de/httpdocs/classes/core/class.core.NiceDB.php"
    ["line"]=>
    int(234)
    ["function"]=>
    string(12) "executeQuery"
    ["class"]=>
    string(6) "NiceDB"
    ["type"]=>
    string(2) "->"
  }
  [2]=>
  array(5) {
    ["file"]=>
    string(62) "/var/www/vhosts/leoversand.de/httpdocs/includes/filter_inc.php"
    ["line"]=>
    int(281)
    ["function"]=>
    string(6) "__call"
    ["class"]=>
    string(6) "NiceDB"
    ["type"]=>
    string(2) "->"
  }
  [3]=>
  array(3) {
    ["file"]=>
    string(72) "/var/www/vhosts/leoversand.de/httpdocs/templates/Smile/php/functions.php"
    ["line"]=>
    int(105)
    ["function"]=>
    string(14) "gibArtikelKeys"
  }
  [4]=>
  array(3) {
    ["file"]=>
    string(123) "/var/www/vhosts/leoversand.de/httpdocs/templates_c/SmileChild/1e024cb224552b18668b0f12dd57eea25fb1f50c_0.file.index.tpl.php"
    ["line"]=>
    int(114)
    ["function"]=>
    string(16) "get_product_list"
  }
  [5]=>
  array(3) {
    ["file"]=>
    string(118) "/var/www/vhosts/leoversand.de/httpdocs/includes/vendor/smarty/smarty/libs/sysplugins/smarty_template_resource_base.php"
    ["line"]=>
    int(128)
    ["function"]=>
    string(31) "content_5c59d03e96d842_71582962"
  }
  [6]=>
  array(5) {
    ["file"]=>
    string(113) "/var/www/vhosts/leoversand.de/httpdocs/includes/vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php"
    ["line"]=>
    int(172)
    ["function"]=>
    string(23) "getRenderedTemplateCode"
    ["class"]=>
    string(29) "Smarty_Template_Resource_Base"
    ["type"]=>
    string(2) "->"
  }
  [7]=>
  array(5) {
    ["file"]=>
    string(113) "/var/www/vhosts/leoversand.de/httpdocs/includes/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php"
    ["line"]=>
    int(206)
    ["function"]=>
    string(6) "render"
    ["class"]=>
    string(24) "Smarty_Template_Compiled"
    ["type"]=>
    string(2) "->"
  }
  [8]=>
  array(5) {
    ["file"]=>
    string(75) "/var/www/vhosts/leoversand.de/httpdocs/classes/class.JTL-Shop.JTLSmarty.php"
    ["line"]=>
    int(873)
    ["function"]=>
    string(6) "render"
    ["class"]=>
    string(24) "Smarty_Internal_Template"
    ["type"]=>
    string(2) "->"
  }
  [9]=>
  array(5) {
    ["file"]=>
    string(113) "/var/www/vhosts/leoversand.de/httpdocs/includes/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php"
    ["line"]=>
    int(372)
    ["function"]=>
    string(6) "render"
    ["class"]=>
    string(11) "jtlTplClass"
    ["type"]=>
    string(2) "->"
  }
  [10]=>
  array(5) {
    ["file"]=>
    string(75) "/var/www/vhosts/leoversand.de/httpdocs/classes/class.JTL-Shop.JTLSmarty.php"
    ["line"]=>
    int(858)
    ["function"]=>
    string(18) "_subTemplateRender"
    ["class"]=>
    string(24) "Smarty_Internal_Template"
    ["type"]=>
    string(2) "->"
  }
  [11]=>
  array(5) {
    ["file"]=>
    string(123) "/var/www/vhosts/leoversand.de/httpdocs/templates_c/SmileChild/46f2abff7af081884910ea588cdf0aa2ac150b6d_0.file.index.tpl.php"
    ["line"]=>
    int(139)
    ["function"]=>
    string(18) "_subTemplateRender"
    ["class"]=>
    string(11) "jtlTplClass"
    ["type"]=>
    string(2) "->"
  }
  [12]=>
  array(5) {
    ["file"]=>
    string(124) "/var/www/vhosts/leoversand.de/httpdocs/includes/vendor/smarty/smarty/libs/sysplugins/smarty_internal_runtime_inheritance.php"
    ["line"]=>
    int(238)
    ["function"]=>
    string(9) "callBlock"
    ["class"]=>
    string(38) "Block_7138097985c59d03e7b0d04_07344516"
    ["type"]=>
    string(2) "->"
  }
  [13]=>
  array(5) {
    ["file"]=>
    string(124) "/var/www/vhosts/leoversand.de/httpdocs/includes/vendor/smarty/smarty/libs/sysplugins/smarty_internal_runtime_inheritance.php"
    ["line"]=>
    int(170)
    ["function"]=>
    string(9) "callBlock"
    ["class"]=>
    string(35) "Smarty_Internal_Runtime_Inheritance"
    ["type"]=>
    string(2) "->"
  }
  [14]=>
  array(5) {
    ["file"]=>
    string(124) "/var/www/vhosts/leoversand.de/httpdocs/includes/vendor/smarty/smarty/libs/sysplugins/smarty_internal_runtime_inheritance.php"
    ["line"]=>
    int(144)
    ["function"]=>
    string(7) "process"
    ["class"]=>
    string(35) "Smarty_Internal_Runtime_Inheritance"
    ["type"]=>
    string(2) "->"
  }
  [15]=>
  array(5) {
    ["file"]=>
    string(123) "/var/www/vhosts/leoversand.de/httpdocs/templates_c/SmileChild/46f2abff7af081884910ea588cdf0aa2ac150b6d_0.file.index.tpl.php"
    ["line"]=>
    int(51)
    ["function"]=>
    string(13) "instanceBlock"
    ["class"]=>
    string(35) "Smarty_Internal_Runtime_Inheritance"
    ["type"]=>
    string(2) "->"
  }
  [16]=>
  array(3) {
    ["file"]=>
    string(118) "/var/www/vhosts/leoversand.de/httpdocs/includes/vendor/smarty/smarty/libs/sysplugins/smarty_template_resource_base.php"
    ["line"]=>
    int(128)
    ["function"]=>
    string(31) "content_5c59d03e7c2ab7_63767313"
  }
  [17]=>
  array(5) {
    ["file"]=>
    string(113) "/var/www/vhosts/leoversand.de/httpdocs/includes/vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php"
    ["line"]=>
    int(172)
    ["function"]=>
    string(23) "getRenderedTemplateCode"
    ["class"]=>
    string(29) "Smarty_Template_Resource_Base"
    ["type"]=>
    string(2) "->"
  }
  [18]=>
  array(5) {
    ["file"]=>
    string(113) "/var/www/vhosts/leoversand.de/httpdocs/includes/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php"
    ["line"]=>
    int(206)
    ["function"]=>
    string(6) "render"
    ["class"]=>
    string(24) "Smarty_Template_Compiled"
    ["type"]=>
    string(2) "->"
  }
  [19]=>
  array(5) {
    ["file"]=>
    string(75) "/var/www/vhosts/leoversand.de/httpdocs/classes/class.JTL-Shop.JTLSmarty.php"
    ["line"]=>
    int(873)
    ["function"]=>
    string(6) "render"
    ["class"]=>
    string(24) "Smarty_Internal_Template"
    ["type"]=>
    string(2) "->"
  }
  [20]=>
  array(5) {
    ["file"]=>
    string(117) "/var/www/vhosts/leoversand.de/httpdocs/includes/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php"
    ["line"]=>
    int(216)
    ["function"]=>
    string(6) "render"
    ["class"]=>
    string(11) "jtlTplClass"
    ["type"]=>
    string(2) "->"
  }
  [21]=>
  array(5) {
    ["file"]=>
    string(117) "/var/www/vhosts/leoversand.de/httpdocs/includes/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php"
    ["line"]=>
    int(122)
    ["function"]=>
    string(8) "_execute"
    ["class"]=>
    string(28) "Smarty_Internal_TemplateBase"
    ["type"]=>
    string(2) "->"
  }
  [22]=>
  array(5) {
    ["file"]=>
    string(75) "/var/www/vhosts/leoversand.de/httpdocs/classes/class.JTL-Shop.JTLSmarty.php"
    ["line"]=>
    int(682)
    ["function"]=>
    string(7) "display"
    ["class"]=>
    string(28) "Smarty_Internal_TemplateBase"
    ["type"]=>
    string(2) "->"
  }
  [23]=>
  array(5) {
    ["file"]=>
    string(48) "/var/www/vhosts/leoversand.de/httpdocs/seite.php"
    ["line"]=>
    int(215)
    ["function"]=>
    string(7) "display"
    ["class"]=>
    string(9) "JTLSmarty"
    ["type"]=>
    string(2) "->"
  }
  [24]=>
  array(4) {
    ["file"]=>
    string(48) "/var/www/vhosts/leoversand.de/httpdocs/index.php"
    ["line"]=>
    int(89)
    ["args"]=>
    array(1) {
      [0]=>
      string(48) "/var/www/vhosts/leoversand.de/httpdocs/seite.php"
    }
    ["function"]=>
    string(12) "require_once"
  }
}
 

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.359
340
Halle (Saale)
Versuch bitte einmal, an get_product_keys explizit den Parameter nSortierung zu übergeben. Z.B. mit dem Wert 1 (entspricht Sortierung nach Name aufsteigend).