Ubercart: Rabatte und Steuern
am 20.07.2011 - 13:26 Uhr in
Hallo,
ich arbeite seit einiger Zeit mit Ubercart (Version 2.4) und bin nun auf ein böses Problem in Bezug auf Steuern und Rabatte gestossen.
Das Problem ist folgendes:
Im Checkout wird der Rabatt vom Preis ohne Steuer abgezogen (soweit korrekt)
Der Endpreis wird allerdings weiterhin mit der Steuer vom ursprünglichen Preis berechnet.
Beispiel:
Preis (exkl. Steuer): 100 Quatloos | Preis: (inkl Steuer 10%: + 10 Quatloos) 110 Quatloos
Rabatt: -5%
Preis (exkl. Steuer) minus Rabatt = 95 Quatloos
Steuer +10% sollte nun 9,50 Quatloos sein... aber es sind leider weiterhin 10,00 Quatloos
Problem soweit klar?
Ich habe schon mehrere Module probiert:
http://drupal.org/project/uc_discount
http://drupal.org/project/uc_discounts_alt
http://drupal.org/project/uc_bulk_discount (das funktioniert vorn und hinten nicht)
Hat jemand eine Lösung oder einen Patch gefunden der wirklich funktioniert? (Habe auch schon einige Patches ausprobiert).
Danke für jede Hilfe,
Marc
- Anmelden oder Registrieren um Kommentare zu schreiben
Hab inzwischen was gefunden.. fuktioniert aber nur halb
am 21.07.2011 - 15:14 Uhr
Unter http://drupal.org/node/476348 sind verschiedene Patches für das Modul "uc_vat" und "uc_discounts_alt" zur Lösung vorhanden.
Nun stimmen die Preise zumindest in Bezug auf die Steuer.
Habe diesen Patch angewendet: http://drupal.org/node/476348#comment-2683872
Nachteile:
1. Alles funktioniert nur, wenn man die Steuer auch auf die Rabatte anwendet. Also ist ein 5% Rabatt = die Summe von 5% des Grudpreises (inkl. MwSt) + 19% MwSt. Etwas ärgerlich aber im Notfall werde ich damit leben.
2. Die Anzeige im Warenkorb klappte auch nicht so richtig. Musste per Hand in der Datei "uc_discounts.module" an einer Stelle (* 1.19) einfügen, damit das in Ordnung kommt und eine Anzeige ausblenden, da sonst die Anzeige im Warenkorb nicht korrekt ist. Ich kann die Anzeige zwar vollkommen korrekt machen, aber leider weicht der Endpreis (Order Total) im Checkout dann wieder ab.
Habe mich daher mit dem 5% (+19%)-unsinn abgefunden.
Sorry, dass ich keine echten Patches erstellen kann. Mir fehlt dazu Wissen und Software.
Daher auch per Hand:
Auf Zeile 343 ändert man:
foreach ($discounts as $discount) $total_discount_amount += $discount->amount
in
foreach ($discounts as $discount) $total_discount_amount += $discount->amount * 1.19;
Änderung in Zeile 1572 :
if ($discount->times_applied == 1) $messages[] = t("The discount, '@short_description', was applied for a discount of @discount_amount.",
habe ich zu
if ($discount->times_applied == 1) $messages[] = t("Der Rabatt <span>@short_description</span> wurde angewendet.",
geändert, da sonst einmal der Rabatt ohne 19% Zuschlag erscheint und rechnerisch in Bezug auf den Endpreis keinen Sinn macht. Zwar kann man den auch für eine korrekte Anzeige im Warenkorb anpassen, allerdings wird er dann im Checkout doppelt berechnet.
EDIT: Diese nicht allzu perfekte Lösung macht natürlich nur Sinn, wenn man Produkte nur mit einem Steuersatz arbeitet, bei mehreren Steuersätzen ist das sicherlich nicht so einfach zu lösen.
Habe schon viel hin und her probiert, allerdings immer nur mit dem Ergebnis, dass entweder der Preis im Warenkorb nicht stimmt oder aber der Preis im Checkout abweicht oder als drittes Problem die Steuerberechnung auf den Grundpreis - den Rabatt nicht mehr stimmt.
Falls irgendwer mal vor dem gleichen Problem steht, hoffe ich, dass derjenige den verwirrten Quatsch, den ich hier geschrieben hat irgendwie nachvollziehen kann.
Gibt sicher bessere Lösungen aber ich kann kaum bis garnicht PHP und bin faul.. und das war eine schnelle Lösung.