Ciao, sempre nella fase di realizzazione di un import da un file CSV dei prodotti, ho un errore strano per le immagini: se il prodotto non esiste, l'import delle immagini avviene senza problemi, mentre se il prodotto è già esistente le immagini non vengono importate con un errore su image->add().
Questa è la funzione di inserimento delle immagini comune ai due casi :
function addImage($id_product, $imageUrl,$cover = true) {
global $shops;
global $lang_id;
//echo "--> addImage: id_product : ".$id_product."\n";
//echo "--> addImage: imgageUrl CSV : ".$imageUrl."\n";
$imageUrl = str_replace("#","%23",$imageUrl);
//echo "--> addImage: imgageUrl richiesto: ".$imageUrl."\n";
$image = new Image();
$image->id_product = $id_product;
//$image->position = -1;
$image->cover = $cover;
if (($image->validateFields(false, true)) === true &&
($image->validateFieldsLang(false, true)) === true && $image->add())
{
//echo "dentro if \n";
$image->associateTo($shops);
if (!copyImg($id_product, $image->id, $imageUrl, 'products', true))
{
echo "----> copia andata a male\n";
$image->delete();
}
}
else {
$image->delete();
echo "----> immagine non valida \n";
}
echo "---------------------------------------------------";
return $image->id;
}
Nell'if che porta all'errore:
$image->validateFields(false, true) ritorna true
$image->validateFieldsLang(false, true) ritorna true
$image->add() ritorna false
Per il valore di $cover: viene passata una sola volta true, e nel caso di prodotto già esistente (il caso del problema) viene passato sempre false.
Ho inserito dei messaggi di debug e $id_product è correttamente passato in entrambi i casi.
Dove è che sto sbagliando ?
M.