Franz Holzinger

Verse of the day

Bei Gott ist mein Heil, meine Ehre, der Fels meiner Stärke; meine Zuversicht ist auf Gott.
Psalm 62:7

© Bible Gateway's Verse of the Day


autor  
17-11-19 20:34:42 Das gesuchte Produkt 'XYZ' existiert nicht auf dieser Umgebung.
Andreas Karnatz
Hallo miteinander,

seit dem Update auf tt_products 3.1.0 haben wir ein merkwürdiges Problem. Sporadisch kommt folgende Meldung:

Shop Plugin: Das gesuchte Produkt 'XYZ' existiert nicht auf dieser Umgebung.

Das hat es vorher nie gegeben. Beheben lässt sich das Problem indem man den gesamten System-Cache leer ODER die Seite mit dem Plugin: tt_products Liste öffnet, erneut abspeichert und den Cache leert.

Das Problem taucht aber wenig später wieder auf, auf verschiedenen Seiten, mit verschiedenen Produkten.

Wie lässt sich das Problem beheben bzw. kann man diese Fehlermeldung irgendwie abschalten?

Konfiguration:
PHP 7.2 latest
tt_products 3.1.0
mbi_products_categories 0.7.5
18-11-19 13:45:33 Cache versus USER_INT
Franz Holzinger
In den neueren tt_products 3.1 Versionen wird der Cache immer verwendet. Das hat aber zur Folge, dass TYPO3 das Shop Plugin aus dem Cache lädt.

Es gibt eine einfache Lösung:
Es muss entweder auf jeder Shop Seite auch ein Miniwarenkorb Plugin sein. Oder es gibt nun auch ein einfache Control Plugin, das sonst nichts macht, außer dass dieses Shop Plugin eben nicht im Cache liegen wird, und dass deshalb der Warenkorbinhalt somit befüllt werden kann.

Aber in diesem Fall ist offensichtlich eine Suche aktiv.
Hier sollte der Cache durch das bereits vorhandene Setup gar nie verwendet werden:

[globalString = GP:tt_products|sword = /.+/]
plugin.tt_products = USER_INT

Denn es ergibt keinen Sinn, eine durch Suche entstandene Produktliste im Cache abzuspeichern.
Welches Suchformular wird verwendet?

26-11-19 13:22:17 Suche
Andreas Karnatz
Hallo Herr Holzinger,

ja die Suche und der Mini-Warenkorb sind seit jeher im Kopfbereich der Seite eingebunden. Es gibt beides also auf jeder Seite.

Eingebunden wurde das damals so:

### SEARCH
lib.productsearch < plugin.tt_products
lib.productsearch.file.templateFile = fileadmin/templates/ext/tt_products/index.html
lib.productsearch.code >
lib.productsearch.code = SEARCH
lib.productsearch.pid_list = 241

lib.product_search = TEXT
lib.product_search.value (
<div class="input-group">
<form method="post" action="/produkte/produktsuche">
<input maxlength="100" type="text" class="form-control" name="sword" value="Suchbegriff / Hersteller / Produkt" onfocus="if(this.value==this.defaultValue) this.value='';" onblur="if(this.value=='') this.value=this.defaultValue;" />
<span class="input-group-btn">
<input class="btn btn-default btn-primary" type="submit" name="order" value="Los">
</span>
</form>
</div>
)

### MINI-BASKET
lib.over_view = RECORDS
lib.over_view.source = 749
lib.over_view.tables = tt_content
lib.over_view.stdWrap.wrap = |

Hat sich an der Art der Einbindung?
28-11-19 08:54:56 Cache versus USER_INT
Franz Holzinger
Der Teil '"name="sword" ' bedeutet, dass dieses Setup aktiviert sein muss:

[globalString = GP:sword = /.+/]
plugin.tt_products = USER_INT

Damit wird der Cache deaktiviert, sobald ein Suchbegriff eingegeben worden ist.

Am besten im TypoScript Object Browser überprüfen, ob bei gesetztem sword Parameter das Shop Plugin Liste (LIST) zur Ausgabe der Suchergebnisse ein USER_INT Objekt ist.

Zu dieser Fehlermeldung kommt es außerdem, wenn ein MYSQL Fehler aufgetreten ist. Dann wird ebenso kein Produkt gefunden. Vielleicht gibt es Suchbegriffe, die zu SQL Fehlern führen.
12-12-19 09:22:58 config.no_cache = 1
Andreas Karnatz
Hallo Herr Holzinger,

das Snippet habe ich in das TS-Setup der Root-Seite geschrieben. Hat aber keinerlei Auswirklung. Die Fehlermeldung taucht erneut auf.

USER_INT ist aber korrekt und steht auch so im Object Browser.

Wenn ich hingegen config.no_cache = 1 setze dann kommt der Fehler nicht mehr. Haben Sie noch eine Idee?
12-12-19 09:52:07 USER_INT
Franz Holzinger
Wenn das cObject als USER_INT angegeben ist, dann wird der Cache auch nicht verwendet. Ein Setzen von config.no_cache = 1 darf hier gar keine Auswirkung haben. Sonst wäre das ein Hinweis, dass es doch noch etwas im Cache gegeben hat.

Sie sollten auch an der Stelle der Einfügung von tt_products explizit auf USER_INT setzen.


lib.productsearch < plugin.tt_products
lib.productsearch = USER_INT

Achten Sie darauf, dass auf der Zielseite der Suche "/produkte/produktsuche" tt_products im Setup als USER_INT festgelegt ist.

plugin.tt_products = USER_INT

Welche TYPO3 Version ist das?

Enthält die Fehlermeldung immer ein anderes Produkt? Was passiert, wenn Sie selber nach einem Produkt suchen? Kommt diese Fehlermeldung jedes Mal oder nur sehr selten?
17-12-19 08:31:16 update
Andreas Karnatz
Hallo Herr Holzinger,

ich habe den Vorschlag so umgesetzt, allerdings bleibt es bei der Situation.

1. config.no_cache = 1 wieder entfernt
2. USER_INT an den geannten Stellen eingetragen
3. Fehler meldung ist nach ein paar Minuten wieder zu finden

Das Ist Typo3 8.7.29 + PHP 7.3

Die Fehlermeldung enthält, soweit ich feststellen konnte, immer ein anderes Produkt. Sowohl deaktivierte Produkte als auch Live-Produkte.

Wenn ich nach einem Produkt o. Begriff suche ist alles ganz normal. Ich bekomme die Suchseite mit den entsprechenden Produkten in Listenform.

Die Fehlermeldung taucht sporadisch, also nicht immer auf, und in allen erdenklichen Kategorien auf (hier sind es ca. 100 verschiedene). Wenn die Fehlermeldung in einer Kategorie auftaucht, dann steht sie dort bis man den Cache löscht.

Was ich nicht verstehe ist, warum das etwas mit der Suche zu tun haben soll. Die Suchfunktion ist zwar auf jeder Seite eingebunden, wird ja aber gar nicht benutzt.

Gibt es villt. eine aktuellere Version der tt_products V3 die ich einspielen kann?
17-12-19 10:16:12 USER_INT liegt im Cache?
Franz Holzinger
Laut dieser Beschreibung muss das USER_INT fälschlicherweise im Cache liegen. Das darf natürlich nicht passieren. Da kann auch in tt_products nicht korrigiert werden.

Es sieht so aus, als wenn die Fehlermeldung, dass ein Produkt nicht gefunden wird, in manchen Fällen ein Auslöser dafür ist, dass das Shop Plugin ab sofort im Cache liegt. Denn erst nach dem Leeren des Caches wird tt_products wieder aktiviert.

Woher kommt die Fehlermeldung? Von der Suche oder von der Filterung über eine Kategorie?

Handelt es sich hier um ein LIST Plugin auf einer einzigen Seite, welches durch verschiedene Filter-Kategorien immer eine andere Liste anzeigen soll?
In diesem Fall sollte das Plugin wiederum ein USER_INT sein.

Es gibt die Möglichkeit, statt des normalen Shop Plugins auf ein "Shop System Variable Content" umzuschalten. Dann ist gewährleistet, dass dieses Plugin nie im Cache liegen wird.



< Zurück zum Forum