Wie Produktbilder austauschen?

Hallo zusammen,

einer unserer Lieferanten hat sein komplettes Sortiment mit neuen Bildern ausgestattet, die ich gerne in unseren Shop übernehmen will. Es geht um 100 Artikel mit zusammen ca. 500 Bildern. Daher kurz und schmerzlos meine Frage:

Wie bekomme ich zuerst die alten Bilder und insbesondere deren Zuordnungen zu den Produkten aus dem Shop raus? Mit einem einfachen Löschen aus der Medienverwaltung wird es nicht getan sein, oder? Ein anschließender Import der neuen Bilder ist kein Problem.

Danke und Grüße
PIerre

Hallo?

Ist die Dateibezeichnung der neuen Bilder identisch zu den alten Bildern?
Wenn ja, versuch doch einfach mal die neuen Bilder per FTP in das Verzeichnis der Originalbilder zu laden und generiere dann die Thumbnails neu.

Leider nein. Ist auch wegen Browsercaching laut Doku keine empfehlenswerte Vorgehensweise.

Hmm, dann wird wahrscheinlich nur der Weg über die DB gehen.
Ich würd mir mal einen der betroffenen Artikel schnappen und in einer Testumgebung in der Tabelle s_articles_img die entsprechenden Einträge löschen.
Dann sollten die Bilder im Reiter Bilder beim Artikel nicht mehr vorhanden sein, die Verknüpfung also weg sein.
 

1 Like

Das könnte gehen. Vorausgesetzt, man muss nicht noch in anderen Tabellen was löschen. Die betreffenden Article-IDs rauszufinden, ist auch nicht ganz einfach… Bin eher nicht so der Freund von Datenbankoperationen am System vorbei. Könnte noch jemand verfizieren, dass man das so machen kann oder ob das evtl. unerwünschte Nebeneffekte hat?

Wieso exportierst Du nicht einfach alle Artikel als CSV und fügst dann die neuen Bilder als URL ein? Diese kannst Du ja vorher irgendwo auf den Server laden, damit Shopware diese dann von da holen kann. Somit ist der Pfad immer der selbe bis auf den Dateinamen. Wink

Und wieso sollte man die Bilder über den Medienmanager eiegntlich nicht löschen können?

 

Klar kann man die Bilder über den Medienmanager löschen, aber das löscht leider nicht die Veknüpfuingen zu den - dann fehlenden - Bildern beim jeweiligen Artikel. Und per Import kann man nur neue Bilder hinzufügen, gelöscht werden kann mit einem Import überhaupt nichts.

DELETE FROM s_articles_img;
DELETE FROM s_articles_img_attributes;
DELETE FROM s_article_img_mappings;
DELETE FROM s_article_img_mapping_rules;

Dann probier halt mal das hier… Wink

Weiß nicht ganz, ob das noch aktuelle so ist, aber vielleicht kann da ja jemand von Shopware was dazu sagen!? Oder eben so hochladen, also über CSV und danach den Media Garbage Collector Cron anschmeissen.

Vorher natürlich immer schön die DB sowie alle Files sichern!

Nee, umgekehrt. Der Media Garbage Collector löscht doch nur die Bilder, die KEINE Verknüpfung beim Artiklel mehr haben. Ich kann auch nicht die kompletten Tabellen leer machen, weil ich noch andere Produkte im Shop hab, die das nicht betrifft. Ich muss mir von Hand die Artikel-IDs zusammenfriemeln, das ist zwar weniger Arbeit als jedes Bild über das Backend aus dem Artikel zu entfernen, schön isses aber trotzdem nicht. Wenn dann noch 4 Tabellen involviert sind, kann das ziemlich heikel werden…

Die oben genannten Befehle sind radikal, besser nicht. :wink:
Schau mal in die anderen Tabellen, bei uns ist da nichts drin, dann reicht die Tabelle s_articles_img .
Ist halt ein bischen Arbeit, aber sonst geht es nur über jeden Artikel einzeln öffnen und Zuweisung entfernen.
Hast Du jemanden, der Access kann? Dann geht es schneller.

@simplybecause schrieb:

Die oben genannten Befehle sind radikal, besser nicht. ;)

No risk, no fun!  Sticking-out-tongue

Grin

Jo, ich denk, wenn außer den genannten vier Tabellen (von denen drei ja leer sind) sonst keine Tabelle involviert ist, krieg ich das schon hin. Ich kann mir in der Artikeltabelle ein Statement bauen, was mir alle betroffenen.Article-IDs ausgibt.

Vielen Dank schon mal an euch!

Das Löschen könnte man sicher auch über die API erledigen, sofern die IDs der betroffenden Bilder bekannt ist. Das ist das jedenfalls eine saubere Sache als manuell in der DB zu arbeiten. Und sollte dieser Bildertausch öfters passieren, dann vielleicht mal über eine Schnittstelle nachdenken. Nur so eine Idee.