Доброй ночи, Гость! Представляем Вам наши форумы. Вы можете зарегистрироваться чтобы писать на форумах или зайдите под своим именем, если Вы уже регистрировались.
   
   


Форум
 CMS Status-X | Основная тема
         Импорт товаров в базу

Похожие темы  |  Печать страницы

Импорт товаров в базу


События Вторник, 01.12.2009, 13:34

Odyssey

Группа: Пользователь
Ранг: Мастер
Cообщений: 566
Регистрация: 29.10.2009
очень коротко и без фото
1. нужно подготовить excel файл для импорта (csv не рекомендую, если есть разделители в названии товара или категории, например "Ноутбук тратата ; параметры тратата", может не корректно внести в базу - поэтому лучше если файл будет xls).

таблица с категориями должна иметь такой вид:
первая строка - название импортируемых столбцов данных (можно те что только нужны):
Id Parent_Id Name_1 Name_2 Name_3 Beschreibung_1 Beschreibung_2 Beschreibung_3 posi icon UstId Bild_Navi Bild_Kategorie Aktiv Sektion


обязательные поля для импорта:
Id Parent_Id Name_1 posi

вторая и последующие строки - данные

posi (необязательно) - лучше вносить сразу, чтобы руками сортировку не делать потом
если добавляете сразу и фото, то обязательное поле будет ещё и Bild_Kategorie. рекомендую использовать имя фото как Id.расширение файла, например, 1000005091.png, причина проста Id - это уникальный идентификатор, значение его не меняется, т.е. если вы удалите в 1С товар, и создадите такой же, Id у него будет уже другой. Посему, когда вы зальете новую обновленную базу с новыми ценами, артикулами и т.д. на сервер поверх старой - сопоставление в базе всегда будет выполняться по Id, т.е. при просмотре в магазине цена и артикул у товара поменялась, но id остался тот же самый, поэтому вам не придется каждый раз обновлять название фото, те оно привязано к id
Id Parent_Id posi Name_1 Aktiv
UID Родитель.UID сортировка Наименование Активен
1000005091 0 1 Металлопластиковый водопровод 1
1000010247 1000005091 1 ТРУБА МЕТАЛЛОПЛАСТ. 1
1000010527 1000010247 1 Труба металлопласт.(итал.) 1
1000010528 1000010247 2 Труба металлопласт.(китай.) 1


для визуального понимания та же таблица с артикулом ()
Id Parent_Id posi Артикул (его не должно быть в таблице категорий !) Name_1 Aktiv
UID Родитель.UID сортировка Код Наименование Активен
1000005091 0 1 01 Металлопластиковый водопровод 1
1000010247 1000005091 1 01-01 ТРУБА МЕТАЛЛОПЛАСТ. 1
1000010527 1000010247 1 01-01-1 Труба металлопласт.(итал.) 1
1000010528 1000010247 2 01-01-2 Труба металлопласт.(китай.) 1



2.
запускаете mysql-front конектитесь к базе, встаете на таблицу с категориями, правая кнопка импорт из excel, ставите галки где нужно, проверяете соответствие названия полей и импортируете
учите операция необратимая, т.е. все данные стираются без уведомления
Если у вас на сервере стоит кодировка cp1251 то проблем с импортом не должно возникнуть, если latin1 или utf8 не повезло - данные переколбасит в ????. значит импортируем на тестовый локальный сервак, на котором стоит cp1251. затем делаем экспорт (c локального сервера) нашей таблицы категорий в формате utf8 (я пользовал phpmyadmin) - будет sql файл. импортируем уже выгруженный sql на удаленный сервер (опять же я пользовал phpmyadmin) и проверяем все.

Пользователь офлайн
События Вторник, 01.12.2009, 13:43

Odyssey

Автор текущей темы
Группа: Пользователь
Ранг: Мастер
Cообщений: 566
Регистрация: 29.10.2009
из ваших фото ошибок видно, о чем я написал выше - импорт из csv вам не годится - нужен импорт из excel файла, тк где-то разделители пересеклись или кавычки похватились

в общем подождите - ближе к ночи напишу мануал
Благодарности Paul_Rem
Пользователь офлайн
События Вторник, 01.12.2009, 13:50

Paul_Rem

Группа: Пользователь
Ранг: Продвинутый
Cообщений: 120
Регистрация: 23.11.2009
Город: Оренбург
Цитата
Автор: Odyssey
из ваших фото ошибок видно, о чем я написал выше - импорт из csv вам не годится - нужен импорт из excel файла, тк где-то разделители пересеклись

в общем подождите - ближе к ночи напишу мануал


Одиссей, буду ждать с нетерпением мануала. желательно бы на основе ваших шаблонов. В принципе Вы свои шаблоны выкладывали и я скачивал. Но всё же, было бы хорошо если выложили всё это одним архивом, это сюда а это сюда. За ранее огромное спасибо
Пользователь офлайн
События Среда, 02.12.2009, 07:23

Paul_Rem

Группа: Пользователь
Ранг: Продвинутый
Cообщений: 120
Регистрация: 23.11.2009
Город: Оренбург
Сейчас бьюсь над тем как придать правильный вид прайсу в экселе,чтобы он импортировался, но пока не получается , пишет , что -
Ошибка! Загружаемый файл имеет неразрешенный тип ...

Я уже вроде очистил весь формат, пока не проходит,проую дальше, может кто знает как сделать это быстро и что именно сделать.
Одиссей, и всё-таки может проще в прайсе CSV удалить символы ";" и "-" чтобы не было портаков при импорте?

Продолжаю работать с CSV форматом.
Думаю так будет меньше действий и мороки. Скачал родной прайс у поставщика в формате CSV буду проверять его.
Удобнее добавить пару столбцов в прайс и заполнить необходимыми значениями, к примеру у меня товар под заказ, заполняю поле "товар имеется в наличии" цифрой 4 ,По такому же принципу хочу и планирую сделать и присвоение к основной категории и под категории.. Проблема в том, как вывести список этих кодов :( может кто-то даст дельный совет. категорий и под категорий прилично и вложенность до 5-го уровня в прайсе.

И еще одно замечание, которое заметил или проще сказать обнаружил. Импортировал товар в базу. Работал с небольшим кол-вом записей, всего 3 товара. Когда я импортирую товар ,то указываю +20% , у меня прайс в долларах. В магазине сделал чтобы можно было выбирать две валюты, рубли и доллары и конвертировались соответственно по курсу который в админке указали. Так вот, недавно я задал вопрос : как обновляет товар при импорте скрипт ? он обновляет цену или как он это делат, по какому принципу,что находит и что меняет и по какому принципу.И так.Я делаю первый импорт с ценой 100 долларов к примеру. В базу товар записывается с ценой +20% это 120долларов к примеру. Далее, например мы хотим обновить цены на сайте , скачали новый прайс и там меняю цену 100 на 90 к примеру. И так же при импорте указываю +20% но ничего не происходит, он импорт делает но не меняет как я понял. Специально в ручную добавил картинку к товару даже ,чтобы проверить, перезаписывает что нибудь или нет. И еще, я думаю в чем проблема. Возможно проблема кроется в этих понятиях как ID в базе.. так как я создаю в прайсе пустой столбец ID и он я так понимаю сам присваивается на сайте. Но при второй загрузке прайса, чтобы обновить цены к примеру, я и указываю этот же столбик пустой или не указываю его, эффект один и тот же.

В чем может быть проблема ?

Думаю сделаю скрины даже сейчас.





под фотографиями дополнительное пояснение
Пользователь офлайн
События Среда, 02.12.2009, 10:28

Odyssey

Автор текущей темы
Группа: Пользователь
Ранг: Мастер
Cообщений: 566
Регистрация: 29.10.2009
вчера таки не получилось сделать мануал, тк не добрался к компьютеру.
постараюсь сегодня
Пользователь офлайн
События Среда, 02.12.2009, 10:44

Paul_Rem

Группа: Пользователь
Ранг: Продвинутый
Cообщений: 120
Регистрация: 23.11.2009
Город: Оренбург
Цитата
Автор: Odyssey
вчера таки не получилось сделать мануал, тк не добрался к компьютеру.
постараюсь сегодня


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



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

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






сейчас буду пробовать менять значения в ручную, надеюсь принесет положительный результат.
Пользователь офлайн
События Среда, 02.12.2009, 16:06

Odyssey

Автор текущей темы
Группа: Пользователь
Ранг: Мастер
Cообщений: 566
Регистрация: 29.10.2009
Видео инструкция по импорту категорий в базу.

Создаем Excel файл с импортируемыми данными.
Для категорий и товаров формат файла "csv" не рекомендую. Если в данных есть разделители ";", ",", "кавычки одинарные и двойные", в названии товара или категории, например "Ноутбук тратата ; параметры тратата", может не корректно внести в базу - поэтому лучше если файл будет xls, т.к. данные из него переносятся 1:1).

Программа для импорта MySQL-Front.
Формат файла Excel 97-2003 (xlsx формат не воспринимает).
Проверил сам. Даже если в Excel есть форматирование или формулы - импортируется нормально.
Для проверки использовался Koobi 7.25, т.к. Status-X локально у меня не хочет работать.

import_kategoriy.rar
видеомануал

sample_import_kat_color.rar
два excel файла: таблица одна и та же.
Подсветка цветом сделана для визуального понятия родительского Id и основного Id, а также для показа сортировки.
Полная подсветка будет только в xlsx файле, т.к. в 2003 Excel ограничение на форматирование до 3 условий.

shablon_importa_kategoriy.rar
файл шаблона импорта категорий: имеет два листа: с описанием шапки и собственно шапкой таблицы



Вложения
import_kategoriy.rar   (39 x загружено | 1,6 Мб)   
sample_import_kat_color.rar   (32 x загружено | 12 Кб)   
shablon_importa_kategoriy.rar   (34 x загружено | 5,8 Кб)   
Благодарности Paul_Rem, daf
Пользователь офлайн
События Среда, 02.12.2009, 18:40

Paul_Rem

Группа: Пользователь
Ранг: Продвинутый
Cообщений: 120
Регистрация: 23.11.2009
Город: Оренбург
Огромное спасибо Одиссей за мануал. Всё просто очень подробно показано, что куда и как. Я правда уже сделал по своему категории, в ручную )) не успел с мануалом. Сейчас осталось присвоить значения из прайс листа в категориях. Ваш метод себе обязательно в архив отложу, думаю будем совершенствовать и улучшать методы работы с интернет магазином. Пока разобрали очень подробно работу с прайс листом, здесь столько материала в теме,что думаю каждый сможет себе по-любому что-то подобрать и почерпнуть полезное. Тему я думаю раскрыта, будем ждать предложений по улучшению наших процессов импорта. Что-то в теме активны только администратор и мы ) По ходу мало кто пользуется модулем интернет магазина.
Кстати , я обратил внимание , что работа проходит через front . у меня он стоит и у меня связь с базой интернет магазина через локальную сеть идет, так что я думаю процесс через сеть будет быстрее проходить чем через интернет. Хотя...у меня прайс почти 4000 позиций, можно сделать по другому :) надо только с настройками сервера разобраться. Движок поставить локально,а связь с базой сайта сделать через локалку, таким образом, я администратор смогу сидеть и работать с сайтом локально и это будет занимать куда меньше времени , хотя с высокой скоростью инета это отпадает.
Пользователь офлайн
События Четверг, 03.12.2009, 07:37

Paul_Rem

Группа: Пользователь
Ранг: Продвинутый
Cообщений: 120
Регистрация: 23.11.2009
Город: Оренбург
Посмотрел на то что предстоит сделать, и понял, что проще сделать Вашим методом .
Что-то с первого раза у меня всё хорошо не пошло.
Во-первых: у меня есть файл в формате CSV там такая же структура как у вас в шаблоне. Именно с ID и Parent_ID
это очень облегчает работу,я только удалил позиции товаров,чтобы остались одни категории. У меня всего получается 405 категорий. Главных у меня 15 категорий, но почему -то импортируются только часть,всего 5 категорий и соответственно их под категории, всего их получается 95 штук. В конце процесса импорта показывает что успешно создана таблица и 405 записей, но в базе почему-то вижу только всего основных 5 и в них вообе мало под категорий. в общем как -то косячно. У меня просто этот файл был в CSV,я пересохранил в эксель.

В обдщем, вот что получается
Отредактировал я свой прайс и оставил чисто только категории,Формат csv пере сохраняю в эксель. Делаю импорт, показывает что все мои 405 позиций добавлены. Обновление делаю и вижу только 95. где остальные? и открываю админку и там тоже только 5 категорий и при чем только одни и те же постоянно добавляются, предполагаю что конфликт в формате полей может , перепроверял, ничего не понимаю..всё одинаково отформатировано. Ваш файл шаблон тоже не загрузился,одна только позиция добавляется, я так же очистил форматирование и без результатно.

часть прайса,это начало файла ,которое не добавляется









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

прилагаю файл импорта

Вложения
import_kategory.rar   (5 x загружено | 12,1 Кб)   
Пользователь офлайн
События Четверг, 03.12.2009, 13:05

Odyssey

Автор текущей темы
Группа: Пользователь
Ранг: Мастер
Cообщений: 566
Регистрация: 29.10.2009
как я понимаю, проблема кроется в размере типов Id и Parent_id таблицы MySQL.
MySQL-Front
встать на таблицу 01_shop_kategorie, кнопка структура данных, встать на Id, Свойства, выставить тип Int, длина 10
тоже самое сделать для parent_id


p.s. можно длину сделать 8, цифр у вас в коде 8. На предыдущей странице об этом писал: по умолчанию для таблицы стоит MEDIUMint[(5)].
Типы данных MySQL 4.x
Спойлер
Типы данных MySQL 4.x
Примечания
M - Количество знаков вывода. Максимально допустимое количество - 255 символов.
D - Употребляется для типов данных с плавающей точкой и указывает количество разрядов, следующих за десятичной точкой. Максимально возможная величина составляет 30 разрядов, но не может быть больше, чем M-2.
[] - Необязательные признаки.

Числа

TINYINT[(M)] [ZEROFILL]
Очень малое целое число. Диапазон со знаком от -128 до 127. Диапазон без знака от 0 до 255. BIT и BOOL являются синонимами для TINYINT(1).
TINYINT эквивалентно TINYINT(4). Для булевых переменных предпочтительнее применять: TINYINT(1) UNSIGNED.

SMALLINT[(M)] [ZEROFILL]
Малое целое число. Диапазон со знаком от -32768 до 32767. Диапазон без знака от 0 до 65535.
SMALLINT эквивалентно SMALLINT(6).

MEDIUMINT[(M)] [ZEROFILL]
Целое число среднего размера. Диапазон со знаком от -8388608 до 8388607. Диапазон без знака от 0 до 16 777 215.
MEDIUMINT эквивалентно MEDIUMINT(9).

INT[(M)] [ZEROFILL]
Целое число нормального размера. Диапазон со знаком от -2147483648 до 2147483647. Диапазон без знака от 0 до 4 294 967 295. INTEGER[(M)] [ZEROFILL] Синоним для INT.
INT эквивалентно INT(11).

BIGINT[(M)] [ZEROFILL]
Большое целое число. Диапазон со знаком от -9223372036854775808 до 9223372036854775807. Диапазон без знака от 0 до 18446744073709551615.
BIGINT эквивалентно BIGINT(20).
Благодарности Paul_Rem
Пользователь офлайн
События Четверг, 03.12.2009, 13:13

Paul_Rem

Группа: Пользователь
Ранг: Продвинутый
Cообщений: 120
Регистрация: 23.11.2009
Город: Оренбург
Цитата
Автор: Odyssey
как я понимаю, проблема кроется в размере типов Id и Parent_id таблицы MySQL.
MySQL-Front
встать на таблицу 01_shop_kategorie, кнопка структура данных, встать на Id, Свойства, выставить тип Int, длина 10
тоже самое сделать для parent_id


p.s. можно длину сделать 8, цифр у вас в коде 8


все получилось, спасибоКлево
Пользователь офлайн
События Четверг, 03.12.2009, 13:24

Paul_Rem

Группа: Пользователь
Ранг: Продвинутый
Cообщений: 120
Регистрация: 23.11.2009
Город: Оренбург
Может дадите совет, как мне привязать товар из прайса к этим ID_parent при импорте в админке, такого поля там нет


Пользователь офлайн
События Четверг, 03.12.2009, 14:36

Odyssey

Автор текущей темы
Группа: Пользователь
Ранг: Мастер
Cообщений: 566
Регистрация: 29.10.2009
опять невнимательно изучил файл shablon_importa_tovarov.xls :)
у товара есть Id - вот к нему и привязывается он.
Для товара существует параметр не Parent_Id, а Kategorie = это параметр Id из таблицы категорий.
Пользователь офлайн
События Четверг, 03.12.2009, 14:53

Paul_Rem

Группа: Пользователь
Ранг: Продвинутый
Cообщений: 120
Регистрация: 23.11.2009
Город: Оренбург
Цитата
Автор: Odyssey
опять невнимательно изучил файл shablon_importa_tovarov.xls :)
у товара есть Id - вот к нему и привязывается он.
Для товара существует параметр не Parent_Id, а Kategorie = это параметр Id из таблицы категорий.


Да да Одиссей, я уже разобрался,спасибо. Всё через ту же самую программу делаем импорт и товаров. Как таковой, получается средства КМС и не используются вообще :) только если для корректировки и редактирования позиций , в принципе как и ранее говорили. админка только для мелочей используется.
У меня остается одна деталь по импорту товара, так как у меня единый прайс и в нем и категории и товары,главное чтобы не намешать всё это. Так что посмотрю еще и по экспериментирую
Пользователь офлайн
События Четверг, 03.12.2009, 15:07

Status-X

Группа: Администратор
Cообщений: 3005
Регистрация: 23.10.2009
Город: Санкт-Петербург
Весело живетеРжу нимагу Когда то я через все это проходил еще на шестерке и с php когда не очень дружил.
Чтобы не было мешанины с прайсом попробуйте програмулину поищете в поисковиках PriceListXP. Автор ее давно забросил но на тот момент это лучшее что я нашел так как у меня было около 50 прайс листов от разных поставщиков. И вот спомощью этого зверя я делал единый прайс лист, при том после подготовленных шаблонов рутина с прайс листами почти исчезла. Плюсы не было повторов, удобно делать шаблоны прайсов, любое поле можно добавить, выбор поставщика с лучшей ценой, в общем многго плюсов, минус пожалуй единственный чего то там с конвертацией валют автором было не доделано, кнопки есть а не работает. До 100 тысяч позиций резвенько работает, а вот свыше - уже притормаживает. Конечно если поставщик один то можно и ручками перепахивать, но меня заколебывать стало когда стало три поставщика и времени стало уходить тьма, а вообще руками копипастить это зло!!! Головой надо работать


Пользователь офлайн


Похожие темы  |  Печать страницы  |   Предыдущая тема

Быстрый переход:  
 

 Сейчас на сайте


Пользователей: 0, Гостей: 9

Поисковые боты: 9
BingBot(2), Unknown Bot(4), oBot, Inktomi Slurp, Yandex

 Статистика форума


  Темы Сообщения Пользователи
За сутки:
За неделю:
За месяц:
Всего:
Мы приветствуем нового участника: Lesya

 Дни рождения


alex.gladchenko (48), Юрик (39)
Печать | Copyright © 2009 - 2016 Status-X All rights reserved | Powered by CMS Status-X 1.05 | Контакты