Opened 3 years ago
Closed 3 years ago
#2435 closed Bug/Fehler (fixed)
meta itemprob price (für offers) fehlt bei Staffelpreisen in Händlereinträgen
| Reported by: | Timm | Owned by: | Markus |
|---|---|---|---|
| Priority: | hoch | Milestone: | modified-shop-2.0.8.0 |
| Component: | Template | Version: | 2.0.7.2 |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: |
Description (last modified by )
In der Searchconsole und im rich snippet testing tool wird bei Nutzung von Staffelpreisen ein kritischer Fehler für Händlereinträge ausgegeben.
Obwohl die pricespecification angezeigt wird, reicht ihm das nicht.
Nach Update des Shops auf 2.0.7.2 vor ein paar Tagen gingen die Fehler schnell in die Höhe. In der vorher eingesetzten 2.0.5.1 wurde die pricespcification nicht eingepflegt und deshalb wurde dort der Fehler nicht angezeigt. Der Fehler sollte somit schon länger bestehen, scheint aber niemandem aufgefallen zu sein.
Markus hat das heute gelöst, in dem der Artikelpreis auch bei Staffelpreisen angezeigt wird.
Man hat dann den großgeschriebenen Artikelpreis per strukturierte Daten übergeben und zusätzlich die pricespecification der kleineren Staffelpreise. (Das war ja auch ein Hinweis im querverlinkten Ticket, dass der größte sichtbare Preis übergeben werden soll)
Wir werden das beobachten bevor es ins Standardtemplate übernommen wird.
Im rich snippet testing tool gibt es damit keine Probleme, aber eventuell kommt in der search Konsole die nächsten Tage eine Meldung, dass ihm die 2 Preisangaben stören.
Querverlinktes Ticket: #1362
Attachments (1)
Change History (8)
by , 3 years ago
| Attachment: | Bildschirmfoto 2023-02-03 um 18.09.47.png added |
|---|
comment:1 by , 3 years ago
| Description: | modified (diff) |
|---|
follow-up: 5 comment:2 by , 3 years ago
comment:5 by , 3 years ago
Replying to Tomcraft:
Der Code <meta itemprop="price" content="{$price_data.PRODUCTS_PRICE_PLAIN}" /> wurde in Ticket #1765 durch r12573 auskommentiert, da damals Google anscheinend noch nicht erlaubt hat, dass mehrere META-tags mit gleichem Namen enthalten sein dürfen, obwohl sie unterschiedlichen Schemas zugeordnet waren. In dem Fall Offer als übergeordnetes Schema & PriceSpecification als untergeordnetes Schema von Offer.
Das Problem scheint nicht die auskommentierte Stelle gewesen zu sein, sondern in Zeile die Abfrage in Zeile 46:
{if !isset($MODULE_graduated_price) || $MODULE_graduated_price == ''}
<meta itemprop="price" content="{$price_data.PRODUCTS_PRICE_PLAIN}" />
{/if}
comment:6 by , 3 years ago
| Resolution: | fixed |
|---|---|
| Status: | closed → reopened |
So, nun nochmal alle IF-Schleifen in der price_info.html angeschaut und in jede einmal rein "gerannt".
Teil 1:
{if $price_data.PRODUCTS_PRICE_FLAG == 'Special' || $price_data.PRODUCTS_PRICE_FLAG == 'SpecialDiscount'}
bzw.:
{* START Produkt Sonderpreis Langform mit Ausgabe Alter Preis, Neuer Preis, Sie sparen *}
kommt, wenn ein Sonderangebot angelegt ist.
Teil 2:
{elseif $price_data.PRODUCTS_PRICE_FLAG == 'SpecialGraduated'}
teilt sich auf in:
Teil 2a:
{if $price_data.PRODUCTS_PRICE_UVP != ''}
bzw.:
{* START Produkt UVP Preis mit Ausgabe Ihr Preis, UVP *}
Teil 2b:
{else}
bzw.:
{* START Produkt Staffelpreis mit Ausgabe ab Preis, Stückpreis *}
abhängig vom "hidden" Schalter $this->showCheapestGraduated = false; in der "/includes/classes/xtcPrice.php" und wird erreicht, wenn Staffelpreise hinterlegt sind.
Der Schalter kam durch Ticket #1660 in r14454 dazu - Stichwort "Unerlaubte Werbung mit günstigstem Ab-Preis bei Staffelpreisen".
Teil 3:
{elseif $price_data.PRODUCTS_PRICE_FLAG == 'NotAllowed'}
kommt, wenn die Kundengruppe keine Berechtigung zur Ansicht von Preisen hat.
Teil 4:
{else}
bzw.
{* START Produkt Standardpreis mit Ausgabe ab Preis *}
kommt in allen anderen Fällen. Und hier gibt es einen Sonderfall:
Legt man einen Artikel an ohne Artikelpreis, aber mit Kundengruppenpreis sowie mit Staffelpreisen, dann kommt der META-tag nicht aufgrund folgendes Codes:
{if !isset($MODULE_graduated_price) || $MODULE_graduated_price == ''}
<meta itemprop="price" content="{$price_data.PRODUCTS_PRICE_PLAIN}" />
{/if}
Vorschlag zur Korrektur:
Zeile 35 wieder den META-tag einkommentieren, also statt:
{*<meta itemprop="price" content="{$price_data.PRODUCTS_PRICE_PLAIN}" />*}
wieder so:
<meta itemprop="price" content="{$price_data.PRODUCTS_PRICE_PLAIN}" />
Zeile 46 & 48 entfernen, also statt:
{if !isset($MODULE_graduated_price) || $MODULE_graduated_price == ''}
<meta itemprop="price" content="{$price_data.PRODUCTS_PRICE_PLAIN}" />
{/if}
nur noch:
<meta itemprop="price" content="{$price_data.PRODUCTS_PRICE_PLAIN}" />
damit der META-tag auch dann kommt, wenn kein Artikelpreis hinterlegt ist, sondern nur ein Kundengruppenpreis inkl. Staffelpreisen.

Der Code <meta itemprop="price" content="{$price_data.PRODUCTS_PRICE_PLAIN}" /> wurde in Ticket #1765 durch r12573 auskommentiert, da damals Google anscheinend noch nicht erlaubt hat, dass mehrere META-tags mit gleichem Namen enthalten sein dürfen, obwohl sie unterschiedlichen Schemas zugeordnet waren. In dem Fall Offer als übergeordnetes Schema & PriceSpecification als untergeordnetes Schema von Offer.