Woocommerce brutto/netto – rollenbasierte Preiskommunikation

Ein Shop mit unterschiedlichen Preisen auf z.B. Privatkunden – Gewerbekunden – x spezialisierte Gewerbekunden… inkl. Brutto/Netto-Kommunikation ist in dieser Logik und Konsequenz leider nicht im Standard zu haben.

  • Privatkunden benötigen die Darstellung des Bruttopreises “inkl. MwSt.”
  • Gewerbekunden sind es z.B. durch den Netto-Preiskatalog gewohnt, “exkl. MwSt.” angezeigt zu bekommen.
  • spezialisierte Gewerbekunden erwarten für bestimmte Segmente “schärfere” Preise!

Woocommerce kann zwar grundsätzlich entweder Brutto oder Netto ausweisen, aber nicht rollenbasiert. Dies kann auch nicht germanized oder german market!

Das Ausweisen ist nur eine Herausforderung. Im Warenkorb bzw. der Rechnungstellung muss bei Nettopreisen der jeweilige Umsatzsteuer-Satz aufgeschlagen und bei Bruttopreisen inkludiert betrachtet werden.

Bei 2 Shops hat mir der u.g. Code hierzu gut geholfen und ich gebe die angewandte Empfehlung gern weiter. Vorausgesetzt Du hast bereits Rollen angelegt. Empfehlungen hierzu sind:

Ultimate Member für die Rollenverwaltung und WC Role based Price für die individuelle, grenzenlose Preisgestaltung (dank kleinem Add-on auch gut im- und exportierbar).

Den Code packst Du in die function.php des aktuellen Theme.

2 Wege:

  1. ftp: [DEINE_DOMAIN]/wp-content/themes/Dein-Childtheme/function.php (Editieren mit z.B. visual composer)
  2. WP Dashboard: Design -> Theme-Editor -> function.php auswählen und Code einfügen (nicht zu empfehlen, da bei fehlerhaftem Code die Seite nicht mehr zu laden ist!! -> function.php über ftp zurücksetzen hilft)

Auch ich empfehle dringend die Erstellung eines Child-Theme um die Arbeit zu vereinfachen und Updates gegenüber empfänglicher zu sein. Es lohnt sich wirklich und ist garnicht so schwer.

Der Code (Erstellung und Implementierung der Funktion ‘override_tax_display_setting):

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";
}
}

Achte darauf, dass genügend Klammern drin sind, gibt es notfalls auch im Baumarkt.

Der Code funktionierte bei mir mit WP 5.2.2 und Woocommerce 3.7.0 sowie Germanized Pro 1.11.2 . Update 13.07. WP 5.4.2

Bei Fragen oder Anregungen einfach melden.

8 Gedanken zu „Woocommerce brutto/netto – rollenbasierte Preiskommunikation

  • Februar 9, 2020 um 5:26 pm
    Permalink

    Hi,
    wir arbeiten mit einem kleinen Woocommerce b2b plugin, das alle wichtigen Funktionen abdeckt.
    auf unserem Shop sind die Preise nur für Registrierte Kunden sichtbar .
    Leider erkennt das Plugin nicht die MwSt,Versandkosten und Lieferzeiten, die durch Germanized >Preisauszeichnung> Produktdetailseite aktiviert wurden nicht. Ein Tip?
    Wie werden diese Felder angesprochen, Hook? Filter? add_action?

    Viele Grüße
    Thess

    Antwort
    • März 8, 2020 um 8:13 am
      Permalink

      Hallo Thes,
      welches b2b plugin habt ihr im Einsatz?
      Die von Dir angesprochenen Informationen liegen in separaten Datenbanktabellen (Versandkostenarten…) und werden dort u.a. für den Warenkorb abgegriffen. Das kannst Du dir einfach in der SQL-Datenbank mal unter z.B. mysql anschauen, schon spannend.

      Vom Prinzip geht es dabei nicht um hooks, da es ein interner Verweis ist. So arbeitet auch das wc price plugin und zieht einen Preis in Abhängigkeit zur Rolle. Wie du in meiner Anpassung siehst lädt er die Merkmale separat.

      Konkret kann ich Dir jetzt nicht helfen, vielleicht wenn Du das plugin nennst.

      BG
      Ricky

      Antwort
  • Juli 11, 2020 um 9:26 pm
    Permalink

    Hallo!

    Ich habe mot WooCommerce und dem Plugin Germanized das Problem mit der Unterscheidung der Preisanzeige von B2B/B2C nach UID-Check.

    Ihr Tipp des Rollenspieles scheint die Lösung zu sein 🙂 Doch bevor ich den Code einbaue hätte ich eine Frage, wie erfolgt die Zuteilung der Rolle bei Registrierung des Kontos? Muss ich das manuell machen?

    Ideal wäre die Variante, abhängig der gültigtigen UID die Rolle “Händler” zuzuteilen, oder verstehe ich was falsch.

    Ich hoffe Sie können meinen Gedankengang folgen 🙂

    Vielen Dank im Voraus für Ihre Antwort!

    Beste Grüße,

    Oliver

    Antwort
    • Juli 13, 2020 um 3:42 pm
      Permalink

      Hallo Oliver,

      ich kann Dir bestätigen, dass der Code auf die Rolle hin funktioniert, im Beispiel “wholesale_buyer“, die Du natürlich angelegt hast. Ich nutze akutell 3 feste Rollen, einmal den “guest”, den Baustoff-Profi und den registrierten Kunden “Häuslebauer”. Ich kann Dir also besätigen, dass der B2B-Kunde die Netto-Ansicht inkl. Warenkorb netto sieht, der Privatkunde ob eingeloggt oder Gast nur die Brutto-Preise und korrekt fakturiert wird. Nebenbei steuer ich über role-based-price verschiedene Preise aus, allerdings selektiv.

      Würde mich interessieren, bei welchem Projekt Du es einsetzt. Lass mich dazu mal mehr erfahren 😉

      Beste Grüße
      Ricky

      Antwort
  • Oktober 8, 2020 um 11:05 am
    Permalink

    Hallo,
    ein interessantes Sniplet.
    Ich arbeite mit Booster Plus, das im Grunde diese Funktion bietet: “Price based on User-Role” und “Tax-Display”
    Das Problem ist, dass wir VEs verkaufen und die Berechnung bei der Angabe des Einzelpreises (Stückpreis) dann nicht mehr korrekt kalkuliert wird.

    Berücksichtigt das Sniplet die Kalkulation des Einzelpreises auf Basis Brutto-Nettoberechnung und den unterschiedlichen Preisen bei Customers und Resellern?

    Grüße
    Tom

    Antwort
    • Oktober 19, 2020 um 2:50 pm
      Permalink

      Hallo Tom,
      für den Profikunden (reseller) wird der Netto-Preis als Basis gezogen, beim Bauherren (customers) der Bruttopreis. Funktioniert reibungslos, auch ohne Rundungsdifferenzen 😉
      Ich empfehle für die Thematik VE-Verkauf durch meine Erfahrung das folgende Plugin:
      https://docs.woocommerce.com/document/measurement-price-calculator/
      Der Einzelpreis wird über die Kalkulation ermittelt, soweit die Daten nicht an eine weitere WAWI übergeben werden müssen, ist es im Bezug auf Mengenstaffel, Fläche, Volumen… ne klasse Option. Zur Einspielung über csv ist es etwas tricky, aber funktioniert (oneway)

      BG
      Ricky

      Antwort
  • November 2, 2020 um 8:12 am
    Permalink

    Hallo Hannes,

    der Code funktioniert sehr gut! Hast du vielleicht einen Tipp, wie ich mehrere Benutzerrollen einbeziehen könnte?

    Was leider nicht funktioniert hat:
    (‘dealer1’, ‘dealer2’)

    Lg Petra

    Antwort
    • Dezember 30, 2020 um 10:33 am
      Permalink

      Hallo Petra,
      Danke für Dein Feedback
      Grundsätzlich lassen sich mehrere Rollen einbinden, was in meinem Projekt ebenso funioniert. Der einfachste Weg ist, dass Du für ‘dealer1’ die function setzt und für ‘dealer2’ die function wiederholst. Da es sich ja nur um eine Abfrage handelt, die bei Ergebnis true die Anweisung overwrite_tax-display_setting ausführt.

      Lg Ricky

      Antwort

Schreibe einen Kommentar

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

− 6 = 4

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Um die Nutzung unserer Webseite zu analysieren und unser Angebot zu verbessern, setzen wir Technologien ein, die das Nutzungsverhalten in pseudonymisierter Form erfassen. Durch Ihre Zustimmung unterstützen Sie uns bei der weiteren Gestaltung unseres Webangebots. Sie können diese Einwilligung jederzeit mit Wirkung für die Zukunft widerrufen.

Schließen