Jump to content
ziobudda

[RISOLTO] Legare immagini in script di import CSV

Recommended Posts

Posted (edited)

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)

Share this post


Link to post
Share on other sites

Ciao,,

prova questo codice..

 

é differente

 

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

Ottimo..spesso ci si pianta su cose stupide ...ma Ps ha sempre ragione:-)

 

ciao

Share this post


Link to post
Share on other sites

Anche io ho sempre ragione.... tranne quando ho torto.... :D

 

Mia moglie invece ha sempre ragione... anche quando ha torto :D

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More