7. Juni 2015

Shopware 4: Größere Produktbilder, was passiert mit den alten?

By Sven Meister In Shopware

Ich stand vor kurzem vor dem Problem, dass ich in Shopware neue Produktbilder haben wollte, in größeren Dimensionen, um den Kunden mittels der bekannten Lupe eine genauere Ansicht anzubieten.

Problem nur: Etwa 1000 Produkte mit Produktbildern in der Größe 800×800 existieren, diese zu überarbeiten wäre Wahnsinn, da die Originalbilder nicht mehr vorhanden sind.

Also müssen die „alten Bilder“ weiterhin im Shop genutzt werden und mit jedem neuen Produkt – was in der Modebranche zu Häuf vorkommt – werden die neuen Bilder eingestellt.

Unter Shopware kann man nun eine neue Thumbnailgröße erstellen und diese mittels einer Templateanpassung nutzen. NUR: Mehrere tausend neue Thumbnails in der neue Größe erstellen zulassen dauert nicht nur ewig, sondern nimmt auch enorm viel Speicherplatz in Anspruch und am Ende hat man 99% Produkte mit Produktbildern, die zB von 800x800px (alte Größe) auf 1200×1200 (neue Größe) skaliert werden, das geht natürlich gar nicht, da die Bilder dann total unscharf wären.

Um das Problem zu umgehen, habe ich die image.tpl um eine Abfrage erweitert; Ich habe unter Shopware ein zusätzliches Artikelattribut angelegt, wenn dieses aktiviert ist, also bei allen neuen Artikeln, dann zeigt mir der Shop das Produktbild in der neuen Größe an. Wenn das Feld nicht aktiviert ist, also bei allen bestehenden Produkten, dann wird auf die alte Größe zurückgegriffen. Das funktioniert wunderbar und erspart mir das neu erstellen von tausenden Thumbnails die dann alle unscharf wären.

Shopware neue Produktbilder

Jetzt können die neuen Produkte nach und mit der neuen Größe angelegt werden, ich kann die verbesserte Detailansicht nutzen, und bei den alten Produkten bleibt es wie immer, diese fliegen nach und nach eh raus und werden durch neuere Modelle ersetzt.

Codeschnipsel der image.tpl:

<a id=“zoom1″ href=“{if {$sArticle.attr5}}{$sArticle.image.src.6}{else}{$sArticle.image.src.5}{/if}“ title=“{if $sArticle.image.res.description}{$sArticle.image.res.description}{else}{$sArticle.articleName}{/if}“ {if {config name=sUSEZOOMPLUS}}class=“cloud-zoom“{/if} rel=“lightbox[{$sArticle.ordernumber}]“>
<img src=“{$sArticle.image.src.5}“ alt=“{$sArticle.articleName}“ title=“{if $sArticle.image.res.description}{$sArticle.image.res.description}{else}{$sArticle.articleName}{/if}“ />
</a>

Was sagst du?