Eigener USt-Handler
Diese Seite ist für Entwickler, deren Umsatzsteuerregeln sich nicht mit USt-Regeln nach Land und Produktkategorie ausdrücken lassen. Der Shop fragt einen USt-Handler nach dem Prozentsatz jedes Produkts mit dynamischer Umsatzsteuer; Sie können Ihren eigenen Handler schreiben und alles andere behalten.
Inhalt
Wann Sie einen brauchen
| Situation | Reicht der Standard-Handler? |
|---|---|
| Steuersatz nach Land des Kunden und Produktkategorie | Ja (Produktkategorien und USt-Regeln) |
| Ein anderer Satz für Geschäftskunden mit gültiger USt-IdNr. | Nein |
| Der Satz hängt von der Lieferadresse statt vom Land des Kontos ab | Nein |
| Die Sätze kommen von einem externen Steuerdienst | Nein |
Die Steuerregeln selbst sind Sache Ihres Steuerberaters; der Handler setzt nur um, was Sie entscheiden.
Der Vertrag
eZVATManager::getVAT( $object, $country ) (kernel/classes/ezvatmanager.php) lädt den Handler und ruft auf:
function getVatPercent( $object, $country )| Argument | Bedeutung |
|---|---|
$object | Das Inhaltsobjekt des Produkts |
$country | Der Ländercode des Kunden oder false, wenn unbekannt |
Geben Sie den Prozentsatz als Zahl zurück. Die Rückgabe von null kennzeichnet die Umsatzsteuer als unbekannt. Der
Handler wird nur für Produkte gefragt, deren Preis den dynamischen USt-Typ verwendet; Produkte mit einem festen
USt-Typ behalten diesen.
Ihn registrieren
# extension/mystore_shop/settings/shop.ini.append.php
[VATSettings]
Handler=mystore
ExtensionDirectories[]=mystore_shop
RequireUserCountry=falseDie Klasse mystoreVATHandler gehört in extension/mystore_shop/vathandlers/mystorevathandler.php. Setzen Sie
RequireUserCountry=false nur, wenn Ihr Handler das Land nicht braucht; der mitgelieferte Kommentar sagt das ebenfalls
(shop.ini durchgegangen).
Auf dem Standard-Handler aufbauen
Wenn Sie eZDefaultVATHandler (kernel/classes/vathandlers/ezdefaultvathandler.php) erweitern, bleibt die
regelbasierte Entscheidung erhalten, und Sie können zuerst eine Ausnahme behandeln:
class mystoreVATHandler extends eZDefaultVATHandler
{
function getVatPercent( $object, $country )
{
if ( $this->isBusinessCustomerWithValidNumber() )
{
return 0;
}
return parent::getVatPercent( $object, $country );
}
}isBusinessCustomerWithValidNumber() schreiben Sie selbst; woher die USt-IdNr. kommt (ein Kontofeld, das
Kassenformular Ihres Shop-Konto-Handlers), ist Ihr Entwurf. Der RAD-Handler-Assistent hat ein Rezept für
USt-Handler, das dieses Gerüst schreibt (Pfad für Entwickler).
Testen
- To do: Unit-Tests von
getVatPercent()für jeden Fall, den Sie umsetzen. - To do: Eine Testbestellung je Fall; Bestätigungsseite, Bestellung und Mail stimmen überein.
- To do: Unbekanntes Land: Das Ergebnis ist das, was Sie beabsichtigen, keine versehentliche 0.
- To do: Das Shop-Dashboard zeigt keine unerwartete Warnung zu 0 Prozent.
Verwandte Seiten
- Den Shop erweitern
- USt-Regeln und USt-Typen
- Checkliste zur Umsatzsteuer
- Freie Dokumentation: diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.