1С и CSV Improved. Реализуем импорт товаров через компонент CSV Improved. Joomla 1.5 и Virtuemart

16.01.2010 shawtyРазработка, Joomla и Virtuemart, , , 44509

И так, давно задумал написать данную статью - все руки не доходили. Чуть ниже я расскажу о реализации импорта товаров в интернет-магазин через стандартный компонент csv improved в связке joomla 1.5.x + virtuemart 1.1.3 stable (исключительно на личном опыте). Не так все сложно, ты сможешь убедиться в этом сам.

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

Для реализации поставленной задачи нам потребуется: openoffice версии 3 и выше (я использую 3.0.хз), компонент joomla csv improved (у меня установлен 0.8 rc 2.1), сам прайс из 1С в формате *.csv. Для начала пока все.

Начнем с установки компонента: качаем по вышеуказанной ссылке, распаковываем архив и кидаем содержимое (именно сами файлы) в каталог http://твой_сайт/tmp. В админке заходим по пути "Расширения - Установить/Удалить". Видим средний вариант "Установить из папки" и жмем "Установить". Вообще-то, данная версия компонента рассчитана на версию joomla 1.0.x, поэтому нам необходимо зайти "Расширения - Менеджер плагинов" и включить на второй страничке плагин "Система - Поддержка старых расширений (Legacy)". Первый шаг сделан, о его выполнении будет свидетельствовать появление вкладки "Компоненты - CSV Improved".

Думаю, что с установкой Openoffice ты справишься сам, раз осилил установку joomla. =)

Прайсом из 1С занимался у нас отдельный человек, поэтому будем считать, что файл в формате *.csv со списком товаров у нас уже есть по умолчанию. Запускаем программу calc (аналог Excel в Openoffice) и открываем в ней наш прайс. Программка попросит у нас указать "параметры" для открытия документа, такими будут являться (у меня по крайней мере так):

- кодировка: windows-1251,

- разделитель текста: табуляция (исключительно только табуляция, остальные галочки убираем все),

- разделить: оставляем без изменений.

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

Теперь делаем следующее: файл - сохранить как. При сохранении нам очень важно поставить галочку "изменение настроек фильтра", остальное оставляем "по-дефолту". Настройки фильтра необходимо указать следующие:

- кодировка: utf-8,

- разделитель текста: ^ (исключительно только ^, остальные галочки убираем все),

- разделить: ~.

Данные разделители ты можешь изменить в настройках компонента csv improved, но я не стал трогать (зачем, ибо и так все работает).

Да, кстати, поля экпорта шаблона из 1С у нас следующие: уникальный номер товара, путь категории, в которой находится товар, название товара, цена товара. То есть, мы получаем после наших манипуляций готовый прайс для дампа в базу. Осталось указать компоненту, какие поля при дампе (импорте) обновлять (изменять). Правильно, мы переходим к шаблонам для импорта.

С помощью компонента csv improved каждый сможет сделать шаблон для себя, эта гибкость очень важна в данном случае. У меня шаблона 3 штуки, каждый выполняет свою функцию, эти функции я и опишу ниже. Но сначала о том, как эти шаблоны создавать.

Заходим "Компоненты - CSV Improved - Templates". Здесь мы видим список стандартных шаблонов, которые ты запросто можешь редактировать под свои нужны. Для создания нового шаблона достаточно лишь нажать "Новый" и указать: импорт/экспорт, название, обращаю внимание на функцию "Заголовки как конфигураторы" (у меня во всех шаблонах проставлена данная галочка), параметры разделителей и время, отпущенное на дамп (чтобы не перегрузить базу). Для добавления полей в шаблон, его необходимо выбрать и нажать "Поля". Там все просто =)

Теперь перейдем к моей структуре. Буду описывать шаблоны в порядке импорта.

1. Добавляем категории. Скачать шаблон.

Заголовки как конфигураторы:

- category_path - путь категории

- category_description - описание категории

- category_full_image - большая картинка категории

- category_thumb_image - маленькая картинка категории

- category_products_per_row - количество товаров в ряду внутри категории (лучше 1)

- category_browsepage - шаблон обзора категории

- category_flypage - шаблон, с помощью которого откроется список товаров внутри категории

- category_publish - опубликована ли категория (1 или 0)

- category_list_order - порядок вывода категории.

2. Добавляем товары и цены. Скачать шаблон.

- product_sku - уникальный код товара в 1С

- category_path - полный путь категории товара

- product_name - название товара

- product_price - цена товара

- product_currency - валюта, с которой работает магазин

- product_packaging - количество единиц товара в упаковке

- product_publish - опубликован товар или нет

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

3. Добавляем картинки и описание к товарам. Скачать шаблон.

- product_sku - уникальный код товара в 1С (как и при втором шаге импорта, это уникальное поле для идентификации единицы товара)

- product_name - имя товара, просто для удобства (по product_sku трудно узнать, что за товар описываешь =))

- product_desc - полное описание товара

- product_full_image - название файла большого изображения товара вместе с расширением (123.gif)

- product_thumb_image - название файла маленького изображения товара вместе с расширением (123_small.gif)

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