Tax Mapping DocType anlegen (pro Storefront) #23
Labels
No labels
API
Artikel
B2B
B2C
Bestandssync
Bestellungen
DACH
DocType
Dokumentation
Grundgerüst
Import
Kategorien
Kunden
Lager
Mapping
Mehrsprachigkeit
Performance
Preise
Push
Scheduler
Schweiz
Steuern
Storefront
Sync
Varianten
Verbindung
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Frappe-Projekte/ecommerce_integrations#23
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Einen neuen DocType
Shopware Tax Mappinganlegen:Sales Taxes and Charges Template), Kundentyp (B2B/B2C/Alle)shopware6/doctype/shopware_tax_mapping/ablegenUmgesetzt, mit einer bewussten Scope-Anpassung gegenüber dem ursprünglichen Issue-Text.
Scope-Korrektur: Statt
shopware_storefront+tax_rate+tax_template(Link → Sales Taxes and Charges Template) +customer_typewurde das Mapping aufshopware_storefront+tax_rate+tax_account(Link → Account) verschlankt. Grund: eine Shopware-Bestellung liefert Steuerbetrag und -satz bereits fertig berechnet (calculatedTaxes) sowie B2B/B2C bereits eindeutig übertaxStatus(net/gross/tax-free) — ERPNext muss die Steuer beim Import also nicht neu berechnen (kein Tax Template nötig) und braucht kein eigenescustomer_type-Feld (Dopplung zutaxStatus). Was Shopware nicht liefert, ist das Ziel-Konto — genau das schließt dieses Mapping, pro Storefront (nicht global), damit z. B. DE/AT/CH trotz ähnlicher Sätze nie versehentlich dasselbe Konto treffen.alyf-de-Check (wie gewünscht, vor der Umsetzung):
erpnext_germany,erpnext_datev,eu_einvoicegeprüft — keine der drei Apps deckt ein Shopware-Storefront-zu-Konto-Mapping ab, alle arbeiten nur downstream auf bereits gesetzten ERPNext-Feldern (tax_category,taxes_and_charges). Kein Duplikat, sicher umsetzbar.Umsetzung: neuer DocType
Shopware Tax Mapping(shopware6/doctype/shopware_tax_mapping/), autonameformat:{shopware_storefront}-{tax_rate}(erzwingt Eindeutigkeit pro Storefront+Satz ganz ohne eigene Validierung). Erstellt über Frappes eigenen DocType-Controller (frappe.get_doc(...).insert()bei temporär aktiviertemdeveloper_mode, danach Dateien exportiert unddeveloper_modewieder deaktiviert) — kein manuell geschriebenes JSON.Live verifiziert: zwei Mappings mit unterschiedlichem Satz für denselben Test-Storefront erfolgreich angelegt; ein drittes mit identischer Storefront+Satz-Kombination korrekt von Frappes eigener Namens-Eindeutigkeit abgelehnt (
IntegrityError 1062). Testdaten anschließend entfernt.bench migratesauber durchgelaufen, Tabelle existiert.Details: docs/architecture.md#issue-23
Vorgemerkt für spätere Issues (nicht Teil von #23): #30 sollte beim Anwenden des Mappings auch ERPNext's natives
tax_category-Feld mitpflegen statt eigene Parallel-Felder zu bauen; #25/#26 sollten für Reverse-Charge/Steuerbefreiung ebenfalls auftax_category+erpnext_germanystax_exemption_reasonsetzen statt Julians eigene Custom Fields zu kopieren.