Versteckte Funktionen I: SQL-Befehle in Warengruppen-Listen

Smartstore.Biz 5 ist eine unheimlich mächtige Shop-Software, mit der man durch den richtigen Einsatz der verschiedenen Module und ihren Optionen viele Wünsche umsetzen kann. Manches jedoch geht nicht - doch manchmal wird man vom Smartstore-Service-Team überrascht - und eine Funktion lauert "versteckt" in der Software.
Wie kann man beispielsweise auf einer Produktseite eine Warengruppenliste anzeigen lassen, bei der nur solche WEarengruppen angezeigt werden, mit denen das aktuelle Produkt verknüpft ist? Diese Option gibt es so eigentlich nicht...
Hier ist der Thread im Smartstore-Forum icon_external1.gif, wo dieses Thema behandelt wurde.
 
Es besteht die Möglichkeit, Warengruppenlisten mit einer SQL-Abfrage aufzubauen. Hier finden Sie eine Anleitung.
 
  1. Fügen Sie in die Vorlage [Templatename] eine Warengruppen-Liste ein.
    1. Stellen Sie das Layout entsprechend Ihrer Vorstellungen ein.
    2. Positionieren Sie diese an der gewünschten Stelle.
    3. Speichern Sie die Seite.
  2. Gehen Sie in Ihrem Projektordner auf Templates\Product\[Templatename].template
    1. Öffnen Sie diese Datei mit einem Texteditor.
    2. Suche Sie den Knoten "sm:category-list".
      1. Dieser Knoten enthält das Attribut "scope". Tragen Sie hier den Wert "sql" ein.
      2. Dieser Knoten enthält auch das Attribut "sql-where-clause". Fügen Sie hier eine beliebige SQL-Filter-Bedingung ein (also den WHERE-Teil einer SELECT * FROM * WHERE * -Abfrage), jedoch ohne ohne den Bezeichner WHERE selbst.
      3. Innerhalb der Klausel kann auch SSML-Code in der Form %page.getField('PKID')% verwendet werden, der in diesem Fall etwa die PKID des aktuellen Produktes zurückliefert. Vordefinierte Tabellen-Aliase sind: P (alle Felder aus Categories), D (PageData), M (Media).
        1. Wenn Sie Sich beispielsweise alle Warengruppen ausgeben lassen wollen, mit denen das aktuelle Produkt verknüpft ist können Sie den folgenden Code verwenden: sql-where-clause="P.PKID In (SELECT C.PKID FROM Categories AS C INNER JOIN Products2Categories AS PC ON C.PKID = PC.CategoryFKID WHERE PC.ProductFKID = %page.getField('PKID')%)"
      4. Wenn es zu Fehlern kommt, versuchen Sie innerhalb von "sql-where-clause" HTML-Entitäten für <>= etc. zu benutzen. Die HTML-Entität eines Zeichens können Sie Sich beispielsweise auf dieser Seite icon_external1.gif ausgeben lassen.
    3. Speichern Sie die Vorlage
  3. In Smartstore werden die Änderungen erst dann wirksam, wenn Sie eine andere Vorlage aufrufen und dann zur geänderten Vorlage zurück gehen. Smartstore liest nämlich erst dann die Vorlagen-Datei mit Ihren Änderungen neu ein.
  4. Öffnen Sie das geänderte Modul "Warengruppenliste" in der Smartstore-Anwendung und speichern es, so wird das Attribut "scope" automatisch überschrieben. Wiederhohlen Sie in diesem Fall Schritt 2.2.1

Zuletzt Angesehen

Ihr Warenkorb

Kundenkonto