Zunächst eine Verständnisfrage um sicher zu gehen, dass ich das standardmäßig aktive Lieferzeit-System in Shopware richtig verstanden habe: Bei Lagerbestand 0 wird normalerweise ein roter Button und eine konfigurierbare, aber immer gleiche Meldung angezeigt (z. B. “Nicht lieferbar” oder “Lieferbar innerhalb 4 Wochen”). Diese ist bei allen roter-Button-Artikeln gleich, kann also nur für alle gleichzeitig geändert werden. Bei Lagerbestand 0 und einem Eintrag bei Lieferzeit (z. B. “5-10”) wird stattdessen ein gelber Button und die eingetragene Lieferzeit (hier: 5 bis 10 Tage) angezeigt. Dieser Eintrag ist natürlich bei jedem Artikel anders wählbar. Nur wenn der Lagerbestand > 0 ist wird ein grüner Button angezeigt und eine für alle “grünen” Artikel gleiche Meldung, z. B. “Jetzt lieferbar” oder “sofort lieferbar”. Richtig so weit? Für mein Projekt wäre es wünschenswert, noch weitere Buttonfarben und dazugehörige Meldungen einpflegen zu können. Wie kann man so etwas erreichen? Beispiel: hellgrauer Button != innerhalb 2 Wochen dunkelgrauer Button != innerhalb 4 Wochen grün = sofort rot = nicht lieferbar orange = auf Anfrage schwarz = aufgrund in der Meldung zu spezifizierender Probleme beim Lieferanten (z. B. Streik) temporär nicht verfügbar Mein Ziel wäre also, mehr Farben für den Button zur Auswahl zu haben und die dazugehörigen Meldungen individuell für jeden Artikel wählen zu können. Hat jemand eine Idee wie sich so etwas umsetzen ließe oder ob es dazu bereits Plugins gibt? Zusätzlich wäre es auch sehr nützlich wenn der Lagerbestand keinen Einfluss darauf hätte, da dieser im Projekt nicht vorliegt (reine Vermittlungsaufgabe). Vielen Dank im Voraus. mfg Eronaile
Update: Über delivery_informations.tpl kann man steuern, welcher Lieferstatus wann aktiviert wird, so weit bin ich jetzt gekommen. Und obwohl ich XML nicht beherrsche kann man sich so einfache Abfragen mit Kenntnissen in andern Programmiersprachen wohl noch zusammenbasteln, kein Problem. Das Problem: wo kann ich neue Stati und deren Farben festlegen? Jedenfalls nicht in dem genannten Template. Irgendwo muss ja stehen, welcher Status zu welcher Farbe des „Knopfes“ führt. Für unser Unternehmen sind mehr verschiedene Farben sehr wichtig weil sich die Kunden bereits aus dem bisher benutzten System daran gewöhnt haben und sich den Lieferzeit-Text oft gar nicht mehr durchlesen.
Hey, du kannst dem Artikelstamm ein attr Feld zuweisen. z.B. attr10 In diesem Feld machst du die Kennzeichnung. Als Zahl, oder Wort wie auch immer du willst. z.B. Artikel XYZ hat im Feld attr10 den String „blau“ stehen. Nun musst du die Templatedatei mit deiner eigenen Abfrage editieren {if $sArticle.attr10==„blau“} Hier der HTML CODE für deinen Status {/if}
Ja so weit war ich wie gesagt schon - aber trotzdem danke für die Antwort. Die Abfrage ist kein Problem. Aber ich brauche mehr Stati und Farben. Zum Beispiel hellgrün falls der Artikel schnell, aber nicht sofort (das wäre grün) geliefert werden kann, grau wenn nur auf Anfrage, schwarz wenn z. B. ein Streik die Lieferung verhindert usw. Den Status abfragen geht ja einfach über irgendwelche Felder von Article. Aber wo lege ich neue an - samt neuen, dazugehörigen Farben? mfg Eronaile
Das ist doch alles nur CSS. Du änderst die Logik so dass deine neuen Status verwendet werden [code] * Delivery informations *} {block name=‘frontend_widgets_delivery_infos’}
{if $sArticle.shippingfree}
{se name=“DetailDataInfoShippingfree”}{/se}
{/if} {if isset($sArticle.active)&&!$sArticle.active}
{se name=“DetailDataInfoNotAvailable”}{/se}
{elseif $sArticle.sReleaseDate}
{se name=“DetailDataInfoShipping”}{/se} {$sArticle.sReleaseDate|date:‘date_long’}
{elseif $sArticle.esd}
{se name=“DetailDataInfoInstantDownload”}{/se}
{elseif $sArticle.instock > 0}
{s name=“DetailDataInfoInstock”}{/s}
{elseif $sArticle.shippingtime}
{se name=“DetailDataShippingtime”}{/se} {$sArticle.shippingtime} {se name=“DetailDataShippingDays”}{/se}
{else}
{$this->config(‘NOTAVAILABLE’)}
{/if}
{/block} [/code] Wenn du dich mit den Smarty Schleifen, wie bereits gesagt auskennst und soweit bist, braucht du ja nur neue p tags mit eigenen classes machen und diese dann per CSS definieren mit deiner eigenen Grafik…
CSS div.status_own1 {background-image: url(…) etc.}
Hmm, CSS ist mir fremd aber ich werde mal nachlesen was es mit diesen Smarty-Schleifen auf sich hat. Wo muss ich denn solche neuen Klassen definieren?
Nach einigem Ausprobieren habe ich es geschafft. Für alle, die auch zusätzliche Lieferzeiten einbinden wollen: Es gibt ein .png-Bild „sprite_delivery“, auf dem die Indikatoren abgebildet sind. Standardmäßig nur rot, grün und gelb aber man kann es natürlich mit Bildbearbeitung erweitern. Welche Farbe tatsächlich angezeigt wird kann man im Template „delivery_informations.tpl“ festlegen. Ich habe z. B. die Abfragen dort entfernt und neue eingefügt, die auf eine Zahl von 1 bis 7 prüfen, die man im Lieferzeit-Feld einträgt. Dadurch kann ich 7 verschiedene Stati eintragen. Im selben Template muss man auch die dazugehörigen Textbausteine angeben und diese natürlich in Shopware auch anlegen. Schließlich geht man noch in die style.css des Templates (kann auch anders heißen) und ändert die Einträge, welche steuern, bei welchem Status welcher Teil von sprite_delivery.png angezeigt wird. Wenn man bei den normalen farbigen Punkten bleibt sollte die Höhe 14 Pixel sein und die Einträge wählen verschiedene Farben aus indem -14, -28, -42 usw. Pixel gerechnet wird. Faktisch wird also nur ein Teil des Bildes angezeigt, der die richtige Farbe enthält. Ein unverzichtbares Tool ist hierbei wie auch bei anderen Aufgaben das Firebug-Addon von Firefox. Sonst sucht man u. U. Ewigkeiten im Code bis man die Stelle findet, an der Änderungen anfallen. mfg Eronaile
Freut mich, dass du alles gelöst hast Sehr schön. Falls du die Änderungen in der CSS aber wirklich in der Style.css (_default Template) gemacht hast, rate ich dir davon ab. Wenn das nächste Update kommt, wird diese Datei höchstwahrscheinlich überschrieben und deine Änderungen sind weg. Ich empfehle dir einen eigenen Template-Ordner anzulegen, dann bist du sicher. Wie es geht, steht schön beschrieben in den WIKI Artikeln. Leider kann ich diese gerade nicht aufrufen, sonst würde ich dir den Artikel direkt verlinken. Viel Glück
Habe ich auch gemacht. Die style.css in meinem eigenen Template überschreibt dann ja jene im _default, richtig?
Hallo, ich möchte auch sowas. Kann mir jemand dabei helfen oder mir das machen. Ich möchte dass bei Lagermüßig grün angezeigt wird und bei Lieferzeit 3 Tage auch grün und nicht gelb. Erst nach 3 Tagen möchte ich rot ! Danke für die Hilfe, Freunde !
So, noch mal nach oben damit. Vielleicht hat ja jemand eine Idee für mich .