Liquid, JavaScript, Themes
Hallo zusammen
Ich habe schon mehrere Beiträge gelesen, aber könnte keine Antwort bzw. Lösung finden, ob automatisierte Kategorien ohne Produkte in der Shop Navigation automatisch ausgeblendet werden können.
Habe auch kostenpflichtige Themes (Capital, Pipeline) getestet, erfolglos…
Hatte jemand einmal dasselbe Problem und hat bereits eine Lösung dafür?
Danke im Voraus
Schwierig denn eine Smart Collection mit mehreren Produkten wird immer irgendwelche Produkte enthalten, auch wenn andere Produkte in derselben Collection ausverkauft sind, es sei denn ALLE Produkte in dieser Smart Collection sind gleichzeitig ausverkauft, oder die Collection ist eine 1-Product Collection was das vereinfachen würde.
Sind ALLE Produkte in der Smart Collection ausverkauft und in der Collection ausgeblendet - um sie in der Navigation auch auszublenden, kannst du beispielsweise eine FOR-Loop im Liquid-Code im Theme verwenden, die überprüft, ob eine Sammlung Produkte enthält, bevor sie im Menü angezeigt wird:
{% for collection in collections %}
{% if collection.products_count > 0 %}
<!-- Code für die Darstellung der Sammlung im Menü -->
{% endif %}
{% endfor %}
Es gibt auch Mega Menu Apps im Shopify App Store, die erweiterte Menüfunktionen bieten. Einige dieser Apps könnten auch die Möglichkeit bieten, leere Sammlungen automatisch aus dem Menü auszublenden. Wenn du die App Entwickler kontaktierst können die dir ggf. helfen, das mit der App möglich zu machen.
Hallo Ben310,
danke für Info.
Ich habe bereits ähnlichen Code in Snippets/header-mega-menu.liquid ausprobiert:
{%- for grandchildlink in childlink.links -%}
{% if collection.all_products_count > 0 %}
{{ collection.all_products_count | escape }}
<li>
<a
id="HeaderMenu-{{ link.handle }}-{{ childlink.handle }}-{{ grandchildlink.handle }}"
href="{{ grandchildlink.url }}"
class="mega-menu__link link{% if grandchildlink.current %} mega-menu__link--active{% endif %}"
{% if grandchildlink.current %}
aria-current="page"
{% endif %}
>
{{ grandchildlink.title | escape }}
</a>
</li>
{%- endif -%}
{%- endfor -%}
Das Problem,
wenn ich Kategorie mit Produkten auswähle, werden alle Menüpunkte auch leere angezeigt,
wenn ich leere Kategorie auswähle, dann werden alle Menüpunkte (auch mit Produkten) ausgeblendet.
Können Kategorien in Menü manuell ausgeblendet werden?
Bisher habe ich nur einzige Lösung gefunden: Menüpunkt unter „Navigation“ zu löschen…
Vielen Dank
Das Problem mit deinem Code scheint zu sein, dass er versucht, auf collection.all_products_count zuzugreifen, ohne zuvor die Sammlung collection definiert oder darauf Bezug genommen zu haben.
Da es in einer Schleife über grandchildlink iteriert, müsste man sicherstellen, dass die entsprechende Sammlung für diesen Link geladen wird und dann ihre Produktanzahl überprüft.
Es könnte so aussehen:
{%- for grandchildlink in childlink.links -%}
{% assign collection = collections[grandchildlink.handle] %}
{% if collection and collection.products_count > 0 %}
<li>
<a
id="HeaderMenu-{{ link.handle }}-{{ childlink.handle }}-{{ grandchildlink.handle }}"
href="{{ grandchildlink.url }}"
class="mega-menu__link link{% if grandchildlink.current %} mega-menu__link--active{% endif %}"
{% if grandchildlink.current %}
aria-current="page"
{% endif %}
>
{{ grandchildlink.title | escape }}
</a>
</li>
{% endif %}
{%- endfor -%}
Diese Änderung sollte das gewünschte Verhalten liefern, wobei Menüpunkte, die zu leeren Sammlungen führen, nicht angezeigt werden.
Zur zweiten Frage: Ja, Kategorien (oder genauer gesagt Menülinks zu Sammlungen) können in Shopify manuell über die Benutzeroberfläche im Bereich "Navigation" ausgeblendet werden, indem du diese einfach aus dem Menü entfernst. Ist aber, wie du selber sagst, keine automatisierte Lösung.
Teil 2 - Wie die Prinzipien des UX-Designs dir dabei helfen können einen großartigen Shop ...
By Kai Sep 16, 2024Teil 1 - Wie die Prinzipien des UX-Designs dir dabei helfen können einen großartigen Shop ...
By Kai Sep 9, 2024Anpassungen des benutzerdefinierten Codes an Shopify-Themes (CSS) leicht gemachtIn diesem...
By Gabe Aug 28, 2024