Moin, ich habe heute angefangen, neue Artikel über JTl Wawi (Vers. 1.3.20.0) in meinen Gambio (3.11.2.0) einzupflegen und nach dem hochladen sprang mich folgende Fehlermeldung beim Aufruf der Artile an: https://vinsole.de/Uebersee/Argenti...ltosur-Chardonnay-Finca-Sophenia-2008-09.html Code: Information: <br /> <b>Fatal error</b>: Uncaught EntityNotFoundException: Manufacturer entity was not found with provided id "442" in /var/www/web29544536/html/vinsole/GXMainComponents/Services/Core/Manufacturer/Repositories/ManufacturerReader.inc.php:105 Stack trace: #0 /var/www/web29544536/html/vinsole/GXMainComponents/Services/Core/Manufacturer/Repositories/ManufacturerRepository.inc.php(109): ManufacturerReader->getById(Object(IdType)) #1 /var/www/web29544536/html/vinsole/GXMainComponents/Services/Core/Manufacturer/ManufacturerReadService.inc.php(72): ManufacturerRepository->getById(Object(IdType)) #2 /var/www/web29544536/html/vinsole/system/classes/products/ProductInfoContentView.inc.php(561): ManufacturerReadService->getById(Object(IdType)) #3 /var/www/web29544536/html/vinsole/system/classes/products/ProductInfoContentView.inc.php(104): ProductInfoContentView->_assignRichSnippetData() #4 /var/www/web29544536/html/vinsole/system/classes/products/ProductInfoContentView.inc.php(138): ProductInfoContentView->prepare_data() #5 /var/www/web29544536 in <b>/var/www/web29544536/html/vinsole/GXMainComponents/Services/Core/Manufacturer/Repositories/ManufacturerReader.inc.php</b> on line <b>105</b><br /> Mittlerweile habe ich festgestellt, das diese Fehlermeldung nicht nur bei neu angelegten Artikel erscheint, sondern auch bei denen, die ich geändert habe, sei es die Beschreibung oder etwas anderes. Das es mit den Herstellern zu tun hat, sehe ich schon. Nach einigem herumbasteln habe ich bei einem Erzeuger den Artikelhersteller in den Artikeldaten entfernt und alles klappt wieder. Was kann ich tun, damit dieses Phönomen wieder verschwindet? Danke im voraus Harald
Danke, das wäre eine Lösung, aber da ich mit der JTL-Wawi arbeite, ist diese federführend und ändert wieder alles. Ich werde wohl bis zur Lösung des Problems erst einmal den Hersteller löschen müssen (Löschen und Neuanlage klappt leider auch nicht). Gruß Harald
Die JTL Wawi kommt doch an das Gambio Herstellerverzeichnis garnicht dran. Lege ein paar Hersteller manuell an in schau ob’s funktioniert. Ist in 5 min erledigt. Musst garnicht an den Artikel ran. Wahrscheinlich macht jtl einen Hersteller in den Artikel rein, den es in Gambio nicht gibt. Normalerweise legt man erst den Hersteller an und wählt ihn im Artikel übers Dropdown-Menü aus. Wenn nun jtl den Artikel samt Hersteller in die Datenbank schreibt, aber Gambio den nicht kennt, kommt der Fehler. Also lege einen Hersteller an und guck ob’s geht.
Hat geklappt, vielen Dank. Ist bloß komisch, das vorher alles funktioniert hat, ohne das die Hersteller im Herstellerverzeichniss eingetragen waren. Die Wege des JTL und Gambio sind eben manchmal merkwürdig . Und die des Anwenders (mich) sicher auch
Der Punkt dahinter ist ganz simpel: Wir bauen den Shopkern langsam neu. Dieser Shopkern Neubau firmiert bei uns unter GXEngine und Verwandten als Name. Damit werden immer mehr Funktionen der alten Logik durch neue ersetzt, Stück für Stück, und die schauen absichtlich genauer auf die Daten die die reinbekommen, die müssen jetzt wirklich passen. Es sieht so aus, als ist eine solche Datenprüfung dein Problem. Jetzt könnte man natürlich sagen das sei inflexibel, der Shop wird damit intoleranter gegen Daten die falsch drin sind oder rein sollen, und das stimmt. Auf der Haben-Seite erzeugt das gleichzeitig einen grossen positiven Effekt: Wenn man dem Zoowärter einmal beigebracht hat was geht und was nicht, dann kann der genauer auf seine Sachen schauen. Der winkt der nicht mehr alles durch und lässt alles gerade sein, sondern er macht seinen Job wenn was nicht stimmt. Wenn Daten überall genauer geprüft werden, dann steigert das schlicht die Sicherheit des Systems. Gleichzeitig zeigt es Fehler auf die da sind, so dass man die beseitigen kann. Wir haben im Gegensatz zur Situation vor einigen jahren inzwischen eine grössere Menge an automatisierten Tests, die nach jedem Git-Commit (sprich nach jeder kleinen Änderung) eines Entwicklers automatisch über den Softwarestand laufen gelassen wird. Kommt dort plötzlich bei einem Test eine Verhaltensänderung heraus, schickt das System eine freundliche Drohmail an den Shopmörder. Alle neugebauten Kernkomponenten der letzten jahre sind auf diese weise test- und validierbar. Das ist ein grosser Unterschied zu alten Komponenten die das nicht sind und es prinzipbedingt nicht werden können, dort ist einfach viel zu viel Logik in einzelne grosse Dateien gestopft um jemals sinnvolle Tests schreiben zu können. Das alte Zeugs ist auch bis heute der Teil des Codes, der am anfälligsten für beizeiten sonderbares Verhalten ist... Am Ende steht: JTL wird vermutlich schon lange invalide Daten schreiben, das fiel nur niemandem auf. Jetzt wird das geprüft und es scheppert. Den Fehler muss dann JTL beseitigen, weil die Daten wohl direkt kaputt an allem vorbei in die Datenbank schreiben. Was wir machen müssen ist beizeiten nochmal am kompletten Fehlerbehandlungsmechanismus schreiben, weil Kunden solche Meldungen nie zu sehen bekommen sollten, sondern wenn schon dann eine schöne Fehlerseite. Da steht nichts böses drin was die Sicherheit des Shops gefährden würde, aber Kunden nützt das trotzdem so nix. Um das zu tun fehlt dem Shop noch Infrastruktur, man kann nur über Servereinstellungen für leere Seiten statt technischem Gebrabbel sorgen, das ist für Kunden aber auch nicht sonderlich schön.
Hallo Wilken, danke für die ausführliche Erklärung. Ist alles logisch und damit kann ich leben. Es gibt immer einen Weg, um so etwas zu fixen, was ich durch die Hilfestellung von Peru auch schon gemacht habe. Zur Not hätte ich die Hersteller bei JTL rausgeschmissen, dann klappt es auch. Gruß Harald
Hallo, ich hatte das Problem auch. Bei mir war es so, das die Tabelle "manufacturers" zwar gefüllt war, aber der Inhalt (auch wenn ich im Gambio-Admin war und dort auf Hersteller geklickt habe) wurde nicht angezeigt. Das lag anscheinend daran, das die Tabelle "manufacturers_info" keine Daten hatte. Wenn man diese Tabelle dann mit den entsprechenden Daten füllt (mittels SQL-Statement, Felder manufacturers_id und language_id) war bei mir alles wieder gut, sowohl auf der Seite an sich (Fehlermeldung war weg) sowie im Gambio-Adminbereich. Das vielleicht noch als ergänzende Information.
Das hängt davon ab wie das genau in welcher Form kaputt ist. Der Weg vorwärts: Die Hersteller SQL Tabellen reparieren. Eventuell genügt auch das öffnen und speichern jedes Herstellers im Backend. Alternativ Herstellerzuordnungen in den Artikeln löschen und Hersteller Tabellen in der Datenbank leeren.
Hallo Wilken soll ich ein Ticket machen weil in der datenbank habe ich mehr hersteller als im Shop angezeigt wird.
Unser System sagt mir, dass das heute nachmittag vom Kollegen im Support bearbeitet wurde, aber der hats noch nicht geschlossen. Irgendwas arbeitet der da wohl noch...
Ich sehe gerade, dass ihr mit Perus Lösung Inkonsistenzennin der Datenbank erzeugt: Die Hersteller werden zwischen Gambio und JTL mittels der jtl_connector_link_manufacturer Tabelle synchronisiert. Ich tippe drauf, dass ihr mit Perus Lösung entweder eure JTL Datenbank zerschießt oder alle neu angelegten Hersteller doppelt in JTL habt, sofern ihr irgendwann nochmal wieder Artikel und Kategorien importieren wollt.
Ich hänge mich hier einmal ran. Habe nach einem Update auf 3.12.0.4 diese Fehlermeldung in einem Shop: FATAL ERROR(1): "Uncaught EntityNotFoundException: Manufacturer entity was not found with provided id "19" in /www/htdocs/xxx/GXMainComponents/Services/Core/Manufacturer/Repositories/ManufacturerReader.inc.php:105 .... Das Problem konnte ich lösen, da fehlte ein Eintrag in der Tabelle manufacturers_info Aber: Die Hersteller stehen nicht mehr im Admin und die Seite ist auch nicht über ...com/admin/admin.php?do=Manufacturer aufrufbar. Wie bekomme ich die wieder in den Admin?
Nix im Log? Dann muss man den Quelltext der Seite per Hand lesen. Wahrscheinlich ist noch was in der Datenbank korrupt bei den Herstellertabellen.