Die Situation ist wie folgt: Wir haben den "grenzüberschreitenden Handel" aktiviert und er funktioniert einwandfrei (wir haben Produkte mit definiertem Bruttopreis und die Mehrwertsteuer wird basierend auf dem Kundenland berechnet. Für jedes Land sieht jeder Kunde den gleichen Endpreis).
Das Problem liegt bei unserem B2B-Kunden, bei dem die Mehrwertsteuer berechnet werden sollte, der jedoch nicht bezahlt werden sollte.
Zum Beispiel:
- Privatkunde: Bruttopreis 100 EUR, Mehrwertsteuer für sein Land beträgt 25%, also Mehrwertsteuer 20 EUR.
- Für B2B-Kunden sollte es gleich sein, aber für ihn sollte die Gesamtsumme ohne Steuern (80 EUR) sein.
Gibt es eine Möglichkeit, es einzurichten (zum Beispiel mit Kundengruppen + Steuerklassen). Wir kämpfen eine Weile damit und können keine Lösung googeln. Ich kann auch nicht glauben, dass wir die einzigen sind, die dieses Problem haben. Wie lösen Sie es?
quelle
Ja. Ich denke, Sie haben bereits alle EU-Länder mit den entsprechenden Steuersätzen für das Stück eingerichtet, in dem Sie arbeiten. Sie benötigen mindestens eine weitere Kundensteuerklasse, z. B. "EU B2B". Dann müssen Sie zu gehen
configuration/customers/customer configuration
und die änderncreate new account options
, um die automatische Zuweisung der Gruppe für eine gültige Umsatzsteuer-ID zu aktivieren, und die EinstellungGroup for Valid VAT ID - Intra-Union
auf festlegenEU B2B
. Werfen Sie einen Blick auf die anderen Einstellungen, um zu sehen, was Sie verwenden möchten. Die Kombination dieser beiden Einstellungen bedeutet jedoch, dass Magento die Mehrwertsteuer aus der Transaktion entnimmt, wenn ein Kunde eine gültige (gemäß VIES) Umsatzsteuer-Identifikationsnummer eingibt.Beachten Sie, dass Magento die Umsatzsteuer-Identifikationsnummer ohne das Ländercode-Präfix erwartet und die Nummer bei der Validierung mit dem Ländercode für die Adresse kombiniert. Wir haben einen Code geschrieben, um den Ländercode zu entfernen, falls vorhanden, da die meisten Leute ihn einschließen. Dies funktioniert derzeit nicht für Griechenland, da derjenige, der den Code geschrieben hat, nicht wusste, dass den griechischen Mehrwertsteuercodes EL und nicht GR vorangestellt sind
Auch wenn ich kein Buchhalter bin und die grenzüberschreitende Handelsoption nicht genutzt habe und unsere Preise auf dem Mehrwertsteuer basieren: Wenn Sie in all diesen anderen Ländern nicht mehrwertsteuerpflichtig sind, sollten Sie sammeln Mehrwertsteuer auf Ihre eigene Umsatzsteuer-Identifikationsnummer zu Ihrem einheimischen Mehrwertsteuersatz. Wenn Ihr Umsatz in einem dieser Länder das Limit überschreitet (je nach Land 33000 € oder 100000 €), müssen Sie sich in diesem Land für die Mehrwertsteuer registrieren und dann die Mehrwertsteuer in diesem Land erheben.
quelle
Wir haben dafür einen speziellen Helfer geschaffen (wir nennen es gemischten Preis).
Sie müssen getPrice und getSpecialPrice für Catalog_Model_Product überschreiben:
Die Idee hinter diesem Helfer ist recht einfach, aber ich muss mehr Kontext angeben. Wir verkaufen unseren Kunden Software, keine physischen Produkte. Wir brauchten einige Produkte mit festen Preisen für B2B-Kunden und einige Produkte mit festen Preisen für B2C-Kunden (der Endpreis ist konstant, die Mehrwertsteuer ändert sich für jedes Kundenland). Beides kann man natürlich nicht haben.
Wir haben eine Spalte für das Produkt 'is_vat_included' hinzugefügt. Für festes B2B erwarten wir, dass dies falsch ist, für festes B2C erwarten wir, dass dies wahr ist. (Wer also Katalogprodukte pflegt, muss sich darum kümmern).
Wie Sie vielleicht wissen: Es gibt eine globale Konfiguration für Magento, die angibt, ob die Preise mit oder ohne Steuern sind (\ Mage_Tax_Helper_Data :: priceIncludesTax). Wir haben angenommen, dass diese Konfiguration wahr sein sollte (Sie können das Gegenteil annehmen oder keine Annahmen treffen und diese Konfiguration berücksichtigen, wenn Sie die Preise im "Mixedprice" -Helfer manipulieren.
Der Rest ist ganz einfach: * Wenn 'is_vat_included' == true für das Produkt ist, tun Sie nichts Besonderes. * Wenn 'is_vat_included' == false ist, senden Sie es über den TaxHelper von magento, um den Preis mit Mehrwertsteuer zu berechnen
Der Code für Catalog_Model_Product würde also ungefähr so aussehen:
Dies ist die allgemeine Logik, die wir unserem "Mixed-Price" -Helfer zugewiesen haben (ich habe sie hier der Klarheit halber eingefügt).
Bitte beachten Sie: 1. Ich kann Ihren genauen Code nicht kopieren und einfügen, daher ist dies eine grobe Idee. Wenn Sie einige Geschäfte mit Produkten einschließlich Mehrwertsteuer verwalten möchten und einige Geschäfte, in denen Produkte standardmäßig die Mehrwertsteuer ausschließen, ist diese Methode komplizierter. 2. Sie benötigen den gleichen Trick für product :: getSpecialPrice. 3. Sie benötigen noch mehr davon, wenn Sie benutzerdefinierte Optionen verwenden. 4. Unit Testing ist dein Freund - wir haben es wie verrückt benutzt (wir mussten es am 1. Januar 2015 bereitstellen, es hat funktioniert).
Vielen Dank für die Klarstellung von @ Jeffrey - bitte stimmen Sie seiner Antwort ab: Grenzüberschreitende Steuereinstellungen für Geschäftskunden
quelle
Vielleicht nicht die schönste Lösung, aber wenn Sie Codierung wirklich vermeiden möchten, können Sie sie lösen, indem Sie für jede Mehrwertsteuerzone, in der Sie registriert sind, einen Gruppenpreis festlegen.
Angenommen, Sie haben Ihren Sitz in Schweden (25% MwSt.), Sind aber auch für die deutsche MwSt. Registriert (19%). Sie haben zwei Produktgruppen eingerichtet: EU-Unternehmen und deutsche Unternehmen.
Für ein Produkt mit 100 € setzen Sie einen Gruppenpreis für die Kundengruppe EU-Unternehmen auf 80 € und für die Kundengruppe Deutsch-Unternehmen auf 84 €.
Zunächst fügen Sie natürlich die Kundengruppen unter Kunden >> Kundengruppen hinzu und ordnen Ihre B2B-Kunden der richtigen Gruppe zu. Anschließend bearbeiten Sie die Preise, indem Sie zur Detailansicht der einzelnen Produkte und dann zu den Preisen wechseln und dann den Gruppenpreis hinzufügen. Bei vielen Produkten möchten Sie die Gruppenpreiseinstellung per Skript erstellen, was ziemlich einfach ist.
quelle