WooCommerce Sortierung nach Artikelnummer

Eines der beliebtesten Onlineshop Plugins für WordPress ist zweifelsohne „WooCommerce“. Es funktioniert sehr gut „out-of-the-box“ und bringt sehr viele wichtige Funktionen mit. Je länger man sich allerdings mit diesem Plugin beschäftigt, stellt man fest, dass man um zahlreiche eigene Einstellungen und Customizing nicht drumrumkommt. Schließlich will man den Shop nach eigenen Wünschen und Bedürfnissen einstellen.

In diesem Beitrag zeigen wir, wie Sie die Sortierung der Artikel innerhalb einer Kategorie um die Sortierungsfunktion „Artikelnummer (aufsteigend/absteigend)“ erweitern können (WooCommerce sort by sku).

Öffnen Sie hierzu Ihre functions.php in Ihrem Theme Ordner und fügen Sie folgenden Code hinzu:

 

 

//Sortierung in WooCommerce
add_filter( 'woocommerce_get_catalog_ordering_args', 'custom_woocommerce_get_catalog_ordering_args' );

function custom_woocommerce_get_catalog_ordering_args( $args ) {
$orderby_value = isset( $_GET['orderby'] ) ? woocommerce_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );

if ( 'random_list' == $orderby_value ) {
$args['orderby'] = 'meta_value';
$args['order'] = 'asc';      //asc sortiert aufsteigend, desc sortiert absteigend
$args['meta_key'] = '_sku';
}

return $args;
}

 

//Benennung der Sortierung für Frontend und Backend
add_filter( 'woocommerce_default_catalog_orderby_options', 'custom_woocommerce_catalog_orderby' );
add_filter( 'woocommerce_catalog_orderby', 'custom_woocommerce_catalog_orderby' );

function custom_woocommerce_catalog_orderby( $sortby ) {
$sortby['random_list'] = 'Artikelnummer aufsteigend';      //Name Sortiermöglichkeit
return $sortby;
}

 

 

Der Shop-Besucher erhält nun zusätzlich im Drop-Down-Feld die Möglichkeit nach Artikelnummern zu sortieren. Außerdem können Sie in den WooCommerce Einstellungen diese Sortierung als Ihre Standardsortierung auswählen, falls gewünscht.

Für weitere Sortierungsvariablen besuchen Sie die WordPress Codex Class Reference.

6 Kommentare
  1. Ulrich Eckardt
    Ulrich Eckardt says:

    Hi,

    nur eines darf man nicht machen: Ein Update. Alle Änderungen gehen dann sofort verloren. Das betrifft Änderungen im Source-Code als auch die Sprachdateien. Daher sollte man sich vorher überlegen, ob man einen Shop, wie der von WooCommerce, immer updaten muss.

    Grüße

    Ulrich Eckardt

    Antworten
    • steimle
      steimle says:

      Hallo Herr Eckardt,

      Vielen Dank für Ihr Feedback. Kurze Anmerkung: da die Änderungen in der functions.php Ihres Themes gemacht werden, können Sie woocommerce nach wie vor ohne Probleme updaten. Ebenso auf die wichtigen WordPress Updates hat dies keine Auswirkung. Aufpassen müssen Sie nur wenn Sie Ihr Theme updaten: dann kann es durchaus sein, dass auch die functions.php upgedatet wird. Es empfiehlt sich in diesem Fall eine Art eigene „change-log Datei“ zu führen, um die eigenen Änderungen nach dem Update wieder hinzuzufügen.

      Grüße
      Thomas Steimle

      Antworten
  2. Martin
    Martin says:

    Hi, danke für den Filter..hat mir sehr geholfen^^…hab alles in die functions.php von einem child-theme eingesetzt..dadurch ist man bei jeglichem update auf der sicheren Seite.

    Grüße
    Martin

    Antworten
  3. Tobias
    Tobias says:

    Hey,
    danke für den Filter. Habe diesen bei mir nun auch integriert und gefällt mir so nun viel besser. Eine Hilfestellung wäre für mich noch schön, wie ich in einer Produktkategorie auch neben dem Artikeltitel der Produkte auch die Artikelnummer anzeigen lassen kann. Diese ist bislang ja nur beim Aufrufen des einzelnen Produktes möglich.

    Gruß Tobias

    Antworten
    • steimle
      steimle says:

      Hallo Tobias,
      die Darstellung der Artikelnummer auf der Übersichtsseite macht natürlich nur Sinn wenn es keine Bestellalternativen pro Produktnummer gibt.
      Um die Produktnummer darzustellen muss die functions.php wie folgt ergänzt werden:

      //Artikelnummer anzeigen
      add_action( ‚woocommerce_after_shop_loop_item_title‘, ’shop_sku‘ );
      function shop_sku(){
      global $product;
      echo ‚Artikel-Nr.: ‚ . $product->sku . ‚‚;
      }

      Grüße
      Thomas

      Antworten
      • Tobias
        Tobias says:

        Hallo Thomas, danke für deine Antwort. Ja, ich habe immer nur ein Produkt mit Artikelnummer, welches klar definiert ist. Keine Variationen oder dergleichen.

        Anfangs hatte ich immer ein Problem mit deinem Code in der Zeile „Artikel-Nr.: ….). Ich habe mit deinem Code etwas Nachforschung betrieben und etwas experimentiert. Bei mir schaut es nun wie folgt aus:

        //Artikelnummer anzeigen
        add_action( ‚woocommerce_before_shop_loop_item_title‘, ’shop_sku‘ );
        function shop_sku(){
        global $product;
        echo ‚ ‚ . $product->sku . “;
        }

        Man konnte auch auch „add_action( ‚woocommerce_after_shop ….“ schreiben. So hat man die Möglichkeit entweder die Artikelnummer vor („before“) dem Titel oder ganz zum Schluss („after“) anzeigen zu lassen.

        Danke nochmal, hat mich echt geholfen.
        Gruß Tobias

        Antworten

Dein Kommentar

Want to join the discussion?
Feel free to contribute!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.