FROM CACHE - de_header
Diese Community hat auf Peer-to-Peer-Support umgestellt. Der Shopify Support wird diese Community nicht mehr betreuen. Wir empfehlen dir, dich mit anderen Händler:innen und Partner:innen in Verbindung zu setzen, um Unterstützung zu erhalten und Erfahrungen auszutauschen. Bitte melde weiterhin alles, was gegen unseren Verhaltenskodex verstößt, oder Inhalte, die deiner Meinung nach entfernt werden sollten.

Betreff: Produkte für die Suche ausschließen

Gelöst

Produkte für die Suche ausschließen

Wilde_Möhre
Tourist
3 1 0

Hallo,

wie kann ich ausschließend dass bestimmte Produkte über die Suchmaske gefunden werden?

Ich nutze die Search & Discovery App und finde dazu leider nichts.

Vielleicht zum Hintergrund: Ich möchte in meinem Shop ein Produkt anbieten das der Kunde selbst aus vielen anderen Produkten zusammenstellen kann. Diese "Options-Produkte" sollen aber nicht über die Suche gefunden werden können.

Ich hoffe ich konnte mein Problem verständlich machen.

Vielen Dank schonmal!

1 AKZEPTIERTE LÖSUNG
Wilde_Möhre
Tourist
3 1 0

Erfolg.

Wir haben es jetzt über Metafelder in den Produkten gelöst.

Lösung in ursprünglichem Beitrag anzeigen

11 ANTWORTEN 11

Gabe
Shopify Staff
19233 3005 4430

Hey @Wilde_Möhre 

 

Ich verstehe dein Problem. Du möchtest sicherstellen, dass bestimmte Produkte (in deinem Fall die "Options-Produkte") nicht über die Suchfunktion in deinem Shopify-Shop gefunden werden können. An erster Stelle, vielleicht hilft dir ein etwas verwandter Leitfaden zum Thema Customer Search Bar und wie man es einrichten kann hier

 

Dann kannst du folgende Dinge ausprobieren, um dein Ziel zu erreichen:

  1. Tags verwenden: Du könntest allen "Options-Produkten" einen speziellen Tag geben, z.B. "NichtSuchbar". Dies ermöglicht dir später, Produkte basierend auf diesem Tag zu filtern.

  2. Suchfunktion anpassen: Nun musst du die Search & Discovery App oder die Suchfunktion von Shopify so anpassen, dass Produkte mit dem Tag "NichtSuchbar" nicht in den Suchergebnissen angezeigt werden.

    • Für die native Shopify-Suchfunktion müsstest du wahrscheinlich den Liquid-Code anpassen. Im search.liquid-Template könntest du eine Bedingung hinzufügen, die Produkte mit dem Tag "NichtSuchbar" ausschließt.

      Zum Beispiel mit einer einfachen FOR-Loop:

{% for product in search.results %}
  {% unless product.tags contains 'NichtSuchbar' %}
    ... // Anzeige des Produkts
  {% endunless %}
{% endfor %}

 

Wenn du die "Search & Discovery" App nutzt, kann die Vorgehensweise variieren. Manche Apps bieten Filteroptionen in den Einstellungen, mit denen du bestimmte Tags oder Produkte ausschließen kannst. Wenn das nicht der Fall ist, wende dich an den unseren Support, und die können einen näheren 👁️ in dein Shop werfen.

Gabe | Social Care @ Shopify
 - War meine Antwort hilfreich? Klicke Like um es mich wissen zu lassen! 
 - Wurde deine Frage beantwortet? Markiere es als Akzeptierte Lösung 
 - Um mehr zu erfahren, besuche das Shopify Help Center oder den Shopify Blog

Wilde_Möhre
Tourist
3 1 0

Vielen Dank für die ausführliche Antwort! Ich werde das testen. 

Gabe
Shopify Staff
19233 3005 4430

Gerne! 😉

Gabe | Social Care @ Shopify
 - War meine Antwort hilfreich? Klicke Like um es mich wissen zu lassen! 
 - Wurde deine Frage beantwortet? Markiere es als Akzeptierte Lösung 
 - Um mehr zu erfahren, besuche das Shopify Help Center oder den Shopify Blog

Gabe
Shopify Staff
19233 3005 4430

@Wilde_Möhre 

 

Hat das funktioniert oder habt ihr eine Lösung dazu gefunden?

Gabe | Social Care @ Shopify
 - War meine Antwort hilfreich? Klicke Like um es mich wissen zu lassen! 
 - Wurde deine Frage beantwortet? Markiere es als Akzeptierte Lösung 
 - Um mehr zu erfahren, besuche das Shopify Help Center oder den Shopify Blog

Wilde_Möhre
Tourist
3 1 0

Erfolg.

Wir haben es jetzt über Metafelder in den Produkten gelöst.

Gabe
Shopify Staff
19233 3005 4430

giphy

Gabe | Social Care @ Shopify
 - War meine Antwort hilfreich? Klicke Like um es mich wissen zu lassen! 
 - Wurde deine Frage beantwortet? Markiere es als Akzeptierte Lösung 
 - Um mehr zu erfahren, besuche das Shopify Help Center oder den Shopify Blog

CA111
Besucher
1 0 0

Hey, ich möchte auch einige Produkte bzw Kategorien ausschließen wie genau funktioniert das über die Metafelder ? 

Idtank_de
Shopify Partner
5 0 1

Dieses Problem würde ich gern nochmals aufgreifen: Im Dawn-Theme gibt es derzeit kein search.liquid. Wie lautet der derzeitige Code? Zudem an welcher Stelle muss am Beispiel des Dawn-Themes der FOR-Loop eingefügt werden, um berücksichtigt zu werden?

Idtank_de
Shopify Partner
5 0 1

Hat sich erledigt. 

In diesem Fall ist es main-search.liquid und der Code gehört in meinem Fall an Stelle 253-316:

 

Spoiler
<ul
  class="grid product-grid  grid--{{ section.settings.columns_mobile }}-col-tablet-down grid--{{ section.settings.columns_desktop }}-col-desktop"
  role="list"
>
  {% for product in search.results %}
    {% unless product.tags contains 'NichtSuchbar' %}
      <li
        class="grid__item{% if settings.animations_reveal_on_scroll %} scroll-trigger animate--slide-in{% endif %}"
        {% if settings.animations_reveal_on_scroll %}
          data-cascade
        {% endif %}
      >
        {%- case product.object_type -%}
          {%- when 'product' -%}
            {%- capture product_settings -%}{%- if section.settings.product_show_vendor -%}vendor,{%- endif -%}title,price{%- endcapture -%}
            {% render 'card-product',
              card_product: product,
              media_aspect_ratio: section.settings.image_ratio,
              image_shape: section.settings.image_shape,
              show_secondary_image: section.settings.show_secondary_image,
              show_vendor: section.settings.show_vendor,
              show_rating: section.settings.show_rating,
              lazy_load: lazy_load
            %}
          {%- when 'article' -%}
            {% render 'article-card',
              article: product,
              show_image: true,
              show_date: section.settings.article_show_date,
              show_author: section.settings.article_show_author,
              show_badge: true,
              media_aspect_ratio: 1,
              lazy_load: lazy_load
            %}
          {%- when 'page' -%}
            <div class="article-card-wrapper card-wrapper underline-links-hover">
              <div
                class="card card--card card--text ratio color-{{ settings.blog_card_color_scheme }}"
                style="--ratio-percent: 100%;"
              >
                <div class="card__content">
                  <div class="card__information">
                    <h3 class="card__heading">
                      <a href="{{ product.url }}" class="full-unstyled-link">
                        {{ product.title | truncate: 50 | escape }}
                      </a>
                    </h3>
                  </div>
                  <div class="card__badge {{ settings.badge_position }}">
                    <span class="badge color-{{ settings.color_schemes | first }}">
                      {{- 'templates.search.page' | t -}}
                    </span>
                  </div>
                </div>
              </div>
            </div>
        {%- endcase -%}
      </li>
    {% endunless %}
  {% endfor %}
</ul>

 

AP089
Entdecker
14 0 2

Hallo zusammen

Kribach hatte eine Lösung gepostet für das Dawn Theme. Hat jemand eine Idee wie das im Expanse Theme aussehen könnte wenn man sich zudem auf den Produkttyp (product_typ) bezieht statt auf den Produkt-Tag (product.tags)

Also Produkte aus den Suchergebissen ausschließt, die einen bestimmten Produkttyp haben?

Folgende unsere Liquid-Datei „main-search.liquid“:

 

Spoiler
{%- render 'section-main-search',
    section: section,
    search: search,
    cart: cart,
    context: 'search-page',
    enable_sidebar: section.settings.enable_sidebar,
    enable_color_swatches: section.settings.enable_color_swatches,
    tags_combine: false,
    enable_sort: section.settings.enable_sort,
    collapse_filters: section.settings.collapse_filters,
    paginate_by: 40,
    grid_style: section.settings.grid_style,
    quick_shop_enable: settings.quick_shop_enable,
    quick_add_enable: settings.quick_add_enable,
    product_grid_image_size: settings.product_grid_image_size,
    product_grid_image_fill: settings.product_grid_image_fill,
    product_hover_image: settings.product_hover_image,
    enable_swatches: settings.enable_swatches,
    vendor_enable: settings.vendor_enable,
    product_save_amount: settings.product_save_amount,
    product_save_type: settings.product_save_type,
    enable_product_reviews: settings.enable_product_reviews
    show_breadcrumbs: settings.show_breadcrumbs,
    color_header_search: settings.color_header_search,
    predictive_search_enabled: settings.predictive_search_enabled,
    hydration: 'on:idle'
-%}

{% schema %}
{
  "name": "t:labels.search_page",
  "settings": [
    {
      "type": "header",
      "content": "t:labels.filtering_and_sorting"
    },
    {
      "type": "checkbox",
      "id": "enable_sidebar",
      "label": "t:actions.enable_filter",
      "default": true,
      "info": "t:info.allow_your_customers_to_filter"
    },
    {
      "type": "checkbox",
      "id": "collapse_filters",
      "label": "t:actions.collapse_filters",
      "default": true
    },
    {
      "type": "checkbox",
      "id": "enable_color_swatches",
      "label": "t:actions.enable_color_swatches",
      "info": "t:actions.view_setup_instructions"
    },
    {
      "type": "checkbox",
      "id": "enable_sort",
      "label": "t:actions.show_sort_options",
      "default": true
    },
    {
      "type": "select",
      "id": "grid_style",
      "label": "t:labels.default_product_layout",
      "default": "medium",
      "options": [
        {
          "value": "large",
          "label": "t:labels.sizes.large_grid"
        },
        {
          "value": "medium",
          "label": "t:labels.sizes.small_grid"
        },
        {
          "value": "list",
          "label": "t:labels.list"
        }
      ]
    }
  ]
}
{% endschema %}

 

Und hier section-search-results.liquid, worauf sich im main-search.liquid bezogen wird:

 

Spoiler
{% comment %}
  /**
   *  {object} predictive_search - predictive search object
   *  {boolean} predictive_search_show_vendor - whether to show the vendor
   *  {boolean} predictive_search_show_price - whether to show the price
   *  {boolean} product_save_amount - whether to show the amount saved
   *  {string} product_save_type - product save type
   *  {object} routes - routes object
   */
{% endcomment %}

{% liquid
  if predictive_search_show_price == nil
    assign predictive_search_show_price = true
  endif

  if predictive_search_show_vendor == nil
    assign predictive_search_show_vendor = true
  endif
%}


{% liquid
  assign resources = predictive_search.resources
  assign columnCount = resources.queries.size | plus: resources.pages.size | plus: resources.articles.size | plus: resources.collections.size
  assign totalCount = resources.queries.size | plus: resources.pages.size | plus: resources.articles.size | plus: resources.collections.size | plus: resources.products.size
%}

{%- if predictive_search.performed -%}
  <div class="predictive-search-results {% if totalCount == 0 %}predictive-search-results--none{% endif %}" id="predictive-search-results">
    {% if totalCount > 0 %}
      <div class="results__group-1" {% if columnCount == 0 %}style="display: none"{% endif %}>
        {%- if predictive_search.resources.queries.size > 0 -%}
          <div class="results results--queries">
            <h3 class="h4" id="predictive-search-suggestions">
              {{ 'labels.suggestions' | t }}
            </h3>
            <ul role="listbox" aria-labelledby="predictive-search-queries">
              {%- for query in predictive_search.resources.queries -%}
                <li role="option">
                  <a href="{{ query.url }}">
                    <span>{{ query.styled_text }}</span>
                  </a>
                </li>
              {%- endfor -%}
            </ul>
          </div>
        {%- endif -%}
        {%- if predictive_search.resources.pages.size > 0 -%}
          <div class="results results--pages">
            <h3 class="h4" id="predictive-search-pages">
              {{ 'labels.pages' | t }}
            </h3>
            <ul role="listbox" aria-labelledby="predictive-search-pages">
              {%- for page in predictive_search.resources.pages -%}
                <li role="option">
                  <a href="{{ page.url }}">
                    <span>{{ page.title }}</span>
                  </a>
                </li>
              {%- endfor -%}
            </ul>
          </div>
        {%- endif -%}
        {%- if predictive_search.resources.articles.size > 0 -%}
          <div class="results results--articles">
            <h3 class="h4" id="predictive-search-articles">
              {{ 'labels.articles' | t }}
            </h3>
            <ul role="listbox" aria-labelledby="predictive-search-articles">
              {%- for article in predictive_search.resources.articles -%}
                <li role="option">
                  <a href="{{ article.url }}">
                    <span>{{ article.title }}</span>
                  </a>
                </li>
              {%- endfor -%}
            </ul>
          </div>
        {%- endif -%}
        {%- if predictive_search.resources.collections.size > 0 -%}
          <div class="results results--collections">
            <h3 class="h4" id="predictive-search-collections">
              {{ 'labels.collections' | t }}
            </h3>
            <ul role="listbox" aria-labelledby="predictive-search-collections">
              {%- for collection in predictive_search.resources.collections -%}
                <li role="option">
                  <a href="{{ collection.url }}">
                    <span>{{ collection.title }}</span>
                  </a>
                </li>
              {%- endfor -%}
            </ul>
          </div>
        {%- endif -%}
      </div>

      <div class="results__group-2">
        {%- if predictive_search.resources.products.size > 0 -%}
          <div class="results results--products">
            <h3 class="h4" id="predictive-search-products">
              {{ 'labels.products' | t }}
            </h3>
            <ul role="listbox" aria-labelledby="predictive-search-products">
              {%- for product in predictive_search.resources.products -%}
                <li role="option">
                  <a href="{{ product.url }}">
                    <div class="results-products__image grid__image-ratio">
                      {% if product.media != blank %}
                        {%- render 'image-element',
                          img: product.featured_media,
                          widths: '80, 160, 240',
                        -%}
                      {% endif %}
                    </div>
                    <div class="results-products__info">
                      <span>{{ product.title }}</span>
                      {% if predictive_search_show_vendor %}
                      <span class="grid-product__vendor">{{ product.vendor }}</span>
                      {% endif %}
                      {% if predictive_search_show_price %}
                        {%- if on_sale -%}
                          <span class="visually-hidden">{{ 'labels.regular_price' | t }}</span>
                          <span class="grid-product__price--original">{{ product.compare_at_price | money }}</span>
                          <span class="visually-hidden">{{ 'labels.sale_price' | t }}</span>
                        {%- endif -%}

                        {%- if product.price_varies -%}
                          {%- assign price = product.price_min | money -%}
                          <span class="grid-product__price">{{ 'labels.from_price_html' | t: price: price }}</span>
                        {%- else -%}
                          <span class="grid-product__price">{{ product.price | money }}</span>
                        {%- endif -%}
                        {%- if on_sale -%}
                          {%- if product_save_amount -%}
                            {%- liquid
                              if product_save_type == 'dollar'
                                assign saved_amount = product.compare_at_price | minus: product.price | money
                              else
                                assign saved_amount = product.compare_at_price | minus: product.price | times: 100.0 | divided_by: product.compare_at_price | round
                              endif
                            -%}
                            <span class="grid-product__price--savings">
                              {{ 'info.save_amount' | t: saved_amount: saved_amount }}
                            </span>
                          {%- endif -%}
                        {%- endif -%}
                      {% endif %}
                    </div>

                  </a>
                </li>
              {%- endfor -%}
            </ul>
          </div>
        {%- endif -%}
        {%- if predictive_search.resources.pages.size > 0 -%}
          <div class="results results--pages">
            <h3 class="h4" id="predictive-search-pages">
              {{ 'labels.pages' | t }}
            </h3>
            <ul role="listbox" aria-labelledby="predictive-search-pages">
              {%- for page in predictive_search.resources.pages -%}
                <li role="option">
                  <a href="{{ page.url }}">
                    <span>{{ page.title }}</span>
                  </a>
                </li>
              {%- endfor -%}
            </ul>
          </div>
        {%- endif -%}
        {%- if predictive_search.resources.articles.size > 0 -%}
          <div class="results results--articles">
            <h3 class="h4" id="predictive-search-articles">
              {{ 'labels.articles' | t }}
            </h3>
            <ul role="listbox" aria-labelledby="predictive-search-articles">
              {%- for article in predictive_search.resources.articles -%}
                <li role="option">
                  <a href="{{ article.url }}">
                    <span>{{ article.title }}</span>
                  </a>
                </li>
              {%- endfor -%}
            </ul>
          </div>
        {%- endif -%}
        {%- if predictive_search.resources.collections.size > 0 -%}
          <div class="results results--collections">
            <h3 class="h4" id="predictive-search-collections">
              {{ 'labels.collections' | t }}
            </h3>
            <ul role="listbox" aria-labelledby="predictive-search-collections">
              {%- for collection in predictive_search.resources.collections -%}
                <li role="option">
                  <a href="{{ collection.url }}">
                    <span>{{ collection.title }}</span>
                  </a>
                </li>
              {%- endfor -%}
            </ul>
          </div>
        {%- endif -%}
      </div>
    {% else %}
      <div class="results"><a class="predictive-search__no-results" href="{{ routes.search_url }}?q={{ predictive_search.terms | escape }}">{{ 'info.search_no_results_html' | t: terms: predictive_search.terms }}</a></div>
    {% endif %}
  </div>
  {% if totalCount > 0 %}
    <button class="results__search-btn">
      {{ 'actions.show_all_results' | t: terms: predictive_search.terms }} <svg width="14" height="10" viewBox="0 0 14 10" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 5H12.5M12.5 5L8.5 1M12.5 5L8.5 9" stroke="currentColor"/></svg>
    </button>
  {% endif %}
{%- endif -%}

 

Ich würde mich über jeglichen Vorschlag freuen an welcher Stelle ich hier Anpassungen vornehmen soll.

Vielen lieben Dank

Drahi11
Besucher
2 0 0

Hallo @Gabe

 

bin eben auf deine Antwort hier gestoßen. Ich würde das gerne ausprobieren, wo genau muss ich im search.liquid den Code einfügen? Wir nutzen die Search & Discovery App. Meinst du das main.search.liquid? Anbei ein Screenshot. Und an welcher Stelle kommt der Code hin, sorry bin da etwas unerfahren 😄 

Drahi11_0-1725291179349.png

 

LG