Jump to content

[RISOLTO] Legare immagini in script di import CSV


ziobudda

Recommended Posts

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.

Edited by ziobudda (see edit history)
Link to comment
Share on other sites

Grazie, ma è già similissimo al codice che uso io. Comunque alla fine ho risolto. Era un errore mio stupido ma che il codice PS non mi segnalava come errore: la doppia cover. 

Una sola immagine puo' essere settata come cover, ed io ero convinto di rispettare questo vincolo mentre invece non li rispettavo. Ora ho risolto.

Grazie comunque.

M.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...