EAN/GTIN, Zollnummer, Herstellerangaben (Brand) und Gewicht an Shopware pushen #36
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#36
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?
Ziel
Aus dem Scoping in #32 abgeleitet: vier PIM-typische Artikeldaten sind bereits native, bisher ungenutzte ERPNext-
Item-Felder und sollten wie die übrigen Artikeldaten (#16-#20) nach Shopware gepusht werden.Betroffene ERPNext-Felder (alle nativ, live gegen die echte Bench bestätigt)
Item.barcodes(Table →Item Barcode,barcode_type="EAN") — EAN/GTINItem.customs_tariff_number(Link →Customs Tariff Number) — ZollnummerItem.brand(Link →Brand) — Herstellerangabe (beide Referenz-Forks nutzen unabhängig voneinander genau dieses Feld als Shopware-„manufacturer"-Äquivalent, da Shopware kein separates Brand-Konzept kennt)Item.weight_per_unit/Item.weight_uom— GewichtReferenzcode (aus #32s Recherche)
product_sync/engine/canonical.py,product_sync/api.py:_resolve_ean()): EAN ausItem Barcode, Manufacturer ausItem.brand.brand-als-Manufacturer-Ansatz, dieselbeItem Barcode-Nutzung.Zu klären bei der Umsetzung (noch nicht live verifiziert)
Die genauen Shopware-seitigen Feldnamen (
ean,manufacturerNumber,manufacturerId, ggf.customFields-Slot für Zollnummer) sind aus dem Referenzcode plausibel, aber noch nicht live gegen die echte Shopware-API dieses Projekts bestätigt (Netzwerkproblem beim #32-Scoping verhinderte den Live-Check aus dem ERPNext-Container heraus). Vor Umsetzung live prüfen, wie in #16-#22 etabliert.Design-Vorschlag (grob, im Umsetzungs-Plan zu verfeinern)
Reine Verdrahtung nach dem #16-#20-Muster: ein
PATCH /api/product/{id}pro Item (ggf. zusammen mit einem bestehenden Push wie "Push Items"/#16, statt eines weiteren separaten Buttons — im Plan zu entscheiden), targetiert dieselbe Item-Menge wie #16-#20.Explizit außerhalb des Scopes
Umgesetzt in
e01bd97aufshopware6-dach(neuer Button "Push Product Data" auf Shopware Account, Modulshopware6/api/product_data.py).Live gegen
erpnext-sync/sw6-erpnextverifiziert - die im Issue offen gelassenen Shopware-Feldnamen:ean-Feld am ProduktmanufacturerId, per Name gegenproduct-manufactureraufgelöst/angelegt (Get-or-Create, gleiches Muster wie die Property-Group-Behandlung inproduct.py)weightin Kilogramm (Umrechnung aus den vier in dieser Bench vorhandenen Gewichts-UOMs; ein Artikel mit Gewicht aber nicht zuordenbarer UOM wird übersprungen statt geraten)pickware_shipping_customs_information_tariff_number) - kein neues Shopware Custom Field nötigKein Delta-Sync (anders als #22/#31) - diese Daten ändern sich selten, kein Scheduler geplant, daher immer ein voller Push je Lauf.
Live-Test: Test-Item mit allen vier Feldern bestückt (Brand, Zollnummer, EAN-Barcode, Gewicht in kg) und gepusht - alle vier Werte korrekt in Shopware angekommen (inkl. neu angelegter Manufacturer-Entität). Dabei einen Zählfehler gefunden und behoben: ein Artikel mit ausschließlich einer nicht zuordenbaren Gewichts-UOM wurde doppelt gezählt (
skipped_no_weight_uom+skipped_no_data). Test-Fixtures danach in ERPNext wieder entfernt.