Fehlermeldung: Uncaught EntityNotFoundException: Manufacturer entity was not found

Thema wurde von haralddwenger, 6. Januar 2019 erstellt.

  1. haralddwenger

    haralddwenger Aktives Mitglied

    Registriert seit:
    15. März 2015
    Beiträge:
    27
    Danke erhalten:
    3
    Danke vergeben:
    16
    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 &quot;442&quot; 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-&gt;getById(Object(IdType))
    #1 /var/www/web29544536/html/vinsole/GXMainComponents/Services/Core/Manufacturer/ManufacturerReadService.inc.php(72): ManufacturerRepository-&gt;getById(Object(IdType))
    #2 /var/www/web29544536/html/vinsole/system/classes/products/ProductInfoContentView.inc.php(561): ManufacturerReadService-&gt;getById(Object(IdType))
    #3 /var/www/web29544536/html/vinsole/system/classes/products/ProductInfoContentView.inc.php(104): ProductInfoContentView-&gt;_assignRichSnippetData()
    #4 /var/www/web29544536/html/vinsole/system/classes/products/ProductInfoContentView.inc.php(138): ProductInfoContentView-&gt;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
     
  2. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    1. September 2012
    Beiträge:
    2.422
    Danke erhalten:
    417
    Danke vergeben:
    157
    Den Hersteller anlegen im Herstellerverzeichnis des Shops?
     
  3. haralddwenger

    haralddwenger Aktives Mitglied

    Registriert seit:
    15. März 2015
    Beiträge:
    27
    Danke erhalten:
    3
    Danke vergeben:
    16
    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
     
  4. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    1. September 2012
    Beiträge:
    2.422
    Danke erhalten:
    417
    Danke vergeben:
    157
    #4 Anonymous, 6. Januar 2019
    Zuletzt bearbeitet: 6. Januar 2019
    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.
     
  5. haralddwenger

    haralddwenger Aktives Mitglied

    Registriert seit:
    15. März 2015
    Beiträge:
    27
    Danke erhalten:
    3
    Danke vergeben:
    16
    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
     
  6. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    1. September 2012
    Beiträge:
    2.422
    Danke erhalten:
    417
    Danke vergeben:
    157
    Ich denke das Jtl nur die Artikel anfasst und nicht das drumrum. Deswegen fehlt der Hersteller wohl.
     
  7. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    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.
     
  8. haralddwenger

    haralddwenger Aktives Mitglied

    Registriert seit:
    15. März 2015
    Beiträge:
    27
    Danke erhalten:
    3
    Danke vergeben:
    16
    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
     
  9. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    2. November 2017
    Beiträge:
    176
    Danke erhalten:
    30
    Danke vergeben:
    78
    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.
     
  10. Mike80

    Mike80 Erfahrener Benutzer

    Registriert seit:
    11. Oktober 2011
    Beiträge:
    169
    Danke erhalten:
    8
    Danke vergeben:
    13
    Hallo

    ich habe das Problem auch was ist die einfachste lösung um das Problem zu lösen.
     
  11. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    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.
     
  12. Mike80

    Mike80 Erfahrener Benutzer

    Registriert seit:
    11. Oktober 2011
    Beiträge:
    169
    Danke erhalten:
    8
    Danke vergeben:
    13
    Hallo Wilken

    soll ich ein Ticket machen weil in der datenbank habe ich mehr hersteller als im Shop angezeigt wird.
     
  13. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Dann am besten ja.
     
  14. Mike80

    Mike80 Erfahrener Benutzer

    Registriert seit:
    11. Oktober 2011
    Beiträge:
    169
    Danke erhalten:
    8
    Danke vergeben:
    13
    Hallo Wilken

    habe das Ticket erstellt mit der Nr. #100711036
     
  15. Mike80

    Mike80 Erfahrener Benutzer

    Registriert seit:
    11. Oktober 2011
    Beiträge:
    169
    Danke erhalten:
    8
    Danke vergeben:
    13
    Hallo

    wann wird mein Ticket Bearbeitet da es um den Live Shop geht.
     
  16. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    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...
     
  17. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    19. Juni 2012
    Beiträge:
    4.831
    Danke erhalten:
    1.122
    Danke vergeben:
    947
    Falsch. Ich lege Hersteller immer in JTL an und synchronisiere sie ganz normal.
     
  18. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    19. Juni 2012
    Beiträge:
    4.831
    Danke erhalten:
    1.122
    Danke vergeben:
    947
    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.
     
  19. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    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?
     
  20. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Nix im Log? Dann muss man den Quelltext der Seite per Hand lesen. Wahrscheinlich ist noch was in der Datenbank korrupt bei den Herstellertabellen.