Import Error bei fehlenden Bildern

Hallo,
ich habe für unseren Shop CSVs diverser Hersteller mit 1000den Produkten. Das Coverbild wird mit dem Produkt mit importiert. Unser Problem ist, das der Import immer abbricht, wenn ein Bild nicht unter der angegeben URL vorhanden ist. Das kann man natürlich bei so vielen Produkten nicht garantieren und bei mehrere Produktupdates pro Monat kann das auch nicht manuell gemacht werden.

Irgendwer eine Idee wie ich den Check auf das vorhanden sein des Bildes (cover.media.url) ausschalte?

Wenn es nicht vorhanden/erreichbar ist, soll einfach nur das Dummybild verwendet werden. Wenn zB im CSV für das Coverbild gar nichts drinnen steht, funktioniert das ja auch so.

Shopware Version ist 6.5.8.6

Update:

Ich habe jetzt einen Workaround gebastelt. Der Kunde muss bei uns sowieso die CSV erstellen, diese jagt er dann nochmal durch ein PHP Skript, das alle CoverUrls checkt und die raus haut, die nicht funktionieren. Konkret habe ich dem Kunden ein minimales Frontend gemacht, wo er die CSV per Formular abschicken/hochladen kann und bekommt die sauberere CSV zurück.

Hier ist das PHP Skript (Achtung, es wird nur nach der Spalte cover_media gesucht. Wenn das wer anders benannt hat, muss das geändert werden.)

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['csvfile'])) {
    $csvFile = $_FILES['csvfile']['tmp_name']; // Temporärer Pfad zur hochgeladenen Datei
    $date = date("d-m-Y");
    $outputFile = 'cleaned-csv-' . $date . '.csv'; // Pfad zur bereinigten CSV-Datei

    // Funktion zum Überprüfen der URL
    function isImageUrl($url)
    {
        $headers = get_headers($url, 1);
        if ($headers !== false && isset($headers['Content-Type'])) {
            $contentType = $headers['Content-Type'];
            if (is_array($contentType)) {
                $contentType = $contentType[0];
            }
            return strpos($contentType, 'image/') === 0;
        }
        return false;
    }

    // CSV einlesen und verarbeiten
    if (($handle = fopen($csvFile, "r")) !== FALSE) {
        $output = fopen($outputFile, 'w');
        $header = fgetcsv($handle, 0, ";"); // Header-Zeile lesen
        $coverMediaIndex = array_search('cover_media', $header); // Index der 'cover_media'-Spalte finden

        fputcsv($output, $header, ';'); // Header in die Ausgabedatei schreiben

        while (($data = fgetcsv($handle, 0, ";")) !== FALSE) {
            if ($coverMediaIndex !== FALSE && !empty($data[$coverMediaIndex]) && !isImageUrl($data[$coverMediaIndex])) {
                $data[$coverMediaIndex] = ''; // Leere die Zelle, wenn die URL nicht erreichbar ist oder kein Bild darstellt
            }
            fputcsv($output, $data, ';'); // Zeile in die Ausgabedatei schreiben
        }
        fclose($handle);
        fclose($output);

        // Option zum Download der bereinigten Datei
        header('Content-Type: application/csv');
        header('Content-Disposition: attachment; filename="' . $outputFile . '"');
        readfile($outputFile);
    }
} else {
    echo "Fehler beim Einlesen der Datei.";
}
?>