Diese Funktion muss ggf. durch das Team von FrachtPilot freigeschaltet werden.
Die Funktion ermöglicht den spaltenbasierten Import von Produktpreisen für verschiedene Kundengruppen.
Sie kann sowohl Standard-Produktpreise als auch kundengruppen-spezifische Preise aktualisieren und optional bestehende Bestellungen mit den neuen Preisen aktualisieren.
Die Import-Datei muss folgende Header-Zeile (Zeile 1) enthalten:
| Spalte A | Spalte B | Spalte C | Spalte D | ... |
|---|
internal_number | product oder regular_product | Kundengruppen-Name oder /api_v2/customer_group/123 | Weitere Kundengruppen... | |
internal_number - Die Artikelnummer des Produkts
- Mindestens eine Preisspalte (entweder Produktpreis oder Kundengruppen-Preis)
product oder regular_product - Standard-Produktpreis
- Kundengruppen-Spalten - Name der Kundengruppe oder API-Pfad
| internal_number | product | Einzelhandel | Großhandel | VIP-Kunden |
|---|
| ART001 | 10.50 | 12.99 | 9.50 | 8.99 |
| ART002 | 5.25 | | 4.75 | 4.50 |
| ART003 | | 15.00 | | 13.50 |
- Liest Excel/CSV-Datei (alle gängigen Formate unterstützt)
- Erkennt automatisch Spalten-Typen aus der ersten Zeile
- Konvertiert Preise automatisch (unterstützt Komma und Punkt als Dezimaltrennzeichen)
Die Funktion analysiert die erste Zeile und identifiziert:
| Spalten-Typ | Erkennung | Beschreibung |
|---|
| Artikelnummer | internal_number | Eindeutige Produkt-ID |
| Produktpreis | product oder regular_product | Standard-Verkaufspreis |
| Kundengruppe | Kundengruppen-Name oder /api_v2/... | Spezielle Preise pro Kundengruppe |
price_type = "price_gross" → Ihre Eingabe wird als Brutto-Preis interpretiert
price_type = "price_net" → Ihre Eingabe wird als Netto-Preis interpretiert
- Automatische MwSt-Berechnung basierend auf dem Steuersatz des jeweiligen Produkts
| Situation | Aktion | Ergebnis |
|---|
| Neuer Preis | Zelle enthält Preis, war vorher leer | Kundengruppen-Preis wird erstellt |
| Preis ändern | Zelle enthält anderen Preis als bisher | Bestehender Preis wird aktualisiert |
| Preis löschen | Zelle ist leer, hatte vorher einen Preis | Kundengruppen-Preis wird gelöscht → Standard-Preis greift |
| Kein Eintrag | Zelle war und bleibt leer | Keine Änderung |
| internal_number | product |
|---|
| ART001 | 12.99 |
Ergebnis: Produkt ART001 erhält neuen Standard-Preis 12,99€
Kundengruppen Produkt Preis Import - Spaltenbasiert
Diese Funktion ermöglicht den **spaltenbasierten Import von Produktpreisen
** für verschiedene Kundengruppen. Sie kann sowohl Standard-Produktpreise als auch kundengruppen-spezifische Preise aktualisieren und optional bestehende Bestellungen mit den neuen Preisen aktualisieren.
Die Import-Datei muss folgende Header-Zeile (Zeile 1) enthalten:
| Spalte A | Spalte B | Spalte C | Spalte D | ... |
|---|
internal_number | product oder regular_product | Kundengruppen-Name oder /api_v2/customer_group/123 | Weitere Kundengruppen... | |
internal_number - Die Artikelnummer des Produkts
- Mindestens eine Preisspalte (entweder Produktpreis oder Kundengruppen-Preis)
product oder regular_product - Standard-Produktpreis
- Kundengruppen-Spalten - Name der Kundengruppe oder API-Pfad
| internal_number | product | Einzelhandel | Großhandel | VIP-Kunden |
|---|
| ART001 | 10.50 | 12.99 | 9.50 | 8.99 |
| ART002 | 5.25 | | 4.75 | 4.50 |
| ART003 | | 15.00 | | 13.50 |
- Liest Excel/CSV-Datei (alle gängigen Formate unterstützt)
- Erkennt automatisch Spalten-Typen aus der ersten Zeile
- Konvertiert Preise automatisch (unterstützt Komma und Punkt als Dezimaltrennzeichen)
Die Funktion analysiert die erste Zeile und identifiziert:
| Spalten-Typ | Erkennung | Beschreibung |
|---|
| Artikelnummer | internal_number | Eindeutige Produkt-ID |
| Produktpreis | product oder regular_product | Standard-Verkaufspreis |
| Kundengruppe | Kundengruppen-Name oder /api_v2/... | Spezielle Preise pro Kundengruppe |
price_type = "price_gross" → Ihre Eingabe wird als Brutto-Preis interpretiert
price_type = "price_net" → Ihre Eingabe wird als Netto-Preis interpretiert
- Automatische MwSt-Berechnung basierend auf dem Steuersatz des jeweiligen Produkts
| Situation | Aktion | Ergebnis |
|---|
| Neuer Preis | Zelle enthält Preis, war vorher leer | Kundengruppen-Preis wird erstellt |
| Preis ändern | Zelle enthält anderen Preis als bisher | Bestehender Preis wird aktualisiert |
| Preis löschen | Zelle ist leer, hatte vorher einen Preis | Kundengruppen-Preis wird gelöscht → Standard-Preis greift |
| Kein Eintrag | Zelle war und bleibt leer | Keine Änderung |
| internal_number | product |
|---|
| ART001 | 12.99 |
→ Ergebnis: Produkt ART001 erhält neuen Standard-Preis 12,99€
| internal_number | Einzelhandel | Großhandel |
|---|
| ART001 | 15.00 | 10.00 |
→ Ergebnis: ART001 hat verschiedene Preise je Kundengruppe
| internal_number | product | VIP-Kunden |
|---|
| ART001 | 12.99 | 9.99 |
→ Ergebnis: Standard-Preis UND VIP-Preis werden aktualisiert
| internal_number | Großhandel |
|---|
| ART001 | |
→ Ergebnis: Großhandel-Preis wird gelöscht, Standard-Preis greift
create_missing_customer_groups = True
→ Ergebnis: Unbekannte Kundengruppen werden automatisch angelegt
update_from = '2025-01-01'
update_to = '2025-12-31'
- Nur offene Bestellungen werden aktualisiert
- Ausgeschlossen: Stornierte, vorläufig oder final berechnete Bestellungen
- Timeout-Schutz: Bricht bei Zeitlimit-Überschreitung kontrolliert ab
- Logging: Zeigt Preis-Unterschiede vor/nach Update
| Fehler | Ursache | Lösung |
|---|
| "Artikelnummer nicht gefunden" | Produkt existiert nicht in FrachtPilot | Produkt zuerst anlegen |
| "Kundengruppe nicht gefunden" | Kundengruppe existiert nicht | create_missing_customer_groups=true setzen |
| "Preis konnte nicht konvertiert werden" | Ungültiges Preis-Format | Zahlenformat prüfen (z.B. 12.99 statt 12,99) |
| "Spalte internal_number nicht gefunden" | Header-Zeile fehlerhaft | Erste Zeile muss internal_number enthalten |
| Parameter | Typ | Beschreibung | Standard |
|---|
file | Datei | Excel/CSV-Datei mit Preisen | Pflicht |
price_type | Text | "price_gross" oder "price_net" | "price_gross" |
sheet_name | Text | Name des Excel-Sheets | Automatisch |
create_missing_customer_groups | Checkbox | Unbekannte Kundengruppen automatisch erstellen | false |
update_from | Datum | Bestellungen ab diesem Datum aktualisieren | Keine |
update_to | Datum | Bestellungen bis zu diesem Datum aktualisieren | Keine |
| internal_number | Einzelhandel | Großhandel | |
| ----------------- | -------------- | ---------------------------------------------- | |
| ART001 | 15.00 | 10.00 | |
→ Ergebnis: ART001 hat verschiedene Preise je Kundengruppe
| internal_number | product | VIP-Kunden |
|---|
| ART001 | 12.99 | 9.99 |
→ Ergebnis: Standard-Preis UND VIP-Preis werden aktualisiert
| internal_number | Großhandel |
|---|
| ART001 | |
→ Ergebnis: Großhandel-Preis wird gelöscht, Standard-Preis greift
create_missing_customer_groups = True
→ Ergebnis: Unbekannte Kundengruppen werden automatisch angelegt
update_from = '2025-01-01'
update_to = '2025-12-31'
- Nur offene Bestellungen werden aktualisiert
- Ausgeschlossen: Stornierte, vorläufig oder final berechnete Bestellungen
- Timeout-Schutz: Bricht bei Zeitlimit-Überschreitung (15 Minuten) kontrolliert ab
- Logging: Zeigt Preis-Unterschiede vor/nach Update
| Fehler | Ursache | Lösung |
|---|
| "Artikelnummer nicht gefunden" | Produkt existiert nicht in FrachtPilot | Produkt zuerst anlegen |
| "Kundengruppe nicht gefunden" | Kundengruppe existiert nicht | create_missing_customer_groups=true setzen |
| "Preis konnte nicht konvertiert werden" | Ungültiges Preis-Format | Zahlenformat prüfen (z.B. 12.99 statt 12,99) |
| "Spalte internal_number nicht gefunden" | Header-Zeile fehlerhaft | Erste Zeile muss internal_number enthalten |
| Parameter | Typ | Beschreibung | Standard |
|---|
file | Datei | Excel/CSV-Datei mit Preisen | Pflicht |
price_type | Text | "price_gross" oder "price_net" | "price_gross" |
sheet_name | Text | Name des Excel-Sheets | Automatisch |
create_missing_customer_groups | Checkbox | Unbekannte Kundengruppen automatisch erstellen | false |
update_from | Datum | Bestellungen ab diesem Datum aktualisieren | Keine |
update_to | Datum | Bestellungen bis zu diesem Datum aktualisieren | Keine |