easypopulate или импорт-экспорт в OsCommerce
EasyPopulate - хто этО?
EasyPopulate - плагин (или файл-модуль.. как угодно) для OsCommerce, который позволяет экспортировать товары из интернет-магазинов на базе OScommerce (например, в csv-формате), редактировать их (например, в Excel) и импортировать обратно в интернет-магазин. Кроме того, файл с информацией о товарах можно автоматически генерировать (часто удобно делать напрямую обработкой-выгрузкой из 1С).
Сомнений не возникает, что EasyPopulate - штука полезная. Если сборка магазина OsCommerce более-менее солидная, то скорее всего, наличие сей “фичи” уже имеется. Если же нет - можно установить таковую и самостоятельно.
Как начать работу с Easypopulate
Проще всего сделать экспорт товаров (ищем в меню админки где-то в каталоге) из интернет-магазина и открыть получившийся файл любым редактором csv (скорее всего, это будет Excel). Если файл с расширением .txt, то придется пройти небольшую процедуру определения формата файла - табуляторы, строки, форматы ячеек.. Проблем возникнуть не должно.
Структура файла не слишком замысловата - первая строка, как и положено “заголовочная”. Значение большинства полей интуитивно понятно (v_products_id, v_products_model,v_products_image…). Для полной уверенности можно ознакомиться с форматом данных EasyPopulate. В последующих строках идут значения полей для каждого товара. Следует отметить, что при необходимости товар и категории будут добавлены автоматически. Глубина вложенности категорий ограничена шестью, но на практике этого вполне хватает.
Внутри easypopulate или “ручками”
При наличии некоторых знаний php беглый просмотр файла easypopulate.php прояснит некоторые детали, изначально скрытые от глаз пользователя. Документацию ведь читать некогда Да.. ещё, следует обратить внимание на версию файла… И не торопиться обновлять до последней - скорее всего в используемой версии/сборке магазина файл был отредактирован и довольно сильно отличается от оригинального (такова уж особенность OsCommerce) …
Встречался с версиями, у которых “всё в одном” - html (+php, куда ж без него) код, импорт и экспорт в одном файле. Первая половина отвечает за экспорт, (блок if download…) , потом - импорт в Oscommerce ($localfile or is_uploaded_file), импорт с разбиением на части (if (is_uploaded_file($usrfl) && $split==1) …) - что-то похожее реализовано в импорте для virtuemart (joomla) , дальше - вывод HTML (форма для импорта), чуть ниже - функции обработки.
Основная обработка производится функциями ep_create_filelayout() и walk() (импорт)
Импорт в Oscommerce дополнительных полей
Добавить в файл импорта дополнительные поля (не забыть заголовки) и обработать их в easypopulate (в функции walk). В общем-то всё
Импорт в Oscommerce товаров и атрибутов в одном файле
Вообще, в файле easypopulate реализован импорт-экспорт атрибутов отдельным файлом (для экспорта выбрать файл экспорта - атрибуты товаров). Т.е. товары загружаем файлом товаров, а атрибуты - файлом атрибутов. И экспорт реализован слегка.. скажем так неудобно - в результате много “пустых” данных (а-ля представляем граф матрицей или почти таблица пифагора - на пересечениях строки и столбца, если для товара имеется атрибут, то в графе “Цена” указывается значение разницы от основной. И независимо от того, есть атрибут или нет - его id и значение атрибута)
v_attribute_options_id_1 v_attribute_options_name_1_4 v_attribute_values_id_1_1 v_attribute_values_price_1_1 v_attribute_values_name_1_1_4 v_attribute_values_id_1_2 (… и тд для всех значений атрибута _1, потом _2)
Строчки присутствуют для всех товаров, столбцы - для всех атрибутов и значений атрибутов*3
Конечно, это не всегда удобно - например вариант экспорта атрибутов, когда в магазине ~6 тыс. товаров и НЕКОТОРЫЕ товары имеют один атрибут на vps генерировался несколько минут и весил в итоге 1.5 Мб. Импорт такого файла - тоже процедура довольно затратная..
Как вариант - импорт в Oscommerce товаров и атрибутов одним файлом - добавляем столбец (к примеру, v_my_attribute_1) и помещаем туда значения (или предварительно сформированные ID, соответствующие внутренним ID магазина) и обрабатываем в функции walk.
Если предусмотреть автоматическое создание отсутствовавших ранее атрибутов и обработку для исключения дублирования (из-за пробелов, больших букв и тд.. можно как при импорте данных, так и на этапе формирования выгрузки.. или ещё раньше - “правильное” хранение данных в основной базе), то такой вариант вполне имеет право на сущесвование.
Приходилось сталкиваться с импортом OsCommerce? Нашли ошибку? Есть что добавить? - Добро пожаловать в комментарии.
Метки: cms, oscommerce, импорт
1dynamo…
…