Wie kann man eigentlich ein physisches Produkt nachträglich in ein digitales Produkt umwandeln? Oder wie kann man man digitale Inhalte nachträglich einbinden? Also in SW5 war das möglich.
Gibt’s ein Feedback allerdings mit wenig Beteiligung: Convert digital <> physical products – Have an idea? Share it!
Oh je als Feedback - dann vielleicht in 3 Jahren oder so - wenn überhaupt ![]()
Diese Erfahrung habe ich leider auch gemacht. Dann manuell anlegen.
Bin nur darauf gestoßen, weil bei einer Migration einige Produkte nicht als digitale Produkte vom SW5 System erkannt wurden und diese jetzt als physische Produkte angelegt wurden. Tja, Umstellen geht nicht. Also wieder Mehraufwand weil alles neu anlegen ![]()
Neu anlegen musst du die vermutlich nicht.
In der Administration ist der Typ gesperrt und die Download-Karte gibts nur bei digitalen Produkten. Im Code steckt aber noch ein anderer Weg: Der Produkt-Indexer setzt den Typ selbst auf digital, sobald ein Produkt einen Download hat. So repariert Shopware das auch in einer eigenen Migration.
Du kannst dem bestehenden Produkt also über die Admin-API einen Download anhängen:
PATCH /api/product/<produkt-id>
{
"downloads": [
{ "mediaId": "<media-id der datei>", "position": 0 }
]
}
Die Datei vorher in der Medienverwaltung in den Ordner „Product downloads“ hochladen, der ist privat. In einem normalen Ordner wäre sie öffentlich abrufbar. Danach sollte das Produkt als digital mit Download-Karte erscheinen. Falls nicht, nochmal bin/console dal:refresh:index --only=product.indexer laufen lassen.
Selbst getestet habe ich das nicht, das ist aus dem Code von 6.7.16. Deshalb erst an einem Produkt ausprobieren, am besten auf einer Kopie vom Shop. Mit dem kommenden 6.8 fällt der Weg vermutlich weg, da zählt dann nur noch das Typ-Feld. Umstellen würde ich die Produkte also vorher.
Warum die Produkte bei der Migration physisch geworden sind: Der Migrationsassistent macht einen Artikel nur dann digital, wenn es in SW5 einen Eintrag in s_articles_esd mit Datei gibt. ESD-Artikel ohne hinterlegte Datei oder mit einer Datei die beim Migrieren nicht geladen werden konnte, landen als physisch. Die sollten auch im Log der Migration auftauchen, dann siehst du gleich welche betroffen sind.
Ja ich hatte schon überlegt das ggf. über die API zu regeln. Wäre mir lieber als die Produkte im Backend neu anlegen zu müssen.