Modul:Lagerampel

Aus WEB-Shop Software Wiki
Zur Navigation springenZur Suche springen

Lagerampel

Anleitung zum Einbau einer Lagerampel in die ECB

Um eine Produktanzeige in der ECB zu realiseren genügt es die Templates entsprechend anzupassen.

Rahmenbedingungen

Wir möchten eine Lagerampel realisieren die bei einem Lagerbestand von 0 rot, bis 2 gelb und ab 3 Stück grün anzeigt.

Änderungen für die einfache Lagerampel

Hierfür folgendes an passender Stelle in der Datei snippets/product_item_listing.html ergänzen:

{if $item.PRODUCTS_QUANTITY >= 3}
  green
{elseif $item.PRODUCTS_QUANTITY > 0}
  yellow
{else}
  red
{/if}

Für die anzeige der Lagerampel beim Produkt ist die entsprechende Produkt-Darstellung zu bearbeiten, z.B. module/product_info/product_info_v1.html Hier wird die Anzeige über folgenden Code realisiert

{if $PRODUCTS_QUANTITY >= 3}
  green
{elseif $PRODUCTS_QUANTITY > 0}
  yellow
{else}
  red
{/if}

Limit über das Backend

Du möchtest das Limit (von gelb auf grün) im Backend komfortabel einstellen können, auch das ist mit der ECB ohne Modifizierung der Core-Dateien möglich!

Im Backend gibt es unter Konfiguration->Artikel Listen Optionen. Hier würde ich vorschlagen bauen wir das Element ein, da es für die Produkt-Darstellung selbst keine stelle gibt. Die Url des o.g. Admin-Menus enthält den Parameter "gId=8", diese benötigen wir um das Element in der DB anzulegen.

Das Menu-Element soll "PRODUCT_TRAFFIC_LIGHT_GREEN" heißen und in der Liste oben erscheinen (sort_order=1)

insert into configuration
  (configuration_key, configuration_value, configuration_group_id, sort_order, date_added)
values
  ('PRODUCT_TRAFFIC_LIGHT_GREEN', '3', 8, 1, now())

Nun wird es schon angezeigt, jedoch fehlen noch die entsprechenden Texte. Öffne oder erstelle die Datei "templates/DeinTemplate/lang/german/admin/configuration.php"

Wenn Du die Datei erstellt hast beginne sie mit '<?php' in der ersten Zeile.

Füge in die Datei die nötige Beschreibung ein:

define('PRODUCT_TRAFFIC_LIGHT_GREEN_TITLE', 'Lagerampel Schwellwert gr&uuml;n');
define('PRODUCT_TRAFFIC_LIGHT_GREEN_DESC', 'Lagervorrat der erreicht werden muss damit die Lagerampel auf gr&uuml;n springt');

Nun kannst Du in den Template-Dateien den Wert "3" durch den Ausdruck $smarty.const.PRODUCT_TRAFFIC_LIGHT_GREEN ersetzen

{if $PRODUCTS_QUANTITY > $smarty.const.PRODUCT_TRAFFIC_LIGHT_GREEN}

Entsprechend kannst du den Schwellwert für rot->gelb im Backend definieren.