Автоматический импорт, экспорт и обновление товаров из прайс-листа в VirtueMart 2

"Все аспекты самостоятельного создания и продвижения сайтов
от практика с многолетним опытом." — блог Рудь Сергея
info@site-on.net
Заметка: активирована адаптивная версия сайта, которая автоматически подстраивается под небольшой размер Вашего браузера и скрывает некоторые детали сайта для удобства чтения. Приятного просмотра!
29.08.2013

Здравствуйте дорогие читатели блога Site on! Сегодня вас ждёт подробная инструкция о том, как с помощью бесплатного компонента для Joomla 2.5 — CSVI 5 можно организовать автоматический импорт и последующее обновление цен из вашего прайс-листа прямо в VirtueMart 2.

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

Для этого необходимо:

Далее вы должны привести свой прайс-лист к такой структуре:

прайс-лист

А именно: одна строка – один товар. Количество столбцов может быть разным, в зависимости от того, какие свойства должен иметь ваш товар. Например, вы можете добавить столбец с мета-описанием и ключевыми словами для SEO или наоборот, убрать ненужные вам столбцы.

Импорт товаров. Способ №1

Порядок столбцов совершенно не важен!

Первая строка — это названия соответствующих свойств товара, в моём случае товар импортируется со следующими свойствами:

Насколько я помню столбец "Артикул" обязателен.

Где можно посмотреть названия всех свойств и обязательно ли называть ими столбцы - расскажу чуть позже.

После того как вы подготовили свой прайс-лист вы должны обязательно сохранить его как CSV (разделители - запятые) (*.csv). Кстати этот формат поддерживает только 1 лист в файле, то есть если у вас в Exel несколько листов, то сохраниться только текущий.

С подготовкой прайс-листа почти закончили, осталось только пересохранить его в формате UTF-8 без BOM, чтобы компонент CSVI смог прочитать русские символы.

Это можно сделать с помощью большинства редакторов кода, например, я пользуюсь для этого PSPad, думаю, в NotePad++ тоже есть такая возможность.

Кто не понял, что на данном этапе нужно сделать, прошу сюда: Перекодирование в UTF-8.

После перекодирования в вашем файле все русские символы сменяться на кракозябры:

прайс-лист в UTF-8

На этом прайс-лист готов, теперь заходим в настройки компонента, а именно в раздел Process (я оставил англоязычную версию) здесь настраиваем всё как у меня:

настройки CSVI

Жмём Go, и продолжаем сравнивать с моими настройками:

настройки 1

настройки 2

Вкладки Path и Limit можете не трогать вообще. Обычно в прайс-листах отсутствует колонка с перечислением фотографий к товару, поэтому вкладкой Image я тоже не пользовался. Несмотря на это вы должны знать, что фотографии таким образом тоже можно добавить, причём не по одной фотографии к товару, а все сразу. К сожалению, в VirtueMart не предусмотрено "родного" способа мультизагрузки фотографий к товару, только платные плагины. Поэтому это единственный бесплатный способ добавить одновременно несколько фотографий к товару, а не загружать по одной :)

Вкладку Fields мы тоже пропускаем, так как написали названия полей в самом прайсе.

Вот и всё, теперь выбираем наш прайс-лист:

загрузка

И жмём на кнопку Process, которая расположена вверху справо.

Импорт товаров. Способ №2

Я пользуюсь первым способом, однако на всякий случай расскажу вам второй вариант. Из прайс-листа можете удалить первую строчку, там, где мы писали названия столбцов. Вместо этого мы должны перечислить их в самом компоненте, во вкладке Fields.

При этом важно, чтобы порядок полей во вкладке Fields совпадал с порядком столбцов в вашем прайс-листе:

импорт с Fields

Заодно здесь вы можете узнать все доступные свойства и их названия.

После того, как вы создали все необходимые поля в настройках компонента, снова перейдите на вкладку File и измените параметр "Use headers/nodes as configuration" на "нет".

Кстати, вместо того чтобы удалять названия столбцов, здесь же вы можете установить параметр "Skip first line" в положение "да", в этом случае первая строчка вашего прайс-листа просто проигнорируется.

Когда вы выполнили все настройки компонента, вы можете их сохранить для повторного использования. Для этого нажмите "Save as". Я создал 2 шаблона, из названий понятно, в чём их разница:

шаблоны

Но как я уже сказал, одного вполне достаточно.

Обновление товаров и цен

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

А сейчас я хочу обратить внимания на более важную, как по мне, возможность рассматриваемого нами компонента. Это – обновление!

Итак, процедура обновления нечем не отличается от импорта, кроме того, что вы во вкладке File должны выставить параметр "Ignore non-existing items" в положение "да". Этот параметр запрещает создавать новые товары. Вообще никто не мешает вам обновить старые товары, и при этом добавить новые, просто лично я так не делаю.

Теперь, когда вы выставили Ignore non-existing items, то можете смело обновлять только те свойства товара, которые вам нужны, например, цену.

Это единственное свойство, которое я обновляю.

Для того, чтобы обновить цены вашего интернет магазина, вы должны оставить в вашем прайс-листе всего 2 столбца: артикул и цену, где артикул служит ключом (привязкой), вместо привычного id в базах данных.

Вот и всё, изменили один параметр, подготовили прайс-лист, а далее всё как при обычном импорте, выбираете документ и жмёте process.

На сегодня всё, надеюсь, теперь у вас не возникнет трудностей с импортом товаров и обновлением цен в VirtueMart 2.

До встречи в новых статьях блога Site on!

С уважением, .
Пожалуйста, оцените эту статью
Средняя оценка: 4.95 из 5 (проголосовало: 21)
Статья оказалась вам полезной? Подпишитесь, чтобы не пропустить новые!

Ваш email:
Вы можете помочь развитию проекта, сделав всего 1 клик:
Спасибо!
Пожалуйста, прокомментируйте, как Вам моя статья?
Имя:
Комментарий:

Если Вы хотите вставить код, пожалуйста, заключайте его в [code][/code]

Подписаться на новые комментарии:

E-mail:


Защита от спама: пожалуйста, напишите слово "сел" справа налево
Ответ:
Подписаться на новые комментарии без комментирования - Email:
Защита от спама: пожалуйста, напишите слово "сел" справа налево
Ответ:

30.08.2013 14:37:37 Олег:
Спасибо, полезно.
Один вопрос, вернее два больших вопроса:
1) как обстоит дело с импортом настраиваемых полей?
2) Импорт дочерних товаров, делали?
30.08.2013 15:04:25 Сергей отвечает:
Пока что не было необходимости в импорте настраиваемых полей и дочерних товаров, но думаю что там ничего сложного. Для импорта настраиваемых полей, судя по всему, нужно использовать поля:
product_sku
custom_title
custom_value
custom_price
custom_param
А для дочерних товаров использовать: product_sku вместе с product_parent_sku, а дальше по аналогии с обычным импортом.
04.09.2013 17:27:29 Олег отвечает:
Ясно, спасибо, попробую реализовать... Просто я читал где-то на форумах, что импорт/экспорт настраиваемых полей возможен только в ПРО версии CSVI
04.09.2013 21:52:51 Сергей отвечает:
На официальном сайте написано, что обе версии поддерживают настраиваемые поля. Скорей всего просто раньше было иначе, а сейчас убрали это ограничение.
05.09.2013 16:58:09 Олег отвечает:
Спасибо, Сергей. Не додумался сходить на родной сайт :)
09.12.2013 16:25:22 Дмитрий отвечает:
Доброго времени суток! Подскажите, custom_param чем заполнять? если value это значение титла? Я уже все облазил, на оф сайте не понятно((( что значит "custom_value This must always be param." ????

Ответить на комментарий


15.09.2013 15:31:13 Сергей:
Забыл написать в статье, что формат ячеек обязательно должен быть "общий", везде! Если вы на столбце с ценой поставите (оставите) "числовой" или "денежный", то могут возникнуть непредвиденные проблемы.
Например, из-за числового формата у меня импортировалась только первая цифра из цены, если цена была четырёхзначным числом.

Ответить на комментарий


18.10.2013 14:42:31 Роман:
Спасибо за статью, можно поподробнее про импорт настраиваемых полей.
мне нужно в товаре указывать объем в миллилитрах,как настроить поле в VirtueMart 2 и как назвать столбец для импорта в csv?
18.10.2013 16:35:41 Сергей отвечает:
Здравствуйте. Вот официальная инструкция по этому поводу:
http://www.csvimproved.com/csvi-documentation/tutorials/778-custom-fields-import-and-export
Могу написать отдельную статью на эту тему, но не могу обещать как скоро... много работы, реже писать стал.
20.10.2013 13:06:57 Роман отвечает:
Сергей, спасибо. Я уже разобрался, почитал материалы по теме и в общем дошло: в столбец custom_title пишу название настраиваемого поля (объем, вес и т.д.), в столбик custom_value циферки. Понимаю что для кого то это просто, но для меня открытие.
09.12.2013 16:35:23 Дмитрий отвечает:
Вот я как Вы делал, поле в товарах добавилось а значения нет(((, если с custom_param то ошибки на сайте на пол листа)). Что не так не пойму((

Ответить на комментарий


29.10.2013 12:30:22 Amrel:
Помогите пожалуйста!
Имеется: VirtueMart 2.0.18a и CSVI Free 5.11.
С экспортом проблем нет, при импорте зависает на:

[url=http://pixs.ru/showimage/Testjpg_3136087_9540750.jpg][img]http://i.pixs.ru/thumbs/7/5/0/Testjpg_3136087_9540750.jpg[/img][/url]

Пробовал устанавливать разные версии CSVI экспериментировал с файлами результат один и тот же. Даже только что импортированный файл при экспорте зависает.
Так же если при Импорте/экспорте удаляю добавленные поля возникает ошибка 500 ( [name, type, prefix]: export, HTML, csviView)

Помогите пожалуйста сделать импорт.
05.11.2013 15:11:43 Amrel: отвечает:
И тишина...
05.11.2013 15:33:48 Сергей отвечает:
Здравствуйте. У меня подобных проблем не было. Если в прайсе больше 1000 товаров, то, возможно, скрипту не хватает времени.

Ответить на комментарий


14.11.2013 18:11:35 Евгений:
Спасите, При импорте товаров все Русские символы до начала английский просто обрезает, пример Лампа светодиодная LED 35w белая >>> после импорта выглядит так LED 35w белая ( думал в количестве знаков сначала, нет проверил только до начала символа или англ знака русский обрезает_ Что это может быть? кто сталкивался?
22.11.2013 11:20:38 Сергей отвечает:
Здравствуйте. Я, вроде бы, не сталкивался. Вы всё по моей статье делали? В UTF-8 перекодировали?

Ответить на комментарий


22.11.2013 09:55:18 DIN:
Подскажите пожалуйста как настроить файл импорта товаров с настраиваемыми полями и контролем остатков?
Например ИМ одежды, один товар в 4 цветах и 4 размеров (для контроля остатков в настраиваемые поля создал плагин «Stockable Variants Plugin», в этом случае получается что к одному товару приходится создавать 16 дочерних товаров и указать их количество, чтобы отобразить все комбинации товара.
Как упростить такую задачу? В ручную создавать необходимое количество дочерних товаров в админке или переписывать поле дочерних товаро и их количество на складе во всем файле импорта по каждому товару (если файл поставщика содержит только общее количество товара... - долгая процедура...
Подскажите как упростить такую задачу? Может есть внятная инструкция? Может есть софт упрощающий такую задачу?
Заранее благодарен.

Ответить на комментарий


24.12.2013 13:54:03 Артур:
Полезная статья.
Почти все получилось.
Не получается только установить значение настраиваемого поля
Помогите кто разбирался
делаю следующим образом:
------
custom_title,custom_value,custom_param
Родитель списка параметров~Хладопроизводительность,~param,7 кВт
------
Все встает и присваевается настраиваемое поле, но значение поля не вписывается, приходится все равно делать руками, что сводит на нет всю автоматизацию.
Кто разобрался помогите пожалуйста
01.01.2014 15:26:42 Борис отвечает:
Счастья вам и вашим посетителям!
Сергей, для синхронизации цен и остатков с 1с Управление Торговлей это оптимальное расширение?
01.01.2014 21:49:36 Сергей отвечает:
С Новым годом! :) К сожалению, я не видел оптимального расширения для синхронизация 1С и Virtuemart. Если нужна синхронизация с 1С я бы сильно задумался, стоит ли делать магазин на Вирте.
03.01.2014 07:22:07 Борис отвечает:
А разве экспорт-импорт через тот же SCVI или PHPMyadmin не позволит закачать/обновить остатки, цены и всё что нужно?
03.01.2014 09:19:39 Сергей отвечает:
Позволит, но что делать если товаров 10 000 и более... Многим нужна полная синхронизация как минимум раз в день. Каждый раз формировать прайс-лист, импортировать его... Я уже не говорю о том, что импорт 12 000 товаров через CSVI занимает 11 минут, многие хостинги даже не позволят его сделать.

Поэтому слово "оптимально" - точно нет. Возможно - да.
10.01.2014 18:25:44 Борис отвечает:
Оптимально в этом случае(около 50000 товаров) будет Битрикс Управление сайтом?
10.01.2014 21:39:22 Сергей отвечает:
К сожалению, кроме того, что это самая популярная платная CMS, о 1С Битрикс я мало знаю.

На форумах пишут, если нужна синхронизация с 1С, как варианты:
HostCMS
OpenCart

Что лучше выбрать, я не знаю, для себя я пока не решил проблему синхронизации с 1С, поэтому если у вас появится интересная информация, с удовольствием почитаю.

Ответить на комментарий


03.03.2014 19:03:47 Даниил:
Доброго времени суток, спасибо за полезную информацию.
Очень интересует вопрос, как приписать товар сразу к нескольким категориям.
Самостоятельно разобраться не смог.

Ответить на комментарий


04.05.2014 22:48:23 Александр:
"Далее вы должны привести свой прайс-лист к такой структуре"
КАК?
Обычный прайс всегда выглядит так:
Артикул Наименование цена Гарантия
1234 Процессор 12$ 12мес
НО! категории имееют такой вид:
<пусто><Название категории><пусто><пусто>
Получается вот так:
<пусто><Процессоры><пусто><пусто>
1234 Процессор 12$ 12мес
05.05.2014 08:59:16 Сергей отвечает:
Можете попробовать использовать в прайс-листе id категорий из Virtuemart, как на первом изображении.
14.05.2014 06:25:29 Юрий Йосифович отвечает:
Столкнулся с этой же проблемой, что и Александр - прайс на 5000 позиций, из них 4 категории первого уровня, около 30 категорий второго уровня и около 230 категорий третьего уровня.

В прайсе это выглядит так:
поле 1 поле 2 поле 3 поле 5
Категория первого уровня
Подкатегория категории первого уровня
Первая подкатегория категории второго уровня
артикул товар цена цена
артикул товар цена цена
-----------------------
артикул товар цена цена
Вторая подкатегория категории второго уровня
...
...
...

Оптимального решения данного вопроса обработки прайсов найти не получилось. Вручную делать - достаточно долго... Возможно есть какие-то навыки работы с прайсами в экселе - можете наглядно наглядно показать как работать с прайсом в котором нужно присвоить категории товарам?

Ну и еще один вопрос по поводу импорта CSVI. Допустим делать будем сайт на 3 языках, допустим мы перевели на нужные языки заголовки товаров и описания.

Возможно ли импортировать товар (категории) на трех языках одновременно? Какие поля отвечают за принадлежность к определенному языку?

Еще один вопрос в этом же направлении - допустим товар продается по 100штук. При добавлении товара в Virtuemart можно задать кратность товара.

Но вот какое поле отвечает за эту кратность при импорте через CSVI - пробовал экспортировать все поля товара - но увы, нигде число 100 (в моем случае) не проскакивало. Вывод либо я что-то пропустил, либо импортировать данную настройку не является возможным.

Что касается многоязычности товаров - то в данный момент находил множество информации по решению данной проблемы путем прямого экспорта с базы данных, потом перевода и импорта обратно. Если через CSVI не возможно импортировать сразу информацию на нескольких языках - то остается только вариант редактирования базы данных....
14.05.2014 09:49:48 Сергей отвечает:
Язык, если мне не изменяет память: вкладка Options и там выбираем Language. Сомневаюсь, что можно одновременно, нужен отдельный прайс для каждого языка.

Кратностью не пользовался в VirtueMart.

Ответить на комментарий


24.12.2014 22:23:29 george007ua:
Финиш... и сколько ж это надо было выпить что бы соорудить такое недоразумение... Я пока в нем раздуплился трех мышек жизни лишил... Единственное преимущество этого компонента - это его бесплатность... а во всем остальном - ппц в общем

Ответить на комментарий


13.01.2015 20:54:26 Алексей:
Добрый день.
Подскажите,кто-то разобрался как создать многоуровневые категории? Создать одну категорию можно через category_path, но вот как создать подкатегории вопрос-пишет ,что не поддерживает эти поля
27.07.2015 09:00:59 Леха отвечает:
Нужно просто полностью удалить столбец category_name, а в category_path создаете (напр. бытовая техника/пылесосы), вот пылесосы и будут подкатегорией.

Ответить на комментарий


29.05.2015 23:25:58 Тимофей:
Вопрос а для юмлы 3 есть аналог описанного компонента ?
30.05.2015 12:18:08 Сергей отвечает:
На счёт аналога не знаю, но есть этот же компонент. Который работает с Joomla 3 и VirtueMart 3. Но пока что есть только платная версия, стоит 59.95 евро.

Ответить на комментарий


20.08.2015 12:22:24 К:
В варианте изменения цен. Как работает программа,если не находит артикул? Может ли программа выдать отчет, какие цены изменила,как нет.
20.08.2015 21:35:44 Сергей отвечает:
Здравствуйте. Да, компонент показывает какие цены изменил, а какие нет.

Ответить на комментарий


26.09.2015 15:40:47 Елена:
Спасибо за статью!
Подскажите пожалуйста,как добавить в импорт pricewithouttax или salesprice поля. В экспорте есть, в импорте нет.
02.05.2016 12:55:38 Роман отвечает:
joomla 3.5.1 - virtue mart 3. CSVI 6.5.5.
Все делаю по инструкции - нажим начать импорт, вроде импортировалось, но В МАГАЗИНЕ файлов нет, уже истыкал всё не могу понять куда товары заливаются и заливаются ли вообще..

Ответить на комментарий

Использую для работы
Мои расширения
Свежие статьи
Рекомендую
Горячо обсуждаемые
Подписка
  • Следовать в twitter:
  • Подписаться по RSS:
  • Подписаться по E-mail:
  • Следить ВКонтакте:
  • Следить на Facebook:
Пользовательское соглашение об условиях использования сайта и Политика конфиденциальности
Перепечатывание или копирование материалов сайта (текста, изображений и другого содержимого) для их публичного или коммерческого использования в сети Интернет, либо в печатных изданиях строго запрещены. При нарушении данного правила, с нашей стороны будут предприняты соответствующие меры, вплоть до судебной жалобы.
© site-on.net
Шрифт: +стандартно-