У меня есть скрипт, который извлекает данные из стороннего файла.Мой импорт просто анализирует и вставляет строки, что работает нормально.
Проблема возникает с изображениями.
При запуске сценария импорта сначала удаляются все текущие элементы, а затем начинается импорт,вставка всех продуктов и изображений в галерею.
При первом импорте все нормально, изображения идут, и я вижу их на интерфейсе без проблем.Проблема возникает каждый раз, когда я повторно импортирую эти продукты, кажется, что не все изображения удаляются, как, например, когда товары импортируются повторно, я вижу, например, правильные 4 изображения, а затем загружает пустые строки, например изображениядолжен быть там, но не может быть найден.
Я не хочу видеть эти пустые строки, но я не уверен, почему они там есть.
Может быть, потому чтоизображения для продукта уже есть в каталоге?
Я действительно не уверен, что и почему он делает то, что он есть.
Спасибо
РЕДАКТИРОВАТЬ:
Мой код:
<code>require_once('app/Mage.php');
$app = Mage::app('default');
$product = Mage::getSingleton('catalog/product');
$txt_file = file_get_contents('test.txt');
$rows = explode("\n", $txt_file);
array_shift($rows);
foreach($rows as $row => $data)
{
//get row data
$row_data = explode('^', $data);
$info[$row]['uniqueid'] = $row_data[0];
$info[$row]['client'] = $row_data[1];
$info[$row]['make'] = $row_data[2];
$info[$row]['model'] = $row_data[3];
$info[$row]['adtext'] = $row_data[4];
//display images
$row_images = explode(',', $info[$row]['picturereference']);
foreach($row_images as $row_image)
{
$product->addImageToMediaGallery(Mage::getBaseDir('media') . DS . 'import/' . $row_image, array('image', 'small_image','thumbnail'), false, false);
}
$product->setStoreId(Mage::app()->getStore(true)->getWebsite()->getId());
$product->setWebsiteIds(array(Mage::app()->getStore(true)->getWebsite()->getId()));
$product->setId($info[$row]['id']);
$product->setSku(strtolower($info[$row]['make']).'-'.strtolower($info[$row]['model']));
$product->setName($info[$row]['make']);
$product->setDescription($info[$row]['adtext']);
try {
$product->save();
echo "Saved";
}
catch (Exception $ex) {
echo "<pre>".$ex."
";}}
Это потому, что addImageToMediaGallery
вызывается на каждой итерации и добавляет все изображения к каждому продукту?
Спасибо