Kategorie in Subshop ausblenden über if-Abfrage - Domain

Hallo,

wir haben einen Hauptshop in verschiedenen Sprachen und einen Subshop.

Der Hauptshop hat die Domain abc.de den Subshop schicke ich auf 123.de.

In unserem Subshop sollen aber nun bestimmte Artikel, bzw. bei uns Artikelkategorien nicht angezeigt werden.

Korrekt wird das Problem darüber gelöst, dass ein zweiter Kategoriebaum angelegt wird und die Shops dann auf entsprechende Kategorien zeigen (Grundeinstellungen).

In unserem Fall wäre das aber zu aufwändig in Bezug auf unsere Artikel- und Kategorieverwaltung.

Mein Gedanke:
Da der Subshop ja eine andere Domain hat könnte man vielleicht eine "relativ einfache - haha" if Abfrage in den Shop einbauen, die bewirkt, dass bestimmte Kategorien ausgeblendet werden sollen, wenn die Domain 123.de (Subshop) ist.

Da wir nicht nur einzelne Artikel, sondern ganze Kategorien ausblenden wollen könnte das doch gehen, oder? 

Könnte mir da jemand helfen? Programmieren kann ich nicht, auch nicht wenn es tatsächlich relativ einfach sein sollte.

lg
Wilo

Kann man a nichts machen?

Hallo,

doch, da kann man grundsätzlich was machen, mit einem Plugin. Es ist aber ein bisschen komplizierter, weil die Kategorien ja nicht nur in den Listings ausgeblendet werden müssen sondern auch in der Suche.

Der “korrekte” Weg ist wahrscheinlich unterm Strich weniger aufwändig. Eventuell kannst Du was mit Product-Streams vereinfachen.

Happy selling,

Geert

1 „Gefällt mir“

@vanwittlaer schrieb:

Der „korrekte“ Weg ist wahrscheinlich unterm Strich weniger aufwändig. Eventuell kannst Du was mit Product-Streams vereinfachen.

 Hallo Geert,

vielen Dank für die Information, ich weiss das sehr zu schätzen.

Wie würden Sie das über Produtkstreams lösen?

Welches PlugIn meinen Sie da?

In Bezug auf Suche:

Daran habe ich nicht gedacht, könnte man aber vielleicht auch über eine If Abfrage machen?

a) Zeige Kategorie xy nicht an wenn domain xy ist (damit hätte ich die Kategorie nicht im Kategoriebaum)

b) Zeige in suchergebnissen wenn unter domain xy gesucht wurde artikel nicht an die das Wort „xy“ im Titel enthalten.

Ich könnte mir vorstellen, dass es wegen dem Caching insgesamt doch nicht geht. Aber mir fehlen da einfach die Programmierkenntnisse.

Korrekte Weg:

Ich kann mir das bei uns nicht vorstellen, dass es einfacher wäre bei uns speziell.

Das Ergebnis müsste auch nicht perfekt sein. Wenn es noch die eine oder andere Lücke geben würde, wodurch die

Produkte doch aufrufbar sind, könnte ich damit wahrscheinlich ganz gut leben.

lg

Wilo

Hallo,

ich habe das bei uns in den Shops zum Ausblenden von Sonderkategorien wie folgt gelöst:

In der sidebar-categories.tpl nach dem {foreach $categories as $category} {if $category.attribute.attribute1 != 1} einfügen und unten wieder schliessen.

Nun in der Freitextverwaltung in der Tabelle Kategorien (s_categories_attributes) ein neues Attribut mit Typ „Einfacher Text“ „Im Backend anzeigen“ anlegen.

Bei mir war es das erste Attribut deshalb category.attribute.attribute1. Bei Label habe ich „Kategoriebaum sichtbar“ eingetragen und beim Support Text folgende Beschreibung rein „Bei Wert = 1  wird die Kategorie nicht in der linken Navigation eingeblendet“ . 

Nun werden alle Kategorien in der Linken Navi ausgeblendet, die in diesem Feld eine 1 hinterlegt haben.

Über die Suche können die Artikel in der Kategorie natürlich noch gefunden werden, aber für unsere Anforderung ist diese Lösung ausreichend.

lg

 

 

 

1 „Gefällt mir“

@supertester‍

Jawohl, das ist ein guter Tipp, könnte reichen.

lg

Leider habe ich den Tip von @supertester nicht umsetzen können. Ich denke ich habe was falsch gemacht, weiss aber nicht was. So bin ich vorgegangen:

  1. Freitextfeld-Verwaltung ein Freitextfeld eingefügt
  • Tabelle: Kategorie (s_categories_attributes)
  • Spaltenname: category_yes_no
  • Spaltentyp: Einfacher Text - TEXT
  • Label: Sichtbar im Kategoriebaum
  • Hilfe Text: 1= ausblenden
  1. Nachgesehen ob das Feld in den Freitextfeldern in den Kategorien auftaucht und bei einer Kategorie in das Feld eine 1 eingetragen.

  2. Die Datei sidebar-categories.tpl aus der Bare Theme rauskopiert und in das eigene Theme in frontend/index/ eingefügt.

  3. in der Datei sidebar-categories.tpl die nun im eigenen Theme ist habe ich folgendes hinzugefügt:

  • direkt nach {foreach $categories as $category} habe ich {if $category_yes_no != 1} eingefügt.

  • direkt über {/foreach} habe ich {/if} eingefügt.

  1. Dann habe ich die Themes kompiliert und Cache geleert. Die Kategorie wird aber in Frontend weiterhin links in der Sidebar angezeigt, alle anderen Kategorien ebenfalls.

Was habe ich falsch gemacht?

Blush

Wilo

 

… manchmal sieht man den Wald vor lauter Bäumen nicht.

So geht es:

  1. Natürlich muss es in meinem Beispiel nicht {if $category_yes_no != 1} sondern {if $category.attribute.category_yes_no != 1} heissen.

 

Vielen Dank noch mal an @supertester!

lg

Wilo

Wenn das auch in der main-navigation stattfinden soll, dann entsprechend nicht nur in sidebar-categories.tpl sondern auch in main-navigation.tpl einfügen. Auf Bezeichnung der Variable $category und bezeichnung des Attributfeldes category_yes_no achten. Bei Advanced Menü ist noch weiterer Schritt nötig.

Weitere Infos, vor allem wenn Advanced Menü dabei ist:

https://forum.shopware.com/discussion/62149/foreach-und-if-kombinieren-was-mache-ich-falsch#latest