Ähm... Code: protected function _assignRichSnippetData() { $isActive = (bool)$this->product->data['products_fsk18'] === false && ($this->stockAllowCheckout || (($this->product->data['products_quantity'] > 0) && !$this->stockAllowCheckout)) && (string)$this->product->data['gm_price_status'] === '0'; if (!$isActive) { return; } Es ist echt schwer zu lesen, aber: In Produktseiten wird das Markup nur eingefügt, wenn es kein FSK18-Produkt ist und man es entweder in den Warenkorb legen darf oder es Bestand hat und man es nicht in den Warenkorb legen darf und der Artikelpreisstatus "normal" lautet. Warum? Ein Produkt (eigentlich: Google) braucht einen Namen und mind. eine der 3 Eigenschaften: review, aggregateRating, offers https://developers.google.com/search/docs/advanced/structured-data/product#product-properties Also zum Beispiel bei ausverkauften, nicht bestellbaren Produkten werden keine strukturierten Daten eingefügt. Das ist suboptimal, oder? Und mir erschließt sich der Grund dafür nicht...
Njein. Ja, weil um ein Produkt optimale Chancen zu geben als Rich Snippet zu ranken braucht man das. Nein, weil Produkte auch ohne ein vollständiges Rich Snipeet zu erzeugen super ranken können und die Restinformationen dazu durchaus herangezogen werden. Ausserdem werden diese Daten ausgegeben wenn es sie gibt. Hat ein Produkt aber keine Produktbewertungen und auch keine Sonderangebote, dann gibt es nichts davon und dann gibts auch nichts auszugeben an der Stelle. Was nicht da ist, kann man nicht herzaubern. Was da ist, wird gezeigt. Weil das so ist denke ich der Teil deiner Frage/Antwort ist irrelevant für das folgende, ich erkenne da keinen Mangel. Kleiner Insider, vom Stammtisch: Du erkennst vielleicht warum auch wenn Tobias das anders sah Bewertungen immer einen Zweck erfüllen und er da aus meiner Sicht etwas stark in seiner Auslegung war... Korrekt. Google mag normal keine Produkte als Produkte, die sich nicht erwerben lassen. Ich hab eben kurz überlegt ob man das über Availability inzwischen wohl anders ausdrücken könnte, siehe: https://schema.org/ItemAvailability ..aber so ganz passend finde ich da auch keinen Zustand. Ich würde da keinen Bug sehen, höchstens vielleicht Chance auf Optimierung. Da muss man dann aber auch nochmal brüten: Wann setzen Shopbetreiber Artikel auf nicht käuflich? Was drücken die damit aus? Das kann discontinued sein. Oder Urlaub. Oder out of Stock, wobei die Dinger dann normal käuflich gelassen werden. Übersehe ich da etwas? Und altersbeschränkte Produkte kriegt man in Shopping`rein, aber in Produktmetadaten hat sich bei Recherche nie ein Weg gefunden damit gangbar klarzukommen. Naja, es sind halt die Spielregeln von Google.
Das war's, was ich eigentlich anregen wollte Gerade im Moment mit Lieferproblemen überall sind PreOrder oder PreSale vielleicht ganz interessant. Aber dann bin ich eben drauf gestoßen, dass schon OutOfStock nur unter ganz bestimmten Bedingungen zum Tragen kommt - und ansonsten halt das komplette Produkt-Markup weg ist. Ums plakativ auszudrücken: Ein ausverkauftes Produkt ist immer noch ein Produkt - dann halt OutOfStock. Dass ausverkaufte Artikel nicht Googles und Kündchens Lieblinge sind - schon klar. Für Ab 18 gäbe es: https://schema.org/hasAdultConsideration Artikelpreisstatus: Wenn nicht "normal", könnte über das aggregateRating immer noch Googles Bedingung erfüllt sein. Aber der Hauptpunkt ist: Ein "normales" (Artikelpreisstatus normal, kein Ab 18), nur wegen Lagerbestand<=0 gerade nicht kaufbares Produkt sollte m.E. unbedingt weiter ausgezeichnet werden. Der Code ist ja da: Code: $availability = ($productsQuantity > 0 || !$this->stockCheck) ? 'InStock' : 'OutOfStock'; Ja, ich erinnere mich. Ist ein Punkt, klar. Und spricht ja auch dafür, das Markup auch bei Lagerbestand<=0 drin zu haben
Ich weiß nicht ob das Thema hier rein passt, aber wir haben Artikel, die z.B. erst im Januar 2024 geliefert werden. (Ganz neue Kollektionen, die vorher nicht erhältlich sind). Der Kunde kann die Produkte dennoch bereits vorbestellen. Daher ist der Artikelbestand auch größer 0. An Google Merchants schicken wir availability "vorbestellbar" und ein passendes availability_date. D.h. der Lieferstatus ist mit dem Google Lieferstatus "vorbestellbar" verknüpft. Problem: In den strukturierten Daten taucht dennoch "In Stock" auf und bei Google wird in den Suchergebnissen daher "Auf Lager" angezeigt. Korrekt wäre hier "PreOrder", oder? Besteht eine Möglichkeit das mit Gambio Boardmitteln zu ändern? Oder hat jemand einen Tipp welche Datei ich mir für den Overload ansehen sollte? Danke! Edit: Ich sehe gerade, dass das Thema hier schon besprochen wurde: (Link nur für registrierte Nutzer sichtbar.). Da gibt es ja schon eine mögliche Lösung, leider nicht updatesicher. Ich versuche das Ding mal updatesicher zu gestalten...