Preise pro Storefront/Preisliste pushen #18
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 project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Frappe-Projekte/ecommerce_integrations#18
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?
Artikelpreise storefront-spezifisch nach Shopware pushen:
priceArray mitcurrencyId)Implementiert (
shopware6/api/price.py,push_prices()).Zwei Entscheidungen, die nicht 1:1 aus dem Issue-Text ableitbar waren, vorab mit Christian geklärt:
grosswird 1:1 ausprice_list_rateübernommen,netwird berechnet.taxIdwird jetzt korrekt gesetzt, nicht mehr #16s beliebiger Platzhalter.Live-getestete Erkenntnisse, die die ursprüngliche Annahme widerlegt haben:
price.linked: truebewirkt bei der Admin API keine serverseitige Berechnung —grossundnetsind bei jedem Write immer beide Pflichtfelder (Test:netweggelassen →400 "This field is missing.").linkedist rein ein UI-Hinweis für die Shopware-Administration.42.008403361345). Eine einfache, ungerundete Python-Float-Division (gross / (1 + tax_rate/100)) reproduziert das nahezu exakt (42.00840336134454) — genau das war Christians Rundungssorge, und eine 2-Dezimalstellen-Rundung hätte sie tatsächlich bestätigt.Steuersatz-Ermittlung (neu, kein Vorbild in Julian/Marcel):
Item.taxes→Item Tax Template→Item Tax Template Detail.tax_rategibt den Satz (z.B.19.0), gematcht gegen ShopwaresPOST /api/search/tax-Entitäten pertaxRate. Kein Item Tax Template zugeordnet →skipped_no_tax_ratestatt geraten.Bekannte, dokumentierte Einschränkung: zwei Storefronts mit gleicher Currency aber unterschiedlichem Preis für dasselbe Item lassen sich mit einem flachen
price-Array nicht abbilden (Shopwares Lösung wären Advanced-Pricing-ruleId-Einträge, bewusst nicht übernommen — zu viel Komplexität für den Issue-Scope). Wird live-verifiziert alsfailederkannt statt stillschweigend ein Preis zu bevorzugen.Weitere Punkte:
price-Array mit einem Eintrag je distinct Currency über alle aktiven Storefronts des Items (mehrfach-Currency-Array-Unterstützung laut offizieller Shopware-Doku bestätigt, in der Test-Instanz mangels CHF-Konfiguration aber nicht live durchgetestet).skipped_no_price.shopware_product_id(#16); Templates/Varianten bleiben #19.Shopware Account.Volle Begründung: docs/architecture.md#issue-18.
Live-Round-Trip inkl. Preis-Konflikt-Fall erfolgreich getestet (Testdaten danach entfernt). Deploy auf den 4 App-Containern durchgeführt.