Дублирование товаров в PrestaShop

14 июля 2011 | Автор: 4udak | Теги:

Дублирование товаров в PrestaShopДублирование товаров в PrestaShop наблюдал за все время в одном случае - когда импорт товаров производился на нескольких языках.

Причиной всему этому, как ни странно, но покуда не понятно почему, является повторный импорт изображений (ссылок на них).

На сайте это будет выглядеть "каждого товара по два".

Через админку что либо удалить не получается, удаляются обе картинки сразу, т.к. фактически изображение одно.

"Вылечить" это можно небольшой "зачисткой" в таблице ps_image базы данных или попробовать импортнуть пустой столбец для ссылок на картинки. Что удалять в базе данных сразу видно, если сделать сортировку по столбцу id товара, вы получите для одного товара два фото, второе удаляем и все будет Ок. Способ с повторным импортом пустого столбца не проверял лично, но думаю что работает.

Теперь заходим на сайт и радуемся! 🙂

P.S. Не забываем, что я всегда буду рад оказать Вам помощь в наполнение интернет-магазина, и Вам не придется мучиться с дублированием товаров и подобными проблемами, возникающими во время импорта и наполнения сайта. 😉



Понравилась статья? Подпишись на RSS моего блога!

Комментарии (11) на "Дублирование товаров в PrestaShop"

  1. bahoiks:

    На самом деле товары дублируются если у товара несколько изображений, и у каждого поле cover = 1. Сам столкнулся, поправил пару переменных в скрипте ипорта и всё нормально.

    • Если импортить все изображения за один раз, cover = 1 получится только у одного фото, у нескольких никак, что собственно и нужно.
      Если импортить еще раз фото - получатся дубли.

      • bahoiks:

        А зачем их второй раз импортировать? Так же если в таблице категорий будет две одинаковые записи то в категории будет отображаться два одинаковых товаров с одинаковым id

        • cover = 1 иначе как после повторного импорта получиться не может. значит вы все таки заипортили два раза, и даже искали ответ в интернете, если же здесь общаетесь сейчас, вот вам и ответ на вопрос зачем.
          случаи разные бывают - самый обычный и распространенный - по ошибке и невнимательности.
          Если же появилась такая тема, и даже обсуждаема - значит и имеют место соответствующие случаи.

          Сам столкнулся, поправил пару переменных в скрипте ипорта и всё нормально.

          поделитесь кодом, пожалуйста, тем кто будет "второй раз импортировать" - пригодится на будущее.

          • bahoiks:

            Импорт был из скрипта webasyst, там с позициями лажа какая то.

            while($row2=mysql_fetch_array($result2))
            {
            $cover=0;
            $ext=end(explode(".", $row2['filename']));
            $name=$row['productID']."-".$row2['photoID'].'.'.$ext;
            $largename=$row['productID']."-".$row2['photoID']."-large.$ext";
            $homename=$row['productID']."-".$row2['photoID']."-home.$ext";
            $smallname=$row['productID']."-".$row2['photoID']."-small.$ext";
            $mediumname=$row['productID']."-".$row2['photoID']."-medium.$ext";
            $thickbox=$row['productID']."-".$row2['photoID']."-thickbox.$ext";
            if($row2[priority]==0)
            {
            $cover=1;
            }
            if(copy('z:\home\localhost\www\products_pictures\\'.$row2['thumbnail'],'z:\home\presta\www\img\p\\'.$homename) AND copy('z:\home\localhost\www\products_pictures\\'.$row2['enlarged'],'z:\home\presta\www\img\p\\'.$largename) AND copy('z:\home\localhost\www\products_pictures\\'.$row2['thumbnail'],'z:\home\presta\www\img\p\\'.$smallname) AND copy('z:\home\localhost\www\products_pictures\\'.$row2['thumbnail'],'z:\home\presta\www\img\p\\'.$mediumname) AND copy('z:\home\localhost\www\products_pictures\\'.$row2['enlarged'],'z:\home\presta\www\img\p\\'.$thickbox) AND copy('z:\home\localhost\www\products_pictures\\'.$row2['enlarged'],'z:\home\presta\www\img\p\\'.$name))
            {
            $query='INSERT INTO `ps_image` (`id_image`,`id_product`,`position`,`cover`) VALUES ('.(int)$row2['photoID'].','.(int)$row['productID'].','.$position.','.(int)$cover.')';
            mysql_query($query,$link) or die("Таблица картинок".mysql_error($link));
            $position++;
            }

            }
            кусок кода из цикла импорта, импортирует все изображения касающиеся товара.

          • можете подробнее расписать что с этим кодом делать, куда писать и т.п.

            шаблон записи в csv, в которой картинки импортируете такой?: "ссылка_на_картинку1,ссылка_на_картинку2,ссылка_на_картинку3" и т.д.?

  2. bahoiks:

    конкретно этот код берёт все картинки из базы webasyst, копирует файлы в папку картинок prestashop и добавляет записи в таблицу ps_image. Этот код применим только при импорте товаров из движка webasyst

  3. Дмитрий:

    вот есть наполненный товар. в товаре справа есть иконка дублирование. создаем дубль. вся инфа о товаре остается, но на сайте нет товара в наличии, т.е. количество 0. И еще он не опубликован, т..е. надо включать его. Как испраивть?

    • Зачем на сайте два одинаковых товара на сайте?
      С этой целью видно он и не активен, подразумевается его какое-то редактирование и затем уже публикация на сайт.

      • Дмитрий:

        Производится наполнение магазина товаром и есть много одинаковых позиций. Импорт через cvs не получается. prestashop 1.5.6

Отправить комментарий

Подпишись и получай новости по RSS