Storefront-Zuordnung pro Bestellung #29

Closed
opened 2026-05-10 16:46:33 +00:00 by csaeum · 1 comment
csaeum commented 2026-05-10 16:46:33 +00:00 (Migrated from gitlab.localdomain)

Beim Bestellungsimport die Bestellung dem richtigen Storefront zuordnen:

  • Shopware Sales Channel ID aus der Bestellung auslesen
  • Über das Storefront-Mapping den zugehörigen Shopware Storefront DocType ermitteln
  • ERPNext Company, Preisliste und Warehouse aus dem Storefront übernehmen
  • Sales Order dem richtigen ERPNext-Mandanten zuweisen
  • Bestellungen ohne bekanntes Storefront in Error Log schreiben und überspringen
Beim Bestellungsimport die Bestellung dem richtigen Storefront zuordnen: - Shopware Sales Channel ID aus der Bestellung auslesen - Über das Storefront-Mapping den zugehörigen `Shopware Storefront` DocType ermitteln - ERPNext Company, Preisliste und Warehouse aus dem Storefront übernehmen - Sales Order dem richtigen ERPNext-Mandanten zuweisen - Bestellungen ohne bekanntes Storefront in Error Log schreiben und überspringen
Owner

Geschlossen ohne neuen Code

Alle fünf Punkte aus dem Issue-Text sind bereits durch #27 vollständig umgesetzt (und in #28s vollem import_orders()-Lauf erneut live mitgetestet), geprüft direkt im aktuellen ecommerce_integrations/shopware6/api/order.py:

  • Sales Channel ID auslesen: order_data.get("salesChannelId") in _create_sales_order().
  • Storefront-Mapping ermitteln: _resolve_storefront() — Lookup über shopware_account + sales_channel_id + is_active.
  • Company/Preisliste/Warehouse übernehmen: so.company = storefront.company, so.selling_price_list = storefront.price_list, storefront.warehouse wird jeder Bestellposition mitgegeben.
  • Sales Order dem richtigen Mandanten zuweisen: ergibt sich direkt aus so.company.
  • Unbekanntes Storefront → Error Log + Skip: _OrderSkip("skipped_no_storefront", ...) — wird von import_orders()s Exception-Handler per frappe.log_error() protokolliert (bewusst nicht wie skipped_cancelled ausgenommen) und übersprungen.

Marcels Fork geprüft: sein Shopware Setting.sales_channels-Child-Table (doctype/shopware_setting/shopware_setting.py) löst ein anderes Problem — Multi-Channel-Branding/Sichtbarkeit bei einer Company, nicht unser Multi-Company-pro-Storefront-Modell, das Shopware Storefront (#7) für den DACH-Anwendungsfall bereits abdeckt. Kein zusätzlicher Design-Fund, nichts zu übernehmen.

#27s eigene Doku hatte #29 bewusst offen gelassen ("stays open for review even though the basic lookup already runs here") statt es stillschweigend als erledigt anzunehmen — dieser Issue schließt diese Lücke jetzt explizit, mit tatsächlicher Prüfung statt Annahme.

Details: docs/architecture.md#issue-29

## Geschlossen ohne neuen Code Alle fünf Punkte aus dem Issue-Text sind bereits durch #27 vollständig umgesetzt (und in #28s vollem `import_orders()`-Lauf erneut live mitgetestet), geprüft direkt im aktuellen `ecommerce_integrations/shopware6/api/order.py`: - **Sales Channel ID auslesen**: `order_data.get("salesChannelId")` in `_create_sales_order()`. - **Storefront-Mapping ermitteln**: `_resolve_storefront()` — Lookup über `shopware_account` + `sales_channel_id` + `is_active`. - **Company/Preisliste/Warehouse übernehmen**: `so.company = storefront.company`, `so.selling_price_list = storefront.price_list`, `storefront.warehouse` wird jeder Bestellposition mitgegeben. - **Sales Order dem richtigen Mandanten zuweisen**: ergibt sich direkt aus `so.company`. - **Unbekanntes Storefront → Error Log + Skip**: `_OrderSkip("skipped_no_storefront", ...)` — wird von `import_orders()`s Exception-Handler per `frappe.log_error()` protokolliert (bewusst nicht wie `skipped_cancelled` ausgenommen) und übersprungen. **Marcels Fork geprüft**: sein `Shopware Setting.sales_channels`-Child-Table (`doctype/shopware_setting/shopware_setting.py`) löst ein anderes Problem — Multi-Channel-Branding/Sichtbarkeit bei **einer** Company, nicht unser Multi-Company-pro-Storefront-Modell, das `Shopware Storefront` (#7) für den DACH-Anwendungsfall bereits abdeckt. Kein zusätzlicher Design-Fund, nichts zu übernehmen. #27s eigene Doku hatte #29 bewusst offen gelassen ("stays open for review even though the basic lookup already runs here") statt es stillschweigend als erledigt anzunehmen — dieser Issue schließt diese Lücke jetzt explizit, mit tatsächlicher Prüfung statt Annahme. Details: [docs/architecture.md#issue-29](https://git.web-seo-consulting.eu/Frappe-Projekte/ecommerce_integrations/src/branch/shopware6-dach/docs/architecture.md#issue-29-per-order-storefront-assignment--closed-without-new-code)
Sign in to join this conversation.
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Frappe-Projekte/ecommerce_integrations#29
No description provided.