Bug in EcommerceCustomer.sync_customer(): _("Individual") speichert übersetzten Wert statt Select-Option #34
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
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Frappe-Projekte/ecommerce_integrations#34
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?
Problem
ecommerce_integrations/controllers/customer.py::EcommerceCustomer.sync_customer()(gemeinsame Basisklasse für alle Connectors, u. a. genutzt vom bestehenden
Shopify-Connector
shopify/customer.py:ShopifyCustomerund von unserem neuenshopware6/customer.py:ShopwareCustomer, #28) setzt beim Anlegen eines neuenCustomers:
_()übersetzt den String vor dem Speichern anhand der Sprache der Site(
System Settings.language). Auf einer deutschsprachigen Site (language = "de")wird dadurch literal
"Einzelperson"in die Datenbank geschrieben.Das Core-Feld
Customer.customer_type(Select) hat aber weiterhin dieunübersetzten, englischen Optionen als gültige Werte:
Company\nIndividual\nPartnership. ERPNext lehnt"Einzelperson"deshalb miteinem
ValidationErrorab:Live-Reproduktion (erpnext-sync Testbench)
EcommerceCustomer.sync_customer()'s eigenercustomer.insert(...)-Aufrufwirft den
ValidationErrorbereits beim allerersten neuen Customer.Tragweite
Kein Shopware-spezifisches Problem — betrifft jeden Connector, der
EcommerceCustomer.sync_customer()nutzt (aktuell: Shopify, ab #28: Shopware),sobald die Site auf Deutsch (oder eine andere Nicht-Englisch-Sprache mit
Übersetzung für "Individual") läuft. Für dieses DACH-Projekt ist das der
Standardfall, nicht die Ausnahme.
Vorschlag
_("Individual")durch den literalen, unübersetzten Wert"Individual"ersetzen — der gespeicherte Wert eines Select-Felds darf nicht von der
UI-Sprache abhängen, nur das Label wird beim Anzeigen übersetzt.
Vorgehen für uns
Da wir noch keinen PR an Frappe/ERPNext senden und uns weiterhin mit dem
Upstream-Repo syncen, bis alles geprüft ist:
frappe/ecommerce_integrationserstellen (oder an einbestehendes anhängen) — [wird verlinkt, sobald angelegt].
shopware6/customer.py(Basisklasse
controllers/customer.pybleibt unangetastet, um beimnächsten Sync mit Upstream keine Konflikte zu erzeugen).
Workaround wieder entfernen, dieses Issue schließen.
Gefunden während der Live-Verifikation von #28 (Kundenanlage aus
Shopware-Bestellungen).
Upstream-Issue erstellt: https://github.com/frappe/ecommerce_integrations/issues/465
Nächster Schritt: lokaler Workaround in
shopware6/customer.py, ohnecontrollers/customer.pyanzufassen. Dieses Issue bleibt offen, bis der Upstream-Fix übernommen wurde und wir den Workaround wieder entfernt haben.