Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Artikelsortierung product_listening

    Bonner

    • Fördermitglied
    • Beiträge: 850
    • Geschlecht:
    Artikelsortierung product_listening
    am: 28. November 2018, 20:09:06
    Hallo,

    Der Produktsort in den einzelnen Kategorien erfolgt standardmäßig aplphabetisch. So weit..so gut.
    Nun möchte ich die Sortierung dahingehend ändern, dass zuerst die lieferbaren Artikel (also Stückzahl >0)
    alphabetisch sortiert werden und danach die ausverkauften Artikel (Stückzahl=0).
    Hintergrund: Kunden sollen die Möglichkeit haben, sich für derzeit nicht mehr vorrätige Artikel vormerken zu lassen.
    Derartiges habe ich inzwischen in einigen Shops gesehen, jedoch auf einer anderen Plattform.

    Hat jemand so etwas schon in modified realisiert oder kann mir Anhaltspunkte für einen Einstieg geben?
    Ach ja, das Notwendige noch: modified 2.04 mit modified responsive template.

    Vorab wie immer Danke für hilfreiche Tips!

    Bonner

    Linkback: https://www.modified-shop.org/forum/index.php?topic=39761.0

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 14.006
    • Geschlecht:
    Re: Artikelsortierung product_listening
    Antwort #1 am: 01. Dezember 2018, 14:43:05
    Du könntest in den Kategorien im Backend die "Artikel-Sortierung:" so einstellen: "Auf Lager", "aufsteigend".
    Dann würden erst die Artikel die nicht auf Lager sind (= products_quantity 0) angezeigt, danach allerdings aufsteigend nach der Anzehl der Lagermenge.

    Wenn du weiterhin als zweites nach Artikelname sortieren möchtest generiere ein PHP-File und lege es in /includes/extra/default/listing_sql/ mit folgendem Inhalt:
    Code: PHP  [Auswählen]
    <?php
    /******************************************
    * file: custom_products_sort.php
    * use: sort products in categories
    *
    * (c) Bonner 12-2018
    ******************************************/


    $sorting = ' ORDER BY IF(p.products_quantity = 0, 1, 2), '.$sorting_data['products_sorting'].' '.$sorting_data['products_sorting2'].' ';

    $listing_sql = "SELECT ".$select."
                             "
    .ADD_SELECT_DEFAULT."
                             p.products_id,
                             p.products_ean,
                             p.products_quantity,
                             p.products_shippingtime,
                             p.products_model,
                             p.products_image,
                             p.products_price,
                             p.products_discount_allowed,
                             p.products_weight,
                             p.products_tax_class_id,
                             p.manufacturers_id,
                             p.products_fsk18,
                             p.products_vpe,
                             p.products_vpe_status,
                             p.products_vpe_value,
                             pd.products_name,
                             pd.products_description,
                             pd.products_short_description,
                             IFNULL(s.specials_new_products_price, p.products_price) AS price
                        FROM "
    .TABLE_PRODUCTS." p
                        JOIN "
    .TABLE_PRODUCTS_DESCRIPTION." pd
                             ON p.products_id = pd.products_id
                                AND pd.language_id = '"
    .(int) $_SESSION['languages_id']."'
                                AND trim(pd.products_name) != ''
                             "
    .$from."
                   LEFT JOIN "
    .TABLE_SPECIALS." s
                             ON p.products_id = s.products_id
                                "
    .SPECIALS_CONDITIONS_S."
                       WHERE p.products_status = '1'
                             "
    .PRODUCTS_CONDITIONS_P."
                             "
    .$where."
                    GROUP BY p.products_id
                             "
    .((isset($_SESSION['filter_sorting'])) ? $_SESSION['filter_sorting'] : $sorting);
    ?>

    Damit überschreibst du die entsprechenden Variablen in /includes/modules/default.php bevor sie weiter verarbeitet werden.
    Teste mal.

    Falls der DB-Cache eingeschaltet ist, diesen nach Implementation leeren (Erw.Konfiguration => Cache Optionen => "Cache leeren").

    Gruß,
    noRiddle

    Bonner

    • Fördermitglied
    • Beiträge: 850
    • Geschlecht:
    Re: Artikelsortierung product_listening
    Antwort #2 am: 02. Dezember 2018, 12:16:32
    Hallo noRiddle,

    Danke.. habe es eingebaut und funktioniert so, wie Du es beschrieben hast.

    Die Trennung zwischen Produkten mit Lagerbestand 0 und denen größer 0 habe ich damit.
    Ich habe die Artikelsortierung im Backend wieder auf Artikelname aufsteigend gestellt, so dass zuerst die Artikel mit Lagerbestand 0 aufsteigend angezeigt werden und dann die anderen.
    Soweit..so gut.
    Jetzt muss ich es noch hinbekommen das, zuerst die Gruppe mit vorrätigen Artikeln alphabetisch angezeigt werden und dann die ausverkauften Artikel.
    Denn es ist für Kunden sicher kontraproduktiv, wenn sie auf die Seite kommen und zuerst nur auf ausverkaufte Artikel stoßen.

    Einen schöne 1. Advent!

    Bonner

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 14.006
    • Geschlecht:
    Re: Artikelsortierung product_listening
    Antwort #3 am: 02. Dezember 2018, 17:32:36
    Ich habe nicht richtig gelesen anscheinend.

    Vertausche in diesem Code-Teil
    Code: PHP  [Auswählen]
    ORDER BY IF(p.products_quantity = 0, 1, 2)
    einfach die 1 und die 2.

    Außerdem mache aus dem = ein <=, denn Artikel können ja auch ins Minus laufen.
    Also sieht es dann so aus:
    Code: PHP  [Auswählen]
    ORDER BY IF(p.products_quantity <= 0, 2, 1)

    Ich denke dein Satz
    Zitat
    Hintergrund: Kunden sollen die Möglichkeit haben, sich für derzeit nicht mehr vorrätige Artikel vormerken zu lassen.
    hat mich verwirrt, bzw. habe ich da einfach was reingedeutet. Ich verstehe ihn im Context nämlich nicht.
    Ist aber egal. Du hast ja die Lösung nun.

    Gruß,
    noRiddle

    Bonner

    • Fördermitglied
    • Beiträge: 850
    • Geschlecht:
    Re: Artikelsortierung product_listening
    Antwort #4 am: 05. Dezember 2018, 14:51:08
    Hallo noRiddle,

    Danke.. das war es!  :thx:

    ..wieder ein Punkt zum Abhaken auf der Liste ;-)

    Bonner
    3 Antworten
    2762 Aufrufe
    14. Juli 2012, 11:34:55 von WayneTsun
    4 Antworten
    2921 Aufrufe
    21. November 2014, 13:27:03 von Street Bastard
    0 Antworten
    1280 Aufrufe
    14. September 2017, 07:09:13 von maxima
    0 Antworten
    1887 Aufrufe
    16. Oktober 2012, 11:47:48 von Capital
               
    anything