Видео-урок и модуль импорта для Ubercart

5 августа 2008 в 23:54
Аватар пользователя WiseMan WiseMan 0 67

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

Что ж, выкладываю – принимайте кому нужно. Улучшайте, кто умеет кодить Wink

Модуль позволяет импортировать товары с картинками, с атрибутами и опциями публикации.

Файл node_import.zip - это сам модуль импорта модифицированный под ubercart.
Файл primery.zip - примеры файлов для импорта.

Урок по использованию >> (28 мб)

Обращаю внимание, что этот модуль обновлять нельзя иначе вы потеряете добавленный в него функционал.

Многое есть в уроке. Для тех у кого инет "не жирный" делюсь подробностями.

ВАЖНО - для корректной работы модуля, на момент импорта необходимо отключить отображение кнопки "Добавить в корзину", т.к. на шаге предпросмотра по ходу импорта данные кнопки будут конфликтовать с формой отправки данных. Если кто найдет более красивое решение этой проблемы - отпишитесь в комментариях, пжта.

Атрибуты
Для импорта по полной, просто добавляете в файл по 4 колонки под каждый атрибут. Например, вот такие, беру первые 2 атрибута по списку с моего тестового магазина (у вас будут свои):

Product attr.: Размер: 104-110: enabled
Product attr.: Размер: 104-110: cost
Product attr.: Размер: 104-110: ordering
Product attr.: Размер: 104-110: price
Product attr.: Размер: 104-110: weight

Product attr.: Размер: 107-114: enabled
Product attr.: Размер: 107-114: cost
Product attr.: Размер: 107-114: ordering
Product attr.: Размер: 107-114: price
Product attr.: Размер: 107-114: weight

и т.д. и т.п. В файле примеров увидите аналогичные колонки.

В уроке есть информация, но повторю этот момент еще раз.

Значения для атрибутов

enabled - указывает нужен атрибут или нет, ставится 1 или 0
cost - можно не использовать, т.е. 0 везде
ordering - тоже может быть пустым или 0
price - если выбирать этот атрибут, то как изменится цена надо указать
weight - можно не ставить.

ИЛИ КРАТКО

Если брать по минимуму можно использовать по две колонки под
каждый атрибут:

Product attr.: Размер: 104-110: enabled
Product attr.: Размер: 104-110: price

Product attr.: Размер: 107-114: enabled
Product attr.: Размер: 107-114: price

Готовимся к импорту

После того как создан файл для импорта его надо сохранить в формате CSV. Это лучше делать через Open Office в кодировке utf-8 и разделителями «запятая» и «кавычки», ИМХО.

Если кто хочет пользоваться Excell, то для импорта сохраняйте как "текст разделенной табуляцией", но полученный файл перед импортом надо обязательно конвертировать в utf-8. Иначе русский текст не импортируется.

Примерно так - остальное показано в уроке.

Как импортировать с картинками?

Они обязательно должны быть сначала загружены на сервер в папку files (по умолчанию) или в вашу согласно настроек движка.

Если в колонке для картинок в файле импорта указываете имя файла, например, kartinka.jpg, то этот файл должен быть обязательно в папке files!

Если же вы хотите рассортировать картинки продуктов по папкам, то надо сначала создать эти папки внутри files и затем положить туда все нужные картинки.

В колонке картинок при импорте тогда нужно указать не просто имя файла, а имя файла с папкой:
папка-1/kartinka.jpg
папка-1/kartinka2.jpg
папка-2/kartinka5.jpg
и т.д. и т.п.

Поле, отвечающее за вставку картинок, что в выпадающем списке
доступных полей, называется Image fid (field_image_cache)

В заключение - в модуле сделал есть защита от ошибок. Я сделал так, чтобы при наличии ошибок в файле импорта кнопка "продолжить" не появлялась пока все ошибки не исправлены.

Вроде все.

P.S. Прошу извинить за текст - правил в спешке, прямо из писем клиенту. Если увидите ошибки или вам кажется что-то надо поправить – дайте знать, пожалуйста, через личку или свяжитесь со мной через мой сайт Точка-старта: как открыть интернет магазин.

__________________________
Коллекция "маленьких" причин для больших дел... растем помаленьку Smile

ВложениеРазмер
Иконка пакета node_import.zip53.68 КБ
Иконка пакета primery.zip25.28 КБ

Комментарии

Да и по имени продукта ерунда получается... Зайдите на avers26.ru Там раздел прайс лист, и в первую же категорию. Увидете много одинаковых продуктов. Что не случилось бы по SKU, так как он уникален для продукта.

12 августа 2008 в 10:19

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

12 августа 2008 в 12:14

И еще одно, говорю ему при нахождении такой же ноды, обновлять её, но он пишет ошибку типо нода такая уже есть, и кнопку apply нажать нельзя.

13 августа 2008 в 13:40

При импорте прайса с 1000-х записями, импортируется только где-то 188, и белая страничка. С моим скриптом такого не наблюдалось.

13 августа 2008 в 14:12

S-anches wrote:
Дело не во мне, а в 1с, из которой я делаю выгрузку. Я не в курсе почему у нас есть товар с одинаковым названием, но с разным артикулом. Но все таки артикул уникален, и хотелось бы что-бы он был уникален и в модуле импорта.

К сожалению, как уже написал вам в письме, сейчас у меня нет острой необходимости расширять функционал модуля. Попробуйте обратиться к сообществу здесь на сайте, может кто возьмется.

Jamshut wrote:
Значит не сможете переделать модуль импорта, чтобы sku был уникальным? :(

получается так Sad

Jamshut wrote:
И еще одно, говорю ему при нахождении такой же ноды, обновлять её, но он пишет ошибку типо нода такая уже есть, и кнопку apply нажать нельзя.

Это посмотрю. Вообще странно, не должно такого быть.

Jamshut wrote:
При импорте прайса с 1000-х записями, импортируется только где-то 188, и белая страничка. С моим скриптом такого не наблюдалось.

Попробуйте заглянуть в логи сервера, что пишет? вероятней всего памяти не хватает.

Так если у вас есть познания в php и даже "модуль" свой писали, то попробуйте усовершенствовать мой модуль. Думаю вам не только я буду благодарен Wink

13 августа 2008 в 15:25

У меня плохо получается писать красивые модули... Я в объектно-ориентированном программировании сразу же гружусь. В логи сервера не могу заглянуть, сервер не мой. А в логах друпала тихо.

14 августа 2008 в 7:01

Видемо у меня хостинг г... На локалхосте импорт 1200 продуктов прошел нормально, с одной заминкой, сказал что время исполнения скрипта вышло, увеличил, и все окей. Видемо у хостера такая же проблема.

16 августа 2008 в 6:13

SlavaGolitsin, я же вам уже и личку отписался и в указанной вами ветке тоже писал - возможно. Свяжитесь со мной по E-mail обсудим подробности и цену. Только сильно не затягивайте - пока есть время можно обсудить. Если договоримся, то работу начну в примерно в первой половине сентября. Раньше никак пока, если только за внеурочное накините Wink

21 августа 2008 в 1:33

а можно скачать видео урок?, а то только просмотр онлайн и всё, если несложно киньте пожалуйста ссылка для скачивания

11 сентября 2008 в 5:42

В тексте дана прямая ссылка на файл, можно загружать. Сохраните его через контекстное меню браузера (правая кнопка мыши на ссылке "Сохранить объект как...") или через любой загрузчик файлов.

12 сентября 2008 в 1:43

А если несколько картинок нужно добавить в imagefield (поле multiple values)? как импортировать в таком случае продукты? как я понял с этим модулем можно только одну картинку закидывать в поле... как быть?

2 ноября 2008 в 8:39

Пока данный функционал не предполагаю добавлять. Как вариант, можете попробовать xml-экспорт товаров через встроенный модуль магазина, а затем, добавив поля с дополнительными картинками в xml-файл, импортировать его. Опять же встроенным модулем, что идет с магазином по умолчанию.

2 ноября 2008 в 12:08

Понятно, просто в node_import 5-1.8 появилась возможность(а может и была возможность, только сейчас познакомился с этим модулем) множественного импорта... жаль что в Вашей разработке этого нет, но все равно очень полезный модуль)

2 ноября 2008 в 18:30

Спасибо, очень полезный модуль, а под шестерку не будете делать? уже есть dev версия node import. К сожалению полностью порт не смогу оплатить но могу проспонсировать немного

18 ноября 2008 в 1:14

Во первых спасибо за модуль!

Но вот заметил, что обновление позиций почему то обновляет все поля ноды.
То есть поля которые не существуют в импортируемом файле.
Очень не удобно для работы массовым обновлением цен,наличия,количества не трогая описания, категории.
Ну и для конечного продукта наверное было бы хорошо импортировать по 100 позиций. Ибо при импорте более 1000 выбрасывает по таймауту, к сожалению не везде можно добиться увеличения.

29 ноября 2008 в 7:21

При импорте 320 позиций товара(файл 150 кб) вылетает ошибка...

Fatal error: Cannot access empty property in Z:\home\victoria\www\sites\all\modules\node_import\supported\cck\content.inc on line 261

из 320 успешно импортируются только 138... не пойму в чем проблема!!!

8 декабря 2008 в 10:46

Здраствуйте. Не могли бы поправить последнюю версию node_import? обновил сайт, все модули которые можно было обновить, теперь начинается импорт и вылетает ошибка что нет функции ffile_open чтоли.
Если не можете бесплатно, скажите сколько заплатить. Если платно то было бы не плохо для 6 друпала модуль сделать.

8 декабря 2008 в 14:05

Ребят, мне сейчас реально некогда поддержкой модуля заниматься. Выложил с целью поделится. Вот.

Обращаю внимание всех - не обновляйте модуль, не будет работать! Поскольку вносились правки в код оригинашльного модуля.

Если кто-то владеет английским, то попробуйте связаться с разработчиком оригинального модуля http://drupal.org/project/node_import - может примет к сведению необходимость интеграции с ubercart, тем более что какие-то основы уже есть.

8 декабря 2008 в 22:03

Модуль прикольный.. Тока возник вопрос по разнесению по группам (терминов). Есть ли хитрости в заполнении поля "Taxonomy: Catalog" ? Меня интересует получение дерева каталога из CSV без ручного заведения терминов..

18 января 2009 в 21:40

в видео-уроке есть на эту тему. Плюс смотрите пример файлов для импорта.

Разделять термины надо знаком |

18 января 2009 в 22:27

Просмотрел видео несколько раз, но не помогло... Меня интересует: "Марка авто -- Ауди -- 100" один товар и "Марка авто -- Ауди -- А6" другой, но у меня получается только в главной "начале" заводить категории без ПОД-категорий..
В примере "раздел 1|раздел 2|раздел 3" получается 3 категории в главной, а мне нужно получить подкатегории "раздел 1/раздел 2/раздел 3"

18 января 2009 в 23:11

Как вариант можно импортировать все термины в словарь единым списком, а уже затем использовать модуль http://drupal.org/project/taxonomy_manager Он позволяет управлять терминами такосномии массово, в т.ч. менять подчиненность.

19 января 2009 в 16:09

Спасибо, щас попробую...
А для большого количества товара и категорий что выбрать: UC или E-commerce ? А то ubercart интуитивно понятен, а екоммерц пару раз пытался настроить и бросал...

19 января 2009 в 20:24

Народ всем привет. Вот решил настроить импорт данных в Ubercart, через Import Node. Все понятно но споткнулся сразу на втором шаге:

Почему нет полей продукта в списке ???? Каким образом заставить их там появиться??

10 ноября 2015 в 11:46

Судя по всему вы используете оригинальный модуль, а он не поддерживает ubercart. Если у вас 5-версия Друпал, то берите мою модификацию модуля и пользуйтесь.

Не обновляйте, иначе не будет работать.

4 февраля 2009 в 22:48

А сколько по времени у Вас занимает импорт одного файла? просто у меня в файле 120 единиц товара (с 35 атрибутами у каждого) импортируется порядка 30 минут. мне кажется, что слишком долго. размер файла для экспорта порядка 100КБ. может у меня что-нибудь не так... а как у Вас?

5 февраля 2009 в 6:02

Ну или почти все. НЕ получается импортировать картинку. Скопировал все как пололжено., в папку files, (проверил именно эта папка установлена в настройках), введется ли логирование ошибок модуля импорта?? как выяснить почему он не видит файлы картинок для импорта.?

5 февраля 2009 в 9:03

Я пробовал осуществлять импорт только 5 товаров для теста... я только пытаюсь развернуть магазин, поэтому щас тесты и настройка...как налажу импорт с картинками тогда буду эксперементировать на больших объемах данных...

5 февраля 2009 в 9:12

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

5 февраля 2009 в 9:51

А не подскажете что вы меняли в самом модуле? Пока заметил только что в указали путь на ваш inc файл, что-то еще?

5 февраля 2009 в 11:07

Не помню уже. Попробуйте путем сранения файлов с оригинальным модулем найти отличия. А может заодно и новая версия у вас получится Wink

5 февраля 2009 в 16:42

спасибо за модуль. есть пара моментов, из-за которых 2 дня провозился. расскажу для тех, кто будет его использовать.
1. как было указано выше, путь надо указывать не только в "файловой системе", но и в свойствах типа данных "продукт", в настройках поля 'image'.
2. основные для меня грабли были в том, что у меня часть товаров с картинками, часть - без. В этом случае надо сначала импортировать все товары, но не указывать путь к картинке (ну или отобрать товары без картинки). затем отобрать те товары, у которых картинка есть, и импортировать их, выбрав опцию при импорте "обновлять существующие позиции при совпадении".

24 февраля 2009 в 0:58

"WiseMan" wrote:
Не помню уже. Попробуйте путем сранения файлов с оригинальным модулем найти отличия. А может заодно и новая версия у вас получится ;)
1,5 месяца назад написал создателям node import - итог сегодня появился релиз с поддержкой ubercart!!! пойду пробовать!!!

26 февраля 2009 в 7:32

"Barcelona" wrote:
При импорте 320 позиций товара(файл 150 кб) вылетает ошибка...

Fatal error: Cannot access empty property in Z:\home\victoria\www\sites\all\modules\node_import\supported\cck\content.inc on line 261

из 320 успешно импортируются только 138... не пойму в чем проблема!!!

У меня аналогичная проблема даже с тестовыми примерами приложенными к модулю: из 5ти импортируется только 1.
пытаюсь установить на денвере.
Может кто подскажет в чём может быть дело?

11 мая 2009 в 23:50

Спасибо за модуль. Еще не перенес весь каталог, но протестировал на маленьких файлах, это потрясающе просто:)

27 июля 2009 в 1:02

появились проблемы, разбил файл по 100 записей, попробовал импортировать, после всех шагов, когда должен происходить импорт, сразу же белый экран, как будто памяти не хватило, так как делаю на локалке, выделил памяти 300 метров, и все равно не получается успевает импортировать 2-3 товара всего. В чем может быть проблема?

28 июля 2009 в 1:21
Аватар пользователя Atl Atl 0

Работаю в 6-ке.
1. Делаю контрольный файл из одной строчки.
2. Далее по пунктам.
На третьем шаге:

Жму Next и получаю:
Fatal error: Call to undefined function uc_product_node_is_product() in W:\...\sites\all\modules\node_import\supported\ubercart\uc_product.inc on line 15

Гляжу внутрь uc_product.inc:

В чем ошибка? Что делать?

10 ноября 2015 в 11:46

Atl wrote:
Работаю в 6-ке.
В чем ошибка? Что делать?

http://www.ubercart.org/forum/development/12605/uc_product_node_is_produ...
в последних релизах ubercart эту функцию uc_product_node_is_product переименовали в uc_product_is_product

соотв. подправь файл /node_import/supported/ubercart/uc_product.inc

у меня заработало))

11 октября 2009 в 15:03

anreyyyy, спасибо за оперативную информацию, действительно работает но не все.

Фишка этого модуля была в том, что можно не только добавлять новые товары но и обновлять существующие. А вот как обновить товары в 6-й версии не пойму.

Не вижу там нужных настроек.

17 ноября 2009 в 2:36

Мозг потихонечку начинает закипать...
Модуль ноде_импорт умолчательный таки работает с уберкартом или нет?
Там уже патчей наделали десяток.... Кто нибудь разобрался? Есть у кого рабочая верси ямодуля под 6ку(с поддержкой картинок)?

17 января 2010 в 12:39

Хм, вроде получилось
Поставил сейчас текущую дев версию 6.x-1.x-dev 2009-Oct-10
После ошибок узнал что нужно выполнить после установки модуля обновление ( http://drupal.org/node/454204 ), сделал файл, на одном из шагов указал соответствие.
Пока что проверил только с одним продуктом, но вроде все вышло нормально...
Подробнее после более тщательных тестов сообщу, что получилось.

17 января 2010 в 13:52

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

возможно ли настроить импорт, чтобы два разных товара ссылались на одну картинку?

13 января 2011 в 7:31

Это элементарно.
1. Закачиваем картинки по FTP в папку указываемую в imagefield поле.
2. И указываем в табличном файле для разных товаров одну и туже картинку.

13 января 2011 в 7:47

ps 6й друпал
Node_import проверяет : если картинка хоть раз загружалась (т.е. она есть в базе в талбице files), то node_import ругнется на это и не загрузит товар.
вот тут два точно тоже это спрашивают.
кстати если не через импорт добавлять товары, то одну и туже картинку можно добавлять к одному и к нескольким товарам(
а через node_import нельзя((

если перед импортом удалить все данные о файлах из таблице files (кроме csv-файла), то картинки импортируются, но если у двух товаров одна картинка, то второй товар не импортируется в уберкарт.
жесть!

13 января 2011 в 8:43

Как вариант добавьте в тип товар дополнительное imafgefield поле и для него указывайте файл изображения. Тогда получается?

13 января 2011 в 12:41

пробовал так, тоже самое:
вручную один и тотже файл добавляется в это поле, через import тотже файл нет

13 января 2011 в 12:59

А можно ли реализовать следующее - в 1С предприятие есть уникальный ID у каждого товара, вот можно ли по ID привязать термины таксономии и описание терминов при импорте на сайт?

10 марта 2011 в 13:41