Форум пользователей Impera CMS
Impera CMS - отличный движок для лёгкого создания интернет магазина.
Обладает невероятным количеством функций, необходимых в онлайн торговле.

Импорт данных

Следить
Главная
19:34
12 сен
#
?
Andre написал:

Меня интересует следующий момент, у нас есть *.csv файл в котором содержаться данные с другого сайта, в этом файле есть категории и бренды, которые отсутсутвуют на новом сайте, следовательно их не возможно проимпортировать. Отсюда вопрос, для того чтобы проимпортировать товары для которых не существует категорий и брендов, нужно вручную сначала добавить категории и бренды или же можно это сделать как-то автоматически?

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

20:15
12 сен
#
Разработчик написал:

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


Теперь по импорту. Категории можно также импортировать отдельно. Я постарался изложить основу на скриншоте (если текст на картинке плохо читаем, кликните для увеличения).



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


Близкие ветки форума по теме импорта:

09:01
13 сен
#
Разработчик написал:

Еще хотел бы заметить, что импорт в Impera CMS довольно сильный, поэтому позволяет подходить к процессу импорта по-разному, даже когда разнородные данные помещены в один CSV-файл.

Кроме того, что можно создать несколько вариантов импорта, которые запускались бы по очереди и извлекали из единого CSV только свои колонки (скажем, сначала запускаем "импорт категорий", потом на том же CSV-файле запускаем "импорт брендов", "потом импорт свойств", потом "импорт товаров"), но мы в принципе можем запустить импорт и в один проход.

На следующем рисунке я показал воображаемый CSV-файл, где якобы собрали разнородные данные. В правой колонке я описал, что происходит при импорте каждой строки такого CSV.



Если бы мы сейчас захотели для такого 5-колоночного CSV сделать несколько импортов по частям, тогда в каждом варианте импорта написали бы свой мнемонический порядок колонок, используя мнемонику skip для пропуска ненужных колонок. Например:

  • импорт только категорий: skip, category, skip, skip, skip
  • импорт только брендов: skip, skip, brand, skip, skip
  • импорт категорий и брендов: skip, category, brand, skip, skip
  • импорт только свойств: skip, skip, skip, skip, property
  • импорт свойств с прикреплением к категориям и брендам: skip, category, brand, skip, property
  • импорт свойств с прикреплением к существующим товарам: productid, skip, skip, skip, property
  • импорт вообще всего: productid, category, brand, model, property

Однако и не забывайте, что импорт хоть и мощный, только в сравнении с человеком он не обладает таким интеллектом, чтобы устранить логические нестыковки, допущенные в CSV-файле. Например, посмотрите на предпоследнюю строку - Кукла Катя. Если к моменту импорта такой товар не существует, то теоретически он будет создан, но в какую категорию движок должен был его поместить? Поэтому данный товар окажется в базе магазина, только не будет виден. Придется заходить в админпанели на страницу "Выпавшие записи базы данных", чтобы найти невидимый (ни к чему не прикрепленный) товар и вручную перенести его в нужную категорию.

10:52
13 сен
#
?
колян написал:

Да двиг нехилый. Видно что разарботан в интересах юзеров. Хоть не все детальки двига кошерны.

22:36
16 сен
#
?
Andre написал:

Следуя вашей инструкции по импорту, я создал свой вариант импорта, и подготовил файл с данными, но когда я сделал импорт данных оказалось, что при использовании поля "images" вместо того чтобы добавить указанные мною фотографии по отдельности, я получаю одну фотографию вот с таким именем

http://сайт/files/products/tb50326_1.jpg,tb50326_2.jpg,tb50326_3.jpg,tb50326_4.jpg,tb50326_5.jpg

для импорта я использую следующие поля:

pCode, category, category2, category3, category4, model, oldPrice, price, description, largeimage, smallImage, images

также я прикрепляю фай с данными csv-28046092588061989697516503708721_1.csv (6 кбайт).

Из-за чего может быть такая проблема?

19:16
17 сен
#
Разработчик написал:

В ранних версиях движка колонка images была в единичном виде, соответственно список картинок перечислялся через запятую. Позже импорт расширился поддержкой множества колонок для картинок товаров: images, images2, images3, images4, images5 и так далее. Причем в каждой колонке подразумевалось писать по одному имени файла. В результате потерялась поддержка очень удобного формата с перечислением через запятую.

Решение 1 (без влезания в код движка): имена картинок распределить по одной в дополнительных ячейках CSV-файла и в варианте импорта добавить мнемоники дополнительных колонок:

pCode, category, category2, category3, category4, model, oldPrice, price, description, largeimage, smallImage, images, images2, images3, images4, ....

Решение 2: я модифицировал модуль импорта, чтобы он поддерживал перечисление картинок в любой из колонок images. Измененный файл Admin.Imports.php отправил вам по емейлу. Просто скопируйте его на сайт в папку http://сайт/objecs вместо прежнего файла и запустите импорт заново.


Именно это решение войдет в новую версию движка, так как

Теперь каждая колонка imagesN (где N - пустое место или число от 2 и выше) может являться подмножеством имен картинок, причем всем элементам подмножества назначаются одинаковые параметры из колонок imagesAltN, imagesTextN, imagesViewN, если такие были указаны в импортируемых данных. То есть стало возможным условно делить картинки на множества, размещая наборами в отдельных колонках CSV-файла, и каждый элемент таких наборов наделять одинаковой надписью, описанием и признаком показа в слайдере. Например

колонка images = T1_front1.jpg, T1_front2.jpg
колонка imagesAlt = Товар1 (вид спереди)

колонка images2 = T1_back1.jpg, T1_back2.jpg, T1_back3.jpg, T1_back4.jpg
колонка imagesAlt2 = Товар1 (вид сзади)

16:23
19 сен
#
?
Andre написал:

У нас возни некоторые проблемы при импорте товаров.

Проблема №1

При тестовом импорте 21 товара в базу попадает только 17. При этом по окончанию импорта я вижу следующее сообщение

Импорт данных завершен успешно.

Результаты по товарам:
    Было добавлено товаров: 17
    Обновлено товаров: 4

Результаты по видам товара:
    Было добавлено видов товара: 17
    Неизменившихся видов товара: 4

Результаты по брендам:
    Было добавлено брендов: 1

Результаты по категориям:
    Было добавлено категорий: 4

Для чистоты эксперимента были проделаны следующие действия:

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

Результаты по товарам:
    Было добавлено товаров: 17
    Обновлено товаров: 4

Результаты по видам товара:
    Было добавлено видов товара: 17
    Неизменившихся видов товара: 4

Результаты по брендам:
    Было добавлено брендов: 1

Результаты по категориям:
    Было добавлено категорий: 4

Шаблон для импорта выглядит следующим образом:

pCode, category, category2, category3, category4, model, skip, skip, oldPrice, price, annotation, description, largeimage, smallImage, images, brand, quantity

Так же я прикрепляю тестовый файл для импорта. csv-84153284341547336228573524223046_1.csv (73 кбайт)

Поскольку база пуста то как оно определило что есть 4 вида не изменившихся товаров и если эти 4 вида есть то почему в списке товаров я вижу только 17?

Если первая колонка вашего CSV - это идентификатор товара, тогда вместо мнемоники pCode надо было использовать productId. Тогда будет импортировать как надо - все 21 товара.

В отсутствие колонки productId товар ищется по его названию. Тогда логично импортировало 17 товаров и 4 раза обновило уже существующий к тому моменту товар (отсортируйте ваш CSV по колонке model - обратите внимание, что там 4 строки это дубликаты названий товаров, вот они невольно и понимались как "еще раз обновить товар с таким названием").

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

pCode+productId, category, category2, category3, category4, model, skip, skip, oldPrice, price, annotation, description, largeimage, smallImage, images, brand, quantity

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

Далее, если большое и малое фото у вас одинаковое (использует один и тот же файл), от колонки smallImage вообще можно было отказаться, а шаблон модифицировать так

pCode+productId, category, category2, category3, category4, model, skip, skip, oldPrice, price, annotation, description, largeImage+smallImage, images, brand, quantity

То есть 14-ую колонку удалили из CSV, а в мнемонике 13-ой колонки прописали, что значение этой колонки заносить в поле большой фотографии товара + сразу копировать и в поле малой фотографии товара.

Иногда может оказаться удобной такая мнемоника model+url, то есть название товара сразу копировать и в поле URL (оно автоматически транслитерируется, если товар имел русское название). Однако использовать нужно осторожно, иначе в случае одинаково названных товаров рискуем получить множество товаров, "висящих" по одному адресу, что приведет к невозможности просматривать их на клиентской стороне (будет виден лишь один из них, остальные окажутся недоступными для просмотра).

Если мнемонику url вообще не указываем, тогда движок пытается сам склеить адрес ссылки из транслитерации колонок category, category2, category3, category4, model плюс в конец добавляет идентификатор товара, чтобы не нарваться на одинаковые URL-и так же именованных товаров, возможно размещенных в тех же категориях. Например

Sbornye-bassejny/Bassejn-INTEX/kruglyj/Easy-Set/Bassejn-INTEX-kruglyj-Easy-Set-244kh76-sm-57977


Проблема №2

При удалении товаров из базы и новом их добавлении у нас ссылка на товар становится очень длинной. Пример:

http://сайт/сайт/products/Sbornye-bassejny/Bassejn-INTEX/kruglyj/Easy-Set/Bassejn-INTEX-kruglyj-Easy-Set-244kh76-sm-57977

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

http://сайт/сайт/сайт/сайт/сайт/сайт/products/Sbornye-bassejny/Bassejn-INTEX/kruglyj/Easy-Set/Bassejn-INTEX-kruglyj-Easy-Set-244kh76-sm-57977

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

захожу на сайт - http://сайт
перехожу в любую категорию - http://сайт/сайт/категория
открываю любой товар - http://сайт/сайт/сайт/товар
снова перехожу в категорию - http://сайт/сайт/сайт/сайт/категория
и так далее - URL ссылки неясно из-за чего растет, при этом никакой ошибки не происходит

Если же запомнить адрес ссылки, закрыть браузер, а потом открыть и ввести http://сайт/сайт/сайт/сайт/категория - выдает "Нет такой страницы".

То есть ошибка происходит либо внутри шаблона (проверьте будет ли работать на дефолтном шаблоне?), либо ошибка происходит оттого, что сайт размещен в папке сайт домена сайт, которая является указателем на субдомен этого домена (но как-то нелогично).

Дело в том, что на хостинге можно создать субдомен, который будет иметь свою независимую папку, а можно создать в виде папки, располагающейся в папке основного домена. Может быть здесь происходит наложение URL-ей и как следствие неверный их парсинг?

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


Проблема №3

Даже после удаления товаров и очистки кешей на сайте остаются ссылки на несуществуюющие товары.

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


Проблема №4

При импорте у нас цену указанны уже в рублях (в csv файле), но после проведения импорта обнаруживается что цены были восприняты в долларах и произошла автоматическая конвертация в рубли. Как пример товар с кодом 50318 имеет цену 4064 (в csv файле) а после импорта товара на сайт я вижу цену 109504 rub, хотя это не правильно, там должна была быть цена 4064 rub.

Видимо, у вас на сайте базовой валютой выбрана Доллар. Все внутренние операции, в том числе и импорт, производятся в базовой валюте сайта. А вывод на клиентской стороне и в админпанели уже производится в той валюте, которая выбрана для них по умолчанию. Смените базовую валюту сайта на Рубли - должно показывать правильно.
20:47
20 сен
#
?
Andre Shapovalov написал:

Спасибо что так быстро откликнулись на нашу просьбу, я могу предоставить вам доступ к фтп чтобы вы могли проверить в чем же проблема с ссылками: [...коды...]

И есть еще одна проблемка, я использую сейчас вот такой шаблон для импорта

productId+pCode, category, category2, category3, category4, model, oldPrice, price, annotation, description, largeimage, smallImage, images, brand, quantity, imagesAlt

но почему-то не сохраняется вот этот столбец imagesAlt, в столбце "images" у нас названия картинок идут через запятую, вы уже фиксили эту проблему для этого столбца (оно не понимало что названия картинок были через запятую и формировало просто длинное название для картинки), могли бы вы сделать тоже самое для столбца imagesAlt чтобы для каждого значения со столбца "images" было соответствующее значение со столбца imagesAlt (в окне Microsoft Excel это колонка P).

Смотрите новую структуру в прикрепленном файле csv-10859726326627552868574373568877_1.csv (10 кбайт)

11:47
26 сен
#
Разработчик написал:

Проблема с возрастающей ссылкой, то есть когда с каждым переходом по страницам в адрес ссылки все время добавляется неизвестно откуда берущийся элемент http://сайт/your-site/некий_url (лишний элемент помечен красным цветом), обнаружена и устранена.

Источник проблемы - наличие в папке сайта символической ссылки на ту же папку сайта (на Unix-серверах символическая ссылка - в терминологии Windows это ярлык). Насколько я понял, эта ссылка изначально располагалась вне папки (по крайней мере на некоторых хостингах в корневых папках FTP-пользователей обычно располагают символическую ссылку www, в один клик ведущую в папку доменов, а также бывает располагают и символические ссылки вида your-site, ведующие в папки конкретных доменов), и видимо кто-то случайно перетащил ее внутрь папки. Удалять или переименовывать такую ссылку нельзя, иначе сайт может перестать работать.

Устранена проблема следующим образом - с помощью mod_rewrite из начала адреса ссылки удаляются повторяющиеся части, равные имени символической ссылки. То есть я зашел в админпанель на страницу разное > Корневой .htaccess и после строки с инструкцией RewriteEngine on добавил две строки:

    RewriteCond  %{REQUEST_URI}  ^/(your-site/|www/)+(.*?)$  [NC]
    RewriteRule  ^(.*)$          /$1                         [NC,L,QSA]


Первая строка означает, что правило срабатывает на любом URL, который начинается с одного или более повторяющихся элементов your-site/ или www/ (так как в папке сайта у вас также присутствует вторая символическая ссылка под именем www).

Вторая строка означает, что такой URL следует обрабатывать как ссылку без начальной части адреса.

16:51
30 сен
#
?
Andre Shapovalov написал:

Большое спасибо что вы быстро отвечаете на наши просьбы, это существенно упрощает работу, есть одно очень большое пожелание, в админке при просмотре товаров вы можете сделать кнопку "выделить все"?, потому как бывает импортнешь лишних 200 товаров и по очереди их отметить а потом удалить отнимает уйму времени.

09:01
08 окт
#
?
Андрей написал:

У меня тоже есть ошибка:

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

http://сайт/files/products/tb50326_1.jpg,tb50326_2.jpg,tb50326_3.jpg,tb50326_4.jpg,tb50326_5.jpg

Что нужно исправить, что импорт проходил правильно?

09:20
10 окт
#
?
Андрей написал:

Разработчик, вы где???

11:19
10 окт
#
Разработчик написал:

Что нужно исправить, что импорт проходил правильно?

Я отправлял Андрею Шаповалову на емейл исправленный файл Admin.Imports.php (это файл уже от новой версии движка, еще не вышедшей, но он работает исправно и в версии 130418). Так что оставьте через форму обратной связи свой емейл, я скину вам этот файл - просто скопируете его на сайт вместо прежнего файла.

19:52
19 окт
#
?
Андрей написал:

Пожалуйста, вот e-mail: andrey.gritsay@gmail.com

14:54
30 окт
#
?
Андрей написал:

Письма не получил, прошу отправить его повторно. Спасибо.

ps: выход новой версии неделю назад обещался?.. когда можно будет купить нормальную версию?

12:45
01 ноя
#
Разработчик написал:

Новая версия уже вышла 21 октября, так что можете качать ее - смотрите ссылку "Скачать" справа вверху страницы. Подробности о новшествах этой версии изложены здесь.

Еще одна версия выйдет на днях, там новшества будут в основном касаться способов оплаты - OnPay, RBK Money, Оплата с внутреннего счета покупателя.

19:15
11 ноя
#
?
Андрей написал:

Хотел муху прихлопнуть, а получил гранотомёт. :)

Если у вас в колонке 'images' перечислены фотографии через запятую и вам не нужны расширенные возможности импорта, достаточно в файле objects/Admin.Imports.php заменить:

$images->value = implode(IN_ONE_TEXT_LINE_RECORDS_FIELDS_DELIMITER, $images->value);

на

$images->value = implode(IN_ONE_TEXT_LINE_RECORDS_FIELDS_DELIMITER, str_replace( ',', IN_ONE_TEXT_LINE_RECORDS_FIELDS_DELIMITER, $images->value ) );

(актуально для версии 130106).

23:10
11 ноя
#
?
socrat написал:

Хотел муху прихлопнуть, а получил гранотомёт. :)

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

И кстате Андрей вот я о колонке images подумал, сверх меры вы записали, замените на

$images->value = implode(',', $images->value);

проще ведь

23:50
11 ноя
#
?
Коняев написал:

получаем готовое решение вселенского масштаба

Почему бы нет? Если это бесплатно, мне всё равно, пусть делают хоть мега модули, лишь бы без глюков.

проще ведь

Правильно он написал замену. IN_ONE_TEXT_LINE_RECORDS_FIELDS_DELIMITER это |. В базу имэйджи могут попасть и в таком виде.. в принципе

img1.jpg | img2.jpg | img3a.jpg , img3b.jpg , img3c.jpg | img4.jpg

Поэтому он запятые на | заменил, потом перевёл в массив картинок. Так что правильно.

22:49
29 ноя
#
?
sanсhos написал:

Вот тут же на форуме нашел другую демо базу на 1К товаров с понятным xls и csv примером особенно по свойствам товаров.

20:59
10 окт
#
?
Сергей написал:

Прошу разработчика добавить возможность что бы при експорте выгружалось все что есть на сайте в excel. Сейчас нет возможности выгрузить свойства товаров.

Написание ответа

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


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


Хостинг для сайта

Хостинг для интернет магазина

Svai.net

Украина
г. Черкассы
5+ Заказать

TutHost.ua

Украина
г. Киев
Заказать

Mirohost.net

Украина
г. Киев
? Заказать

HyperHosting.com.ua

Украина
г. Винница
i подробнее Заказать

Agava.ru

Россия
г. Москва
Заказать

Ukraine.com.ua

Украина
г. Киев
5 Заказать
Импераготовасотрудничатьс провайдерами Важно Учтите Этот список перечисляет лишь некоторых хостинг-провайдеров, у которых существуют специальные тарифные планы для интернет магазинов, а сам список не означает, что другие провайдеры чем-то хуже.

Существующие в списке оценки по 5-бальной шкале не должны учитываться при выборе, так как носят субъективный характер и касаются соотношения цена-качество-скорость только для самых дорогих тарифных планов.

Демо Главная Хронология Соглашение Материалы Контакты