Небольшой гайд про уникальность SKU в Feeds.
1) Ставим dev версию.
2) В соответствиях ставим ваше model => SKU ; model=> GUID (Used as unique),
где model является SKU в вашем csv файле.
3)В настройках Node processor ставим галку Update existing Материалы.
Все работает, но есть один недостаток:
если вы создадите еще один импорт, например у вас csv содержит только поля артикул и цены. То этот импорт все равно создаст новые материалы, так как GUID у фидс уникальный только в конкретном импорте. Поэтому идем дальше:
4) Накатываем патч отсюда https://www.drupal.org/node/1539224
5) У вас пояляется чудо галка GUID is unique per Feed source, которая будет выставлена. Снимаем эту галку.
И все работает. Проверено на 7.x-2.x-dev от 2014-Jun-17
Спасибо большое! Решено! Мне были не нужны пункты 4 и 5, поэтому не пробовал. У меня все работает на версии feeds 7.x-2.0-alpha8. Правда я ставил на нее патч из этой ссылки https://www.drupal.org/node/661606#comment-5921904, но, думаю, и так бы заработало.
Есть один косяк при таком подходе. Ноды, которые были созданы вручную (а их более 1к) не обновляются с такими настройками.
Грех, создавать столько товаров вручную=)
Ну здесь что есть, то есть При том, даже если товара 2 или 3, мы сталкиваемся в перспективе с проблемой, когда эти 2 или 3 придется заменить из файла импортом.
Создал текстовое поле, через phpmyadmin присвоил существующим товарам в это поле те же значения, что и у поля SKU. Задал в настройках импорта проверку на уникальность нового поля. Все работает, дублей не создается. Единственный минус - при добавлении товара нужно заполнять еще одно поле таким же значением, что и SKU. А этим недостатком можно пренебречь.
Также теоретически возможно решение через модуль Computed field, но поля типа computed не дружат с feeds.
Комментарии
Небольшой гайд про уникальность SKU в Feeds.
1) Ставим dev версию.
2) В соответствиях ставим ваше model => SKU ; model=> GUID (Used as unique),
где model является SKU в вашем csv файле.
3)В настройках Node processor ставим галку Update existing Материалы.
Все работает, но есть один недостаток:
если вы создадите еще один импорт, например у вас csv содержит только поля артикул и цены. То этот импорт все равно создаст новые материалы, так как GUID у фидс уникальный только в конкретном импорте. Поэтому идем дальше:
4) Накатываем патч отсюда https://www.drupal.org/node/1539224
5) У вас пояляется чудо галка GUID is unique per Feed source, которая будет выставлена. Снимаем эту галку.
И все работает. Проверено на 7.x-2.x-dev от 2014-Jun-17
Спасибо, сейчас попробую
Спасибо большое! Решено! Мне были не нужны пункты 4 и 5, поэтому не пробовал. У меня все работает на версии feeds 7.x-2.0-alpha8. Правда я ставил на нее патч из этой ссылки https://www.drupal.org/node/661606#comment-5921904, но, думаю, и так бы заработало.
Есть один косяк при таком подходе. Ноды, которые были созданы вручную (а их более 1к) не обновляются с такими настройками.
Грех, создавать столько товаров вручную=)
Ну здесь что есть, то есть При том, даже если товара 2 или 3, мы сталкиваемся в перспективе с проблемой, когда эти 2 или 3 придется заменить из файла импортом.
Проблема решена следующим образом:
Создал текстовое поле, через phpmyadmin присвоил существующим товарам в это поле те же значения, что и у поля SKU. Задал в настройках импорта проверку на уникальность нового поля. Все работает, дублей не создается. Единственный минус - при добавлении товара нужно заполнять еще одно поле таким же значением, что и SKU. А этим недостатком можно пренебречь.
Также теоретически возможно решение через модуль Computed field, но поля типа computed не дружат с feeds.
Добавьте хук на node_save...
Хорошая идея Спасибо
А кто подскажет как сделать наоборот что бы можно было заливать sku дубляжом, ругается при импорте что дубляж sku, хотя галочка уникальности не стоит