Steuer-Mapping bei Bestellungsimport anwenden #30
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#30
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?
Beim Import einer Shopware-Bestellung das korrekte ERPNext Tax Template ermitteln und setzen:
Shopware Tax MappingabgleichenUmgesetzt:
_apply_taxes()inshopware6/api/order.py, aufgerufen aus_create_sales_order(), verdrahtet drei bereits bestehende Bausteine:Shopware Tax Mapping(#23)determine_customer_tax_treatment()(#25/#26)_create_sales_order(), die bisher bewusst keineSales Taxes and Charges-Zeilen gebaut hatBewusste Abweichung vom Issue-Text: statt eines dritten Kundentyp-Felds auf
Shopware Tax Mapping(#23 hat das absichtlich nicht) werden beide bereits existierenden Bausteine kombiniert:reverse_charge=True(EU-B2B-Grenzfall) → das konfigurierteeu_b2b_tax_templatewird angewendet; sonst (Inland B2B/B2C, oder Drittland wie Schweiz — #26 sorgt dort bereits fürreverse_charge=False) →Shopware Tax Mappingwird pro tatsächlich auf der Bestellung vorhandenem Steuersatz nachgeschlagen.Quelle der Steuerbeträge ist
order.price.calculatedTaxes— von Shopware bereits über alle Positionen und Versandkosten aggregiert. Gebucht wird mitcharge_type="Actual"und Shopwares eigenem Betrag, nicht mit einem prozentualen ERPNext-Neuberechnen (ERPNexts eigene SKR04-Templates verlassen sich sonst auf Item Tax Templates, die hier nicht gebaut werden sollten). Fehlt für einen vorhandenen Satz die Zuordnung, wird die ganze Bestellung übersprungen (skipped_no_tax_mapping) statt ein Konto zu raten oder die Steuer stillschweigend wegzulassen.Nebenbei gefunden und behoben: ein echter, bisher unentdeckter Bug in #23s eigenem
Shopware Tax Mapping-DocType —autoname: "format:{shopware_storefront}-{tax_rate}"verschluckt das Float-Feldtax_ratestillschweigend (Frappes Naming-Engine unterstützt in"format:"-Mustern keinfloat), wodurch zwei Sätze für denselben Storefront kollidiert wären. Aufautoname: "hash"umgestellt.Live gegen die echte Testinstanz verifiziert: Inlandsfall (ein Satz), gemischter Satz (zwei Sätze gleichzeitig, korrekt getrennt), EU-B2B-Reverse-Charge, fehlendes Mapping (korrekter Skip), Schweiz-Herkunfts-Regression zu #26, 0%-Einträge korrekt übersprungen, sowie ein voller
import_orders()-Durchlauf über mehrere Szenarien gleichzeitig. Alle Testdaten gelöscht und unabhängig erneut als entfernt bestätigt.Details:
docs/architecture.md→ Issue 30.Damit ist Milestone 8 ("Bestellsynchronisation") vollständig abgeschlossen (4/4).