Appearance
Import-Befehle (Pimcore)
Daten aus dem alten Pimcore-System kommen über Artisan-Befehle ins PIM, nicht über die Oberfläche. Der Datenimport im PIM ist für Excel/CSV gedacht.
Alle Befehle sind idempotent: Ein zweiter Lauf aktualisiert, statt doppelt anzulegen (Zuordnung über external_entity_map bzw. Pimcore-IDs).
Ausführen lokal mit ddev exec php artisan …, auf dem Server mit docker compose exec admin php artisan … in ~/stacks/apps.
import:pimcore: Katalog
bash
php artisan import:pimcore --dry-run
php artisan import:pimcore
php artisan import:pimcore --only=articles --only=products
php artisan import:pimcore --sample=10 --skip-media-references| Option | Bedeutung |
|---|---|
--only=* | Nur bestimmte Phasen: manufacturers, series, models, categories, articles, spare-parts, products, vehicle-relations, roles, article-groups |
--limit= | Höchstzahl je Phase |
--sample= | Deterministische Stichprobe in Prozent (Artikel, Ersatzteile, Produkte, Gruppen) |
--skip-media-references | Medienverknüpfungen auslassen |
--dry-run | Nur zählen |
Quelle ist die Datenbankverbindung pimcore (Schema matev_pimcore_source). Reihenfolge: Hersteller → Traktor-Serien → Modelle → Kategorien (Taxonomie) → Artikel → Produkte → Produkt-Artikel-Rollen. Bestellungen, Kunden und Bricks gehören nicht dazu.
import:pimcore hat keine Optionen --export/--from; er braucht direkten Zugriff auf die Pimcore-Datenbank.
import:pimcore:dealers: Händler, Händlerbenutzer, Mitarbeiter
bash
php artisan import:pimcore:dealers --dry-run
php artisan import:pimcore:dealers --staff-database=<db-mit-backoffice-benutzern>Importiert:
- Händlerfirmen als Organisationen, Standorte dazu,
- Händlerbenutzer (Pimcore-Rollen ADMIN/USER werden
dealer_owner/dealer_staff), - Pimcore-Mitarbeiter mit Gruppen und Rechten (z. B. „Redakteure“ →
matev_pim_editor).
Passwörter: Bestehende Konten werden nie angefasst. Nur neu angelegte Händlerbenutzer übernehmen den bcrypt-Hash aus Pimcore. Mitarbeiter bekommen ein zufälliges Passwort und eine Einladung.
import:pimcore:orders: Bestellungen und Angebote
bash
php artisan import:pimcore:orders --dry-run
php artisan import:pimcore:ordersImportiert Bestellungen und Angebote der Händler als schreibgeschützte Historie (Reiter „Bestellungen“/„Angebote“ beim Händler). Setzt voraus, dass import:pimcore:dealers vorher gelaufen ist.
Export und Import über eine Datei
Auf dem Produktionsserver ist die Pimcore-Datenbank nicht erreichbar. Dafür haben import:pimcore:dealers und import:pimcore:orders zwei Optionen:
| Option | Bedeutung |
|---|---|
--export=<datei> | Nur den Datensatz aus Pimcore lesen und in diese Datei schreiben. Nichts importieren. Die Datei bekommt Rechte 0600 |
--from=<datei> | Statt aus der Datenbank aus dieser Datei importieren |
--connection= | Pimcore-Verbindung, Standard pimcore |
--dry-run | Nur zählen |
Ablauf:
bash
# 1. Lokal, wo Pimcore erreichbar ist. Datei AUSSERHALB des Repositorys ablegen.
ddev exec php artisan import:pimcore:dealers --export=/tmp/dealers.json
ddev exec php artisan import:pimcore:orders --export=/tmp/orders.json
# 2. Datei sicher auf den Server bringen (scp) und in den Container geben.
# 3. Auf dem Server importieren, Reihenfolge einhalten
php artisan import:pimcore:dealers --from=/pfad/dealers.json --dry-run
php artisan import:pimcore:dealers --from=/pfad/dealers.json
php artisan import:pimcore:orders --from=/pfad/orders.json
# 4. Dateien sofort löschen: lokal, auf dem Server, im Container
rm /pfad/dealers.json /pfad/orders.jsonDatenschutz: Exportdateien
Die Exportdateien enthalten personenbezogene Daten: Namen, Adressen, E-Mail-Adressen und (bei Händlern) Passwort-Hashes.
- Niemals committen. Es gibt keine
.gitignore-Regel, die sie abfängt. Legen Sie sie außerhalb des Repositorys ab (z. B./tmp), nie unteradmin/. - Nach dem Import sofort löschen, überall, wo sie lagen: lokal, auf dem Server, im Container.
- Nicht per Mail, Chat oder Ticket verschicken.
Weitere Pimcore-Befehle
Für die Medien gibt es eigene Befehle (import:assets, import:assets:rollback, import:assets:map-taxonomy, import:assets:verify), außerdem import:pimcore:sync-taxonomy und import:pimcore:project-designations. Hinweise dazu in Deployment (Betrieb).