Feeds дублируются товары при импорте

Главные вкладки

Аватар пользователя IIISpikerIII IIISpikerIII 22 апреля 2013 в 14:30

Здравствуйте! Импортирую товары при помощи модуля feeds через файл csv и столкнулся со следующей проблемой. Делаю поле "UC: Model/SKU" уникальным т.е. это артикул товара. В настройках выбрал "Replace existing nodes".

При импорте товаров с одинаковым артикулом, создаются еще записи с таким же артикулом, вместо того чтобы заменить уже имеющиеся значения.

Если же сделать уникальным полем заголовок, тогда при импорте товаров с одинаковым заголовком, значения старого товара заменятся на новые без создания новых отдельных записей. Мне же нужно чтобы товары идентифицировались по артикулу а не по заголовку. Как можно решить эту проблему?

ВложениеРазмер
Иконка изображения catt.png9.6 КБ

Комментарии

Аватар пользователя aa2007 aa2007 22 апреля 2013 в 15:21

странно конечно.. а что в журнал пишется? все норм? можно попробовать ску записывать в GUID и его делать уник.

Аватар пользователя IIISpikerIII IIISpikerIII 22 апреля 2013 в 15:54

"aa2007" wrote:
можно попробовать ску записывать в GUID и его делать уник.

Спасибо так и сделал! Только получается, что в файле импорта должны фигурировать два одинаковых значения SKU и Артикул.

Аватар пользователя aa2007 aa2007 23 апреля 2013 в 13:41

"IIISpikerIII" wrote:
Только получается, что в файле импорта должны фигурировать два одинаковых значения SKU и Артикул.

Нет. Это не обязательно.

Аватар пользователя Dr.Osd Dr.Osd 5 июня 2013 в 19:40

Странно получается. Я использую feeds import вместе с feeds tamper. Tamper Explode делает массив из строки артикулов через запятую. В самом импортере GUID назначен уникальным но товары все равно дублируются. У кого-то есть идеи, в чем может быть проблема?

Аватар пользователя bonodig bonodig 28 ноября 2013 в 20:18

Судя по всему это не в Feeds проблема, он своё делает чётенько. Как оказалось всё решается быстро в самом представлении в расширенных настройках "Настройки запроса: Настройки"

отмечаем галочкой "Уникальность"

Далее в "Критерии фильтрации" добавил новый фильтр(к уже имеющемуся фильтру общего вывода товаров) "Содержимое: Ссылка:url (содержит слово ..тра.ля.ля..)

и по этому признаку всё что мне нужно выводится уникальным(естественно у каждого свои будут признаки:)).

Аватар пользователя Moel Moel 11 июля 2014 в 18:15

"Poboltu" wrote:
Немного не то. Материал дублируется, потому что SKU уникальность задается через привязку GUID

Я могу вам показать как сделать, что бы у вас появилась галка как в первом посте на скриншоте. Но толку это не дает, о чем и говорит автор.

Аватар пользователя Poboltu Poboltu 11 июля 2014 в 18:18

Moel wrote:
"Poboltu" wrote:
Немного не то. Материал дублируется, потому что SKU уникальность задается через привязку GUID

Я могу вам показать как сделать, что бы у вас появилась галка как в первом посте на скриншоте. Но толку это не дает, о чем и говорит автор.

А покажите, пожалуйста, может, получится потом помочь в решении основного вопроса

Аватар пользователя Moel Moel 11 июля 2014 в 19:59

"Poboltu" wrote:
А покажите, пожалуйста, может, получится потом помочь в решении основного вопроса

В файле uc_feeds.module делаете так:

<?php
 $targets
['model'] = array(
            
'name' => t('UC: Model/SKU'),
            
'callback' => 'uc_feeds_set_target',
            
'description' => 'Ubercart:' t('Model/SKU'),
            
'optional_unique' => TRUE,
        );
?>
Аватар пользователя Poboltu Poboltu 12 июля 2014 в 16:06

Не просто, но эту задачу можно решить, добавив поле, которое будет дублировать значение SKU. Забавно, но такую задачу решает Computed field, который создает поля, не желающие импортироваться через feeds.

Решил проблему таким образом - создал текстовое поле, через phpmyadmin присвоил существующим товарам в это поле те же значения, что и у поля SKU. Задал в настройках импорта проверку на уникальность нового поля. Все работает, дублей не создается. Единственный минус - при добавлении товара нужно заполнять еще одно поле таким же значением, что и SKU. А этим недостатком можно пренебречь.