Ich aktualisiere Produkte programmgesteuert und füge ihnen dann Bilder hinzu über
$ product-> addImageToMediaGallery ($ file, array (<flags>), true, false);
Für einige Produkte funktioniert das einwandfrei, für andere gibt es mir
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`db11057204-walthermagestaging`.`catalog_product_entity_media_gallery_value`, CONSTRAINT `FK_CAT_PRD_ENTT_MDA_GLR_VAL_VAL_ID_CAT_PRD_ENTT_MDA_GLR_VAL_ID` FOREIGN KEY (`value_id`) REFERENCES `c), query was: INSERT INTO `catalog_product_entity_media_gallery_value` (`value_id`, `store_id`, `label`, `position`, `disabled`) VALUES (?, ?, ?, ?, ?)
Ich konnte noch kein Muster bestimmen.
Es heißt, dass eine Fremdschlüsseleinschränkung fehlschlägt, aber in der Fehlermeldung wird das Ziel der FK nach dem ersten Buchstaben abgeschnitten, was mich ahnungslos macht. Wo soll man suchen? Was ist zu tun?
BEARBEITEN
media_gallery
Könnte es sein, dass es kein eav-Attribut gibt, da diese Produkte automatisch erstellt werden? Wenn ja, wie kann ich das überprüfen?
Antworten:
Ich habe das schon einmal gesehen und es war das Ergebnis des Schreibens von Code wie folgt:
Defekter Code wird nicht ausgeführt:
Lösung
Dies führt nicht nur zum Laden und Sperren, sondern die Bildergalerie wird auch nicht in die Sammlung geladen, wodurch Fremdschlüsseleinschränkungen fehlschlagen.
Anstatt in der Schleife zu speichern, kann Ihr Skript das Admin-Panel emulieren, sodass Sie Sammlungen speichern können. Außerdem möchten Sie die Mediengalerie zu Ihrer Sammlung hinzufügen:
quelle
Ich hatte diese Fehlermeldung, als zwei Produktbilder den gleichen Dateinamen hatten. Ich importiere Produkte über Magmi, und wenn der Administrator versucht, das Produkt nach einer Bearbeitung zu speichern, wird das Bild entfernt. Die Problemumgehung besteht darin, das Produktbild umzubenennen oder das Bild manuell über das Admin-Panel hochzuladen. Das Admin-Panel benennt die Namen um und behandelt sie korrekt.
quelle