In Bearbeitung [SHOP-1356] Top-Artikel per get_product_list ausspielen

RCE

Aktives Mitglied
31. Januar 2018
99
7
Hallo,
ich möchte gerne eine bestimmte Anzahl von Top-Artikeln auf einer bestimmten Seite anzeigen.

Code:
{get_product_list cTopArtikel=Y nLimit=10000 cAssign="myProducts"}

funktioniert nicht, ich habe das
Code:
$cTopArtikel    = (isset($params['cTopArtikel']))
        ? (int)$params['cTopArtikel']
        : null;
in meine functions.php eingetragen.

Mit Conditions geht es auch nicht, entweder können nur alle Top-Produkte angezeigt werden oder der Iterationswert ist zu niederig um genügend Top-Produkte im Array zu finden.
Code:
{if $oCustomArtikel->cTopArtikel == "Y"}
 

  {if $oCustomArtikel@iteration <= 8}

Wie kann ich also schon beim erstellen der Produktliste nach Top-Artikeln filtern?

Vielen Dank
 

RCE

Aktives Mitglied
31. Januar 2018
99
7
Habe gerade herausgefunden, dass Top-Artikel das Suchspecial Nr. 4 sind (kSuchspecial=4), wenn das so stimmt, könnt Ihr den Beitrag löschen.
 

RCE

Aktives Mitglied
31. Januar 2018
99
7
Ich habe das Ganze jetzt hinbekommen, allerdings ist es in einigen Browsern (IE und Mozilla) so, dass man keine Artikelsortierung vornehmen kann. Bei "nSortierung" kann jeder beliebige Wert stehen, trotzdem ändert sich an der Sortierung nichts.
 

david

Administrator
Mitarbeiter
16. Juli 2010
2.310
170
Hi, die Abhängigkeit zu einem Browser kann ich mir grad nicht wirklich erklären.
Magst dein aktuelles Snippet nochmal posten, damit man das Problem vielleicht nachstellen kann?
 

RCE

Aktives Mitglied
31. Januar 2018
99
7
Das finde ich auch komisch, das sollte ja serverseitig und nicht beim Client sortiert werden.

PHP:
<div class="row">

{assign var=rdmSort value=1|mt_rand:10}

<span class="h-line"><span>Kunden-Lieblinge</span><span class="hidden">{$rdmSort}</span></span>

{get_product_list nSortierung=$rdmSort kSuchspecial=4 nLimit=8 cAssign="myProducts"}

{if $myProducts}

  {foreach name=custom from=$myProducts item=oCustomArtikel}
{assign var=rdmBild value=0|mt_rand:1}

<div class="col-xs-6 col-sm-3">
    <div class="hover-off"></div>
        <a class="image-wrapper" href="{$oCustomArtikel->cURL}">
                    {if isset($oCustomArtikel->Bilder[$rdmBild]->cAltAttribut)}
                        {assign var="alt" value=$oCustomArtikel->Bilder[$rdmBild]->cAltAttribut|strip_tags|truncate:60|escape:"html"}
                    {else}
                        {assign var="alt" value=$oCustomArtikel->cName}
                    {/if}

                    {include file="snippets/image.tpl" src=$oCustomArtikel->Bilder[$rdmBild]->cPfadNormal alt=$alt tplscope=$tplscope}

                    {if isset($Artikel->oSuchspecialBild)}
                        <img class="overlay-img visible-lg" src="{$oCustomArtikel->Bilder[$rdmBild]->cPfadNormal}" alt="{$oCustomArtikel->cName}">
                    {/if}
                </a>
       <div class="start-article-text"><p>{$oCustomArtikel->cMerkmalAssoc_arr.Artikelgruppen}</p> <p><span>ab</span><span class="price"> {$oCustomArtikel->Preise->cVKLocalized[0]}</span></p></div>

     
     
     
     

<div class="hover-on flex-container flex-c flex-justify v-align"> <a class="btn btn-primary" href="{$oCustomArtikel->cURL}">Zum Produkt</a></div></div>


  {/foreach}

{/if}

</div>

Ergänzung: Es wird auch nicht anders sortiert, wenn man statt der Variable "$rdmSort" irgendeine Zahl direkt einfügt. Desweiteren geht das jetzt auch nicht mehr unter Chrome.
 
Zuletzt bearbeitet:

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.856
2.213
Berlin
Firma
css-umsetzung
Hi, die Abhängigkeit zu einem Browser kann ich mir grad nicht wirklich erklären.
Magst dein aktuelles Snippet nochmal posten, damit man das Problem vielleicht nachstellen kann?

Ihr habt etwas geändert wie es scheint, da ich auch mit dieser Funktion arbeite und in meinem Plugin CSS Kategorie PLUS auf das gleiche Problem gestoßen bin.

Ich muss bevor ich diese Funktion nutze extra $_SESSION['Usersortierung'] auf 100 setzen und nach dem ich die Funktion verwendet habe den originalen Wert wiederherstellen, bzw. die Variable überhaupt zur Verfügung stellen.

Code:
                        if(!isset($_SESSION['Usersortierung'])) {
                            $_SESSION['Usersortierung'] = 100;
                        }

                        $Usersortierung = $_SESSION['Usersortierung'];
                        $_SESSION['Usersortierung'] = 100;
                        $obj->Artikel = $this->get_product_list ( $params, $smarty );
                        $_SESSION['Usersortierung'] = $Usersortierung;

Es fällt auf, wenn ich auf der Startseite diese Funktion verwende und ein neuer User kommt, vermutlich weil dieser Session Eintrag dann noch nicht vorhanden ist und erst bei einem Listing erstellt wird.
Was jetzt noch ein Problem ist, dass es nicht möglich ist nach Bestsellern zu sortieren, das weiß ich aber erst seit heute und muss schauen warum das neuerdings auch nicht mehr geht.
 
  • Gefällt mir
Reaktionen: Horus Sirius

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.856
2.213
Berlin
Firma
css-umsetzung
Das von mir geschriebene gehört zu meinem Plugin, das kannst du so nicht einfach übernehmen, das war nur zum veranschaulichen was ich machen muss damit die Sortierung wieder geht.

In deinem Fall wäre das in der functions.php aber ich bin eigentlich dagegen das man in der originalen functions.php arbeitet, daher wäre es besser eine im Child Template zu haben, hast du ein Child Template?

anstelle von {get_product_list nSortierung=$rdmSort kSuchspecial=4 nLimit=8 cAssign="myProducts"}
verwendest du dann {get_myproduct_list nSortierung=$rdmSort kSuchspecial=4 nLimit=8 cAssign="myProducts"}

So würde das in deiner functions.php im Child Template aussehen müssen:
Code:
<?php
include_once $smarty->get_template_vars('parent_template_path').'php/functions.php';
$smarty->registerPlugin('function', 'get_myproduct_list', 'get_myproduct_list');

/**
 * @param array     $params
 * @param JTLSmarty $smarty
 * @return array
 */
function get_myproduct_list($params, &$smarty)
{
    
    if(!isset($_SESSION['Usersortierung'])) {
        $_SESSION['Usersortierung'] = 100;
    }

    $Usersortierung = $_SESSION['Usersortierung'];
    $_SESSION['Usersortierung'] = 100;

  
    $nLimit             = isset($params['nLimit'])
        ? (int)$params['nLimit']
        : 10;
    $nSortierung        = isset($params['nSortierung'])
        ? (int)$params['nSortierung']
        : 0;
    $cAssign            = (isset($params['cAssign']) && strlen($params['cAssign']) > 0)
        ? $params['cAssign']
        : 'oCustomArtikel_arr';
    $cMerkmalFilter_arr = isset($params['cMerkmalFilter'])
        ? setzeMerkmalFilter(explode(';', $params['cMerkmalFilter']))
        : null;
    $cSuchFilter_arr    = isset($params['cSuchFilter'])
        ? setzeSuchFilter(explode(';', $params['cSuchFilter']))
        : null;
    $cTagFilter_arr     = isset($params['cTagFilter'])
        ? setzeTagFilter(explode(';', $params['cTagFilter']))
        : null;
    $cParameter_arr     = [
        'kKategorie'             => isset($params['kKategorie']) ? $params['kKategorie'] : null,
        'kHersteller'            => isset($params['kHersteller']) ? $params['kHersteller'] : null,
        'kArtikel'               => isset($params['kArtikel']) ? $params['kArtikel'] : null,
        'kVariKindArtikel'       => isset($params['kVariKindArtikel']) ? $params['kVariKindArtikel'] : null,
        'kSeite'                 => isset($params['kSeite']) ? $params['kSeite'] : null,
        'kSuchanfrage'           => isset($params['kSuchanfrage']) ? $params['kSuchanfrage'] : null,
        'kMerkmalWert'           => isset($params['kMerkmalWert']) ? $params['kMerkmalWert'] : null,
        'kTag'                   => isset($params['kTag']) ? $params['kTag'] : null,
        'kSuchspecial'           => isset($params['kSuchspecial']) ? $params['kSuchspecial'] : null,
        'kKategorieFilter'       => isset($params['kKategorieFilter']) ? $params['kKategorieFilter'] : null,
        'kHerstellerFilter'      => isset($params['kHerstellerFilter']) ? $params['kHerstellerFilter'] : null,
        'nBewertungSterneFilter' => isset($params['nBewertungSterneFilter']) ? $params['nBewertungSterneFilter'] : null,
        'cPreisspannenFilter'    => isset($params['cPreisspannenFilter']) ? $params['cPreisspannenFilter'] : null,
        'kSuchspecialFilter'     => isset($params['kSuchspecialFilter']) ? $params['kSuchspecialFilter'] : null,
        'nSortierung'            => $nSortierung,
        'MerkmalFilter_arr'      => $cMerkmalFilter_arr,
        'TagFilter_arr'          => $cTagFilter_arr,
        'SuchFilter_arr'         => $cSuchFilter_arr,
        'nArtikelProSeite'       => isset($params['nArtikelProSeite']) ? $params['nArtikelProSeite'] : null,
        'cSuche'                 => isset($params['cSuche']) ? $params['cSuche'] : null,
        'seite'                  => isset($params['seite']) ? $params['seite'] : null
    ];
    if ($cParameter_arr['kArtikel'] !== null) {
        $oArtikel_arr = [];
        if (!is_array($cParameter_arr['kArtikel'])) {
            $cParameter_arr['kArtikel'] = [$cParameter_arr['kArtikel']];
        }
        foreach ($cParameter_arr['kArtikel'] as $kArtikel) {
            $article = new Artikel();
            $article->fuelleArtikel($kArtikel, Artikel::getDefaultOptions());
            $oArtikel_arr[] = $article;
        }
    } else {
        // Filter
        $NaviFilter = Shop::buildNaviFilter($cParameter_arr);
        if (isset($NaviFilter->Suche->cSuche) && strlen($NaviFilter->Suche->cSuche) > 0) {
            $NaviFilter->Suche->cSuche     = StringHandler::filterXSS($NaviFilter->Suche->cSuche, 1);
            $NaviFilter->Suche->kSuchCache = bearbeiteSuchCache($NaviFilter);
        }
        // Artikelattribut
        if (isset($cParameter_arr['cArtAttrib']) && strlen($cParameter_arr['cArtAttrib']) > 0) {
            $NaviFilter->ArtikelAttributFilter->cArtAttrib = $cParameter_arr['cArtAttrib'];
        }
        //Filter SQLs Objekte
        $FilterSQL = bauFilterSQL($NaviFilter);
        // Artikelliste
        $oArtikel_arr = gibArtikelKeys($FilterSQL, $nLimit, $NaviFilter, true, null);
    }
    $_SESSION['Usersortierung'] = $Usersortierung;

    $smarty->assign($cAssign, $oArtikel_arr);


    if (isset($params['bReturn'])) {
        return $oArtikel_arr;
    }
}
}

Das wäre jetzt aber nur ein workaround um den derzeitigen Fehler zu beheben
 
  • Gefällt mir
Reaktionen: RCE

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.856
2.213
Berlin
Firma
css-umsetzung
Sehr gut, Danke für die Info.
Ist nur noch die Frage warum man nicht mehr nach Bestseller sortieren kann, da bin ich noch nicht dazu gekommen, das zu prüfen.
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Plugin-Idee: Überkäufe Lieferantenbestände & Lieferzeiten (API/CSV/XML) in Shop & Wawi Plugins für JTL-Shop 0
Neu Download-Artikel mit dem Download-Modul anbieten JTL SHOP Plugins für JTL-Shop 5
Brandtexte pro Shop verschieden anzeigen lassen JTL-Wawi 1.10 0
Neu Die folgenden Dateien sind nicht identisch mit den Dateien der aktuellen Version von JTL-Shop. Allgemeine Fragen zu JTL-Shop 0
Kundenstammdaten: Wie erkenne ich in der Wawi, ob ein Shop-Kunde ein Kundenkonto angelegt hat? JTL-Wawi 1.9 2
Neu Auswahl im JTL Shop - keine Rechnung beilegen - wie in Wawi einlesen ? User helfen Usern - Fragen zu JTL-Wawi 6
Neu Was bedeutet das genau: Anzahl nötiger Bestellungen (Zahlungsart im Shop Backend) Allgemeine Fragen zu JTL-Shop 1
Neu Schlechte Shop Ladezeit - Google Pagespeed Allgemeine Fragen zu JTL-Shop 11
Neu Kunden mit registrierten Konto im Shop exportieren User helfen Usern - Fragen zu JTL-Wawi 2
Neu Shop wo Kunden selbst einen Artikel designen können? Smalltalk 3
Neu Ausstellungsstücke korrekt abbilden – nicht im Shop verkaufen, aber in Lagerbewertung sichtbar User helfen Usern - Fragen zu JTL-Wawi 5
Neu PromoBar-Portlet für JTL-Shop 5 – Aktionsleiste, Gutschein & Countdown Plugins für JTL-Shop 0
Neu Automatische Datenübernahme aus Wawi-HTML in den Shop verhindern Hallo zusammen, Allgemeine Fragen zu JTL-Shop 3
Neu Paypal Zahlung erfolgreich, Auftrag mit Status Neu im Shop und fehlt in WAWI JTL-Shop - Fehler und Bugs 4
Verbindungsfehler zwischen Wawi 1.10 Shop 5.5.3 JTL-Wawi 1.10 10
Online-Shop-Abgleich Insert Anwendung Konflikt JTL-Wawi 1.10 0
Shop wird mehrfach angezeigt JTL-Wawi 1.10 8
Neu JTL-Shop-Template Technik – optimiert für Performance & Conversion Templates für JTL-Shop 2
Neu GA4-Tracking für JTL-Shop 5 – sauberes E-Commerce & Kategoriepfade Plugins für JTL-Shop 0
Neu Steuereinstellungen - Shop vs. Wawi? User helfen Usern - Fragen zu JTL-Wawi 6
Neu Artikelseiten 500 HTTP Fehler PayPal Plugin 2.1.0 JTL Shop 5.4.0 Plugins für JTL-Shop 4
Neu Wechsel von Shop 5 zu Shopify? Shopify-Connector 24
Neu Shop 5 globale Variable die aus der Wawi gefüllt wird? Allgemeine Fragen zu JTL-Shop 0
Neu TIKTOK Shop-Rabatte auf Artikel Business Jungle 1
Neu Rechnungsnummer an JTL-Shop übertragen Technische Fragen zu Plugins und Templates 0
Neu Änderung der Kundengruppe kein Einfluss im Shop Allgemeine Fragen zu JTL-Shop 2
Neu 500 Error durch Paypal Plugin im B2B Shop Plugins für JTL-Shop 0
Neu Nachdem Shop-Update auf 5.5.3, im Backend: Export-Manager nicht aufrufbar Installation / Updates von JTL-Shop 1
Neu Kundenübernahme Shopware zu JTL Shop - Länderzuweisung User helfen Usern - Fragen zu JTL-Wawi 1
Kunden im JTL Shop sichtbar ? Einrichtung JTL-Shop5 7
Neu CSS-Gutschein-Plugin funktioniert nach Shop-update auf 5.5.3 nicht mehr Plugins für JTL-Shop 1
Neu Agentur Empfehlungen Shop & WaWi Betreuung Allgemeine Fragen zu JTL-Shop 0
Neu Update auf Shop 5.5.3: Immer 500 Internal Server ERror JTL-Shop - Fehler und Bugs 1
Neu Im Shop-Backend (5.5.3) erhalte ich bei einigen Menüpunkten "HTTP 500 Error" Seiten Allgemeine Fragen zu JTL-Shop 2
Neu JTL Shop 5: ein Kundenkonto in der WAWI mit mehreren Konten im Webshop Allgemeine Fragen zu JTL-Shop 7
Neu Shop Logo vergrößern Templates für JTL-Shop 2
Shop Daten werden nicht mehr aktualisiert JTL-Wawi 1.9 2
Neu Alle Wawi Kunden im Shop registrieren User helfen Usern - Fragen zu JTL-Wawi 0
Neu PayPal V 2.0.2 mit Shop 5.5.2: Ablauf der Zahlung Plugins für JTL-Shop 13
wawi an shop anbinden geht nicht JTL-Wawi 1.10 2
Neu Ich habe eben einen neuen Shop erstellt und alle Artikel übertragen, aber leider werden mir bei den Versandarten die Versandklassen nicht angezeigt User helfen Usern - Fragen zu JTL-Wawi 1
Neu Hat jemand Erfahrung mit der Anbindung von TikTok Shop über Shopify? Einrichtung und Installation von JTL-eazyAuction 0
Neu Mehrere Connectoren aktiv – falscher Shopify-Shop wird verbunden Installation von JTL-Wawi 1
Neu ecomdata offline? Shop und JTL Wawi nicht erreichbar User helfen Usern - Fragen zu JTL-Wawi 16
Neu Die Ticket-Shop-Spurnummer kommt an, nachdem die Bestellung bereits storniert wurde JTL-Wawi - Fehler und Bugs 0
Neu JTL Shop 5 Probleme mit Anlegen eines Kundenaccounts Allgemeine Fragen zu JTL-Shop 4
Neu JTL PayPal Checkout 5.3.0 mit Shop 5.5.2 - Artikel nur sichtbar wenn Kunde eingeloggt ist oder Artikel nicht verfügbar ist Plugins für JTL-Shop 6
Bilder komprimieren und an Shop übertragen JTL-Wawi 1.10 15
Neu Session Blocking JTL-Shop 5.5.1 JTL-Shop - Fehler und Bugs 0
Neu Softwarelösung für Visagist inkl. Mini-Shop & Kassa User helfen Usern 22

Ähnliche Themen