Уникальность SKU

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

Комментарии

Аватар пользователя Moel Moel 10 июля 2014 в 5:10

Небольшой гайд про уникальность 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

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

Спасибо большое! Решено! Мне были не нужны пункты 4 и 5, поэтому не пробовал. У меня все работает на версии feeds 7.x-2.0-alpha8. Правда я ставил на нее патч из этой ссылки https://www.drupal.org/node/661606#comment-5921904, но, думаю, и так бы заработало.

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

Есть один косяк при таком подходе. Ноды, которые были созданы вручную (а их более 1к) не обновляются с такими настройками.

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

"Poboltu" wrote:
Есть один косяк при таком подходе. Ноды, которые были созданы вручную (а их более 1к) не обновляются с такими настройками.

Грех, создавать столько товаров вручную=)

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

Moel wrote:
"Poboltu" wrote:
Есть один косяк при таком подходе. Ноды, которые были созданы вручную (а их более 1к) не обновляются с такими настройками.

Грех, создавать столько товаров вручную=)

Ну здесь что есть, то есть Smile При том, даже если товара 2 или 3, мы сталкиваемся в перспективе с проблемой, когда эти 2 или 3 придется заменить из файла импортом.

Аватар пользователя Poboltu Poboltu 12 июля 2014 в 16:09

Проблема решена следующим образом:

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

Также теоретически возможно решение через модуль Computed field, но поля типа computed не дружат с feeds.

Аватар пользователя marazmus marazmus 14 июля 2014 в 8:31

"Poboltu" wrote:
Единственный минус - при добавлении товара нужно заполнять еще одно поле таким же значением, что и SKU

Добавьте хук на node_save...

Аватар пользователя rustiksab rustiksab 26 октября 2014 в 21:11

А кто подскажет как сделать наоборот что бы можно было заливать sku дубляжом, ругается при импорте что дубляж sku, хотя галочка уникальности не стоит