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

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

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

Уже не раз возникали вопросы относительно импорта товаров в 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 КБ

Комментарии

Аватар пользователя S-anches S-anches 12 августа 2008 в 10:19

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

Аватар пользователя S-anches S-anches 12 августа 2008 в 12:14

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

Аватар пользователя S_anches S_anches 13 августа 2008 в 13:40

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

Аватар пользователя S_anches S_anches 13 августа 2008 в 14:12

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

Аватар пользователя WiseMan WiseMan 13 августа 2008 в 15:25

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

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

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

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

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

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

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

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

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

Аватар пользователя S_anches S_anches 14 августа 2008 в 7:01

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

Аватар пользователя S_anches S_anches 16 августа 2008 в 6:13

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

Аватар пользователя WiseMan WiseMan 21 августа 2008 в 1:33

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

Аватар пользователя Scarrr Scarrr 11 сентября 2008 в 5:42

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

Аватар пользователя WiseMan WiseMan 12 сентября 2008 в 1:43

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

Аватар пользователя Barcelona Barcelona 2 ноября 2008 в 8:39

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

Аватар пользователя WiseMan WiseMan 2 ноября 2008 в 12:08

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

Аватар пользователя Barcelona Barcelona 2 ноября 2008 в 18:30

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

Аватар пользователя gumk gumk 18 ноября 2008 в 1:14

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

Аватар пользователя Sywooch Sywooch 29 ноября 2008 в 7:21

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

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

Аватар пользователя Barcelona Barcelona 8 декабря 2008 в 10:46

При импорте 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... не пойму в чем проблема!!!

Аватар пользователя S_anches S_anches 8 декабря 2008 в 14:05

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

Аватар пользователя WiseMan WiseMan 8 декабря 2008 в 22:03

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

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

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

Аватар пользователя Pasha553 Pasha553 18 января 2009 в 21:40

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

Аватар пользователя WiseMan WiseMan 18 января 2009 в 22:27

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

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

Аватар пользователя Pasha553 Pasha553 18 января 2009 в 23:11

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

Аватар пользователя WiseMan WiseMan 19 января 2009 в 16:09

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

Аватар пользователя Pasha553 Pasha553 19 января 2009 в 20:24

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

Аватар пользователя itex itex 10 ноября 2015 в 11:46

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

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

Аватар пользователя WiseMan WiseMan 4 февраля 2009 в 22:48

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

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

Аватар пользователя Barcelona Barcelona 5 февраля 2009 в 6:02

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

Аватар пользователя itex itex 5 февраля 2009 в 9:03

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

Аватар пользователя itex itex 5 февраля 2009 в 9:12

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

Аватар пользователя itex itex 5 февраля 2009 в 9:51

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

Аватар пользователя gumk gumk 5 февраля 2009 в 11:07

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

Аватар пользователя WiseMan WiseMan 5 февраля 2009 в 16:42

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

Аватар пользователя keereel@drupal.org keereel@drupal.org 24 февраля 2009 в 0:58

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

Аватар пользователя gumk gumk 26 февраля 2009 в 7:32

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

Аватар пользователя Snip Snip 11 мая 2009 в 23:50

"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.
пытаюсь установить на денвере.
Может кто подскажет в чём может быть дело?

Аватар пользователя Splinter Splinter 27 июля 2009 в 1:02

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

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

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

Аватар пользователя Atl Atl 10 ноября 2015 в 11:46

Работаю в 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:

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

Аватар пользователя anreyyyy anreyyyy 11 октября 2009 в 15:03

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

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

Аватар пользователя VasyOK VasyOK 17 ноября 2009 в 2:36

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

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

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

Аватар пользователя pselfin pselfin 17 января 2010 в 12:39

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

Аватар пользователя pselfin pselfin 17 января 2010 в 13:52

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

Аватар пользователя chel chel 13 января 2011 в 7:31

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

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

Аватар пользователя VasyOK VasyOK 13 января 2011 в 7:47

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

Аватар пользователя chel chel 13 января 2011 в 8:43

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

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

Аватар пользователя VasyOK VasyOK 13 января 2011 в 12:41

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

Аватар пользователя chel chel 13 января 2011 в 12:59

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

Аватар пользователя Heihachi88 Heihachi88 10 марта 2011 в 13:41

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