Woocommerce: Zeige Preise Netto für bestimmte Kundengruppe

Woocommerce: Filter für Versandkosten
21. Mai 2017
Shopware Lieferadresse in Rechnung ausweisen
21. Mai 2017

Normalerweise lässt Woocommerce nur eine Option der Preisdarstellung gleichzeitig zu. Der Shopbetreiber hat die Möglichkeit, zwischen dem Ausweis der Preise inklusive Mehrwertsteuer oder ohne Mehrwertsteuer zu entscheiden. Wie sieht es aber auch, wenn eine weitere Kundengruppe angelegt wird, die abweichende Preise und dazu abweichend die Preise ohne Steuer sehen soll?

Unser Ziel ist also folgendes:

  • Gruppe Endkunde: Preise werden inklusive Mehrwertsteuer dargestellt, sind für jeden sichtbar und stellen den UVP dar
  • Gruppe Händler: Preise werden ohne Mehrwertsteuer dargestellt, sind erst nach dem Login der Händler sichtbar und zeigen den reduzierten Einkaufspreis für Händler

Dafür benötigt es zwei Dinge. Zum einen eine neue Kundengruppe, die den abweichenden Preis sehen soll zusätzlich natürlich die Möglichkeit, abweichende Preise anlegen zu können.

Mithilfe kostenloser Plugins ist es möglich, weitere Kundengruppen anzulegen. Eine einfache Option ist z.B. das Members Plugin von Justin Tadlockhttps://de.wordpress.org/plugins/members/

  • Über das Plugin kann eine neue Gruppe angelegt werden, z.B. Händler
  • Mithilfe des Plugins werden die Berechtigungen der neuen Gruppe genauso gesetzt wie die Berechtigungen für die Gruppe Customer

ist das erledigt, folgt auch schon der zweite Schritt, die Anlage abweichender Preise für die neu angelegte Gruppe. Dafür bietet sich das Plugin https://de.wordpress.org/plugins/woocommerce-role-based-price/ von Varun Sridharan an. Die kostenlose Variante reicht für unser Beispiel vollkommen aus.

  • Nach der Installation erscheint innerhalb des Menüpunkts Woocommerce auf der linken Seite der zusätzliche Punkt Role Based Price Settings
  • Hier kann gewählt werden, für welche Gruppen zusätzliche Preise angelegt werden sollen und wie die Beschriftung des Feldes im Frontend lauten soll
  • In unserem Fall weisen wir also unsere neu erstellte Kundengruppe Händler dem Feld Allowed User Roles zu
  • Nach dem Speichern der Einstellungen erscheint jetzt am Ende einer jeden Produktseite im Backend ein zusätzliches Feld für die Eingabe des abweichendes Preises
  • Der Preis für Händler muss jetzt nur noch ganz normal inklusive Mehrwertsteuer, wie auch die Endkundenpreise, eingepflegt werden

Da Woocommerce an dieser Stelle an seine Grenzen kommt, muss nun manuell eingegriffen werden. Wir hätten zwar auch bei der Eingabe der Preise im Plugin Role Based Price einfach einen Preis ohne Mehrwertsteuer eintragen können, Woocommerce wüsste das aber nicht und würde daher in der Kasse den Preis falsch berechnen.

Mit folgender Ergänzung in der functions.php lässt sich aber auch dieses letzte Problem lösen

add_filter('pre_option_woocommerce_tax_display_shop', 'override_tax_display_setting');
add_filter('pre_option_woocommerce_tax_display_cart', 'override_tax_display_setting');
function override_tax_display_setting() {
if ( current_user_can('wholesale_buyer') ) {
return "excl";
} else {
return "incl";
}
}

 

Die Funktion gilt in unserem Beispiel für die Gruppe wholesale_buyer. Der Wert muss entsprechend für die eigene Bezeichnung der Gruppe angepasst werden. Ist das geschehen, zieht der Shop für diese Gruppe automatisch die Mehrwertsteuer von den zuvor im Plugin Rose Based Price eingepflegten Preisen ab. Daher ist es dringend notwendig, die Preise zuvor inklusive Mehrwertsteuer einzupflegen und den Shop die Rechnung übernehmen zu lassen.

Die functions.php findet sich standardmäßig in dem Verzeichnis /wp-content/themes/name_des_themes

Bei einem Update des Themes muss daran gedacht werden, die Änderung wieder vorzunehmen. Alternativ wird das ganze in einem Child Theme gespeichert, dann ist die Änderung auch bei Updates des Themes sicher.