Jump to content

Edit History

ziobudda

ziobudda

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.

ziobudda

ziobudda

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.

×
×
  • Create New...