Dienstag, 21. August 2007 Druck-Ansicht
xt:Commerce bietet keine Funktion, mit der man die (vielfach gewünschten) Icons für den Warenbestand ausgeben kann. Abhilfe gibt’s mit dieser Lösung - ohne Zusatzmodul - und direkt im Template: Mit einem Smarty-Modifier lassen sich solche “Lager-Ampeln” bei jedem angezeigten Produkt erzeugen.
Kurzbeschreibung
Download
» StockImage_by_ProductsID.zip (Version 1.0, 21. August 2007)
Kurzanleitung
Code-Beispiele
{$PRODUCTS_ID|StockImage_by_ProductsID}
// Für den Einsatz auf Produkt-Detail-Seiten
{$module_data.PRODUCTS_ID|StockImage_by_ProductsID}
// Für den Einsatz in Auflistungen
Auf eine Nachfrage per E-Mail hin hier eine kleine Erklärung, wie man die “Ampel” konfiguriert.
Für die Auswahl der Bilder und die Bestandsgrenzen ist die Variable $ImageConfig zuständig. Das sieht im Code in etwa so aus (einen Zeilenumbruch hab ich noch gesetzt, damit man hier nicht so viel scrollen muss) …
$ImageConfig = array
( '0' => array ( 'img' => 'Ampelbild0.gif',
'alt' => 'Lager leer' ),
'2' => array ( 'img' => 'Ampelbild1.gif',
'alt' => 'Bestand knapp' ),
'4' => array ( 'img' => 'Ampelbild2.gif',
'alt' => 'Auf Lager' ),
'6' => array ( 'img' => 'Ampelbild3.gif',
'alt' => 'Lager voll' ) );
Damit “kennt” die Ampel vier Zustände - bei Null bis zwei Produkten wird “Ampelbild0.gif” mit dem Alternativtext “Lager leer” gezeigt. Bei zwei und drei Produkten entsprechend das nächste … Man kann auf die Weise beliebig viele “Lagerzustände” mit beliebigen Grenzen festlegen.
Die Ampelbilder können in einem beliebigen Ordner im Template abgelegt werden, ich bin davon ausgegangen, dass der Bilder-Ordner “images” heißt:
$ImagePath = HTTP_SERVER.DIR_WS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/images/';
Wenn die Ampelbilder woanders gespeichert sind, einfach den Pfad anpassen:
$ImagePath = HTTP_SERVER.DIR_WS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/woanders/';
Einige Artikel-Auflistungen arbeiten mit $products_data und nicht mit $module_data - Dort wäre dann (siehe Frage von Igor) für die Anzeige der Bestands-Ampel Folgendes einzutragen:
{$products_data.PRODUCTS_ID|StockImage_by_ProductsID}
// zum Beispiel in der cross_selling.html
Hinweis:
Momentan bin ich dabei, eine Sammlung solcher “kleinen Helfer” für xt:Commerce zusammenzustellen, und dieser Modifier ist ein Teil davon. Damit es keine “Doppelbenennungen” gibt, sind die Funktions-Namen noch ein bisschen zu “ausführlich” und damit reichlich lang.
Für diese Tools muss ich mir noch eindeutige Abkürzungs-Regeln einfallen lassen, damit man im Template nicht mehr so viel tippen muss. Wenn die Benennung für Sie zu “sperrig” ist, können Sie die Datei natürlich nach Ihren Wünschen umbenennen. Der Name der Hauptfunktion darin muss dann ebenfalls angepasst werden.
Bookmarks, Feed und Links
Wenn Ihnen dieser Beitrag geholfen hat ...
Beiträge zu ähnlichen Themen:
101 Antworten zu Warenbestands-Ampel mit xt:Commerce
Kommentar schreiben