Меню Рубрики

Установка tecdoc 2014 из zip архива

Экспорт данных из TecDoc в MySQL

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

Для создания интернет-магазина продажи автозапчастей необходимо произвести конвертацию (экспорт) данных из ТекДОКа в БД MySQL.

Текущая версия каталога ТекДок — 2 квартал 2017 года TECDOC Q2.2017

До 4 квартала 2016 года были доступны две версии каталога ТекДок:

    версия на 2-х DVD без картинок, предназначена для Европы — так называемая стандартная, урезанная, кастрированная (

12Gб) — последняя доступная версия TecDoc Q3.2016.
версия на 8-и DVD — полная версия с картинками, предназначенная для стран бывшего СССР кроме Прибалтики (

60Gb) — последняя доступная версия Текдок Q3.2016.

С 1 октября 2016 года вышел в свет абсолютно новый Текдок 4Q2016 с новым интерфейсом. Теперь он занимает 4 DVD (26,3 Гб). В новом ТекДоке 4 квартал 2016 года полностью удалена техническая информация (БД AudaCON). Разработчик обещает значительный прирост в скорости работы каталога.

Скриншоты установки TECDOC Q4.2016:

К сожалению, Текдок 4Q2016 теперь невозможно установить на Windows XP.

Процесс экспорта данных из ТекДОКа можно разделить на несколько этапов:

1. Установка ТекДОКа и подключение к нему.
2. Экспорт данных из ТекДОКа и удаление ненужной информации.
3. Экспорт рисунков и фотографий из ТекДОКа и преобразование их в формат .jpg

Установка ТекДОКа и подключение к нему:

  • На сегодняшний день актуальна версия TecDoc 3Q2016 — 3-й квартал 2016 года — скачайте ее.
  • Используя DTLite или аналог установитеТекдок как «Сетевая инсталяция сервер».
  • Установите WAMP.
  • Настройте ODBC TransBase для подключения: WIN+R, в окне ввести «C:\Windows\SysWOW64\odbcad32.exe», ENTER, открыть вкладку «Системные DNS», нажать кнопку «Добавить». Пролистать вниз, выделить «Transbase ODBC TECDOC 3_2016«, нажать кнопку «Готово».
  • Настройки в окне «Transbase ODBC Driver — Administration» (открывается автоматически):

DataSource: TecDoc2016 Description: TecDoc2016 Database: TECDOC_CD_3_2016

Server: localhost User: tecdoc Password: tcd_error_0

нажать кнопку «ОК» и еще раз нажать кнопку «ОК».

  • Создать базу данных MySQL: запустить WAMP сервер, MySQL => MySQL CONSOLE => Enter, в открывшемся окне ввести «CREATE DATABASE TECDOC_3Q2016 CHARACTER SET utf8 COLLATE utf8_general_ci;».
  • Если предыдущие шаги выполнены правильно, то используя утилиту можно увидеть все таблицы TecDoc и их содержимое.

Экспорт данных из ТекДОКа и удаление ненужной информации:

  • Экспортируйте данные необходимых таблиц в созданную БД TECDOC2016Q2, используя DBMigration (необходимо создать подключения к TransBase TecDoc и созданной TECDOC3 Q2016 в MySQL, выбрать необходимые таблицы и начать экспорт).
  • Экспорт TecDoc в MySQL может занимать нескольких суток, в зависимости от конфигурации и настроек сервера.
  • Переименуйте полученные таблицы:

RENAME TABLE `TECDOC3Q2016`.`tof_articles` TO `TECDOC3Q2016`.`ARTICLES`;
RENAME TABLE `TECDOC3Q2016`.`tof_article_criteria` TO `TECDOC3Q2016`.`ARTICLE_CRITERIA`;
RENAME TABLE `TECDOC3Q2016`.`tof_article_info` TO `TECDOC3Q2016`.`ARTICLE_INFO`;
RENAME TABLE `TECDOC3Q2016`.`tof_art_lookup` TO `TECDOC3Q2016`.`ART_LOOKUP`;
RENAME TABLE `TECDOC3Q2016`.`tof_brands` TO `TECDOC3Q2016`.`BRANDS`;
RENAME TABLE `TECDOC3Q2016`.`tof_countries` TO `TECDOC3Q2016`.`COUNTRIES`;
RENAME TABLE `TECDOC3Q2016`.`tof_country_designations` TO `TECDOC3Q2016`.`COUNTRY_DESIGNATIONS`;
RENAME TABLE `TECDOC3Q2016`.`tof_criteria` TO `TECDOC3Q2016`.`CRITERIA`;
RENAME TABLE `TECDOC3Q2016`.`tof_designations` TO `TECDOC3Q2016`.`DESIGNATIONS`;
RENAME TABLE `TECDOC3Q2016`.`tof_des_texts` TO `TECDOC3Q2016`.`DES_TEXTS`;
RENAME TABLE `TECDOC3Q2016`.`tof_doc_types` TO `TECDOC3Q2016`.`DOC_TYPES`;
RENAME TABLE `TECDOC3Q2016`.`tof_engines` TO `TECDOC3Q2016`.`ENGINES`;
RENAME TABLE `TECDOC3Q2016`.`tof_graphics` TO `TECDOC3Q2016`.`GRAPHICS`;
RENAME TABLE `TECDOC3Q2016`.`tof_link_art` TO `TECDOC3Q2016`.`LINK_ART`;
RENAME TABLE `TECDOC3Q2016`.`tof_link_ga_str` TO `TECDOC3Q2016`.`LINK_GA_STR`;
RENAME TABLE `TECDOC3Q2016`.`tof_link_gra_art` TO `TECDOC3Q2016`.`LINK_GRA_ART`;
RENAME TABLE `TECDOC3Q2016`.`tof_link_la_typ` TO `TECDOC3Q2016`.`LINK_LA_TYP`;
RENAME TABLE `TECDOC3Q2016`.`tof_link_typ_eng` TO `TECDOC3Q2016`.`LINK_TYP_ENG`;
RENAME TABLE `TECDOC3Q2016`.`tof_manufacturers` TO `TECDOC3Q2016`.`MANUFACTURERS`;
RENAME TABLE `TECDOC3Q2016`.`tof_models` TO `TECDOC3Q2016`.`MODELS`;
RENAME TABLE `TECDOC3Q2016`.`tof_search_tree` TO `TECDOC3Q2016`.`SEARCH_TREE`;
RENAME TABLE `TECDOC3Q2016`.`tof_suppliers` TO `TECDOC3Q2016`.`SUPPLIERS`;
RENAME TABLE `TECDOC3Q2016`.`tof_supplier_addresses` TO `TECDOC3Q2016`.`SUPPLIER_ADDRESSES`;
RENAME TABLE `TECDOC3Q2016`.`tof_supplier_logos` TO `TECDOC3Q2016`.`SUPPLIER_LOGOS`;
RENAME TABLE `TECDOC3Q2016`.`tof_text_modules` TO `TECDOC3Q2016`.`TEXT_MODULES`;
RENAME TABLE `TECDOC3Q2016`.`tof_text_module_texts` TO `TECDOC3Q2016`.`TEXT_MODULE_TEXTS`;
RENAME TABLE `TECDOC3Q2016`.`tof_types` TO `TECDOC3Q2016`.`TYPES`;
RENAME TABLE `TECDOC3Q2016`.`tof_type_numbers` TO `TECDOC3Q2016`.`TYPE_NUMBERS`;

  • удалите поля _CTM, подключите модуль продажи автозапчастей, проверьте работу.

Если при выполнении конвертации данных из TecDoc в MySQL у вас остались вопросы — задать из вы можете на нашем ф оруме .

источник

Установка tecdoc 2014 из zip архива

Не могу установить TecDoc

tohazp » Ср авг 06, 2008 4:16 pm

Andy_kgd » Пт авг 29, 2008 2:12 pm

Нaтaлья » Пт сен 12, 2008 9:19 am

Andy_kgd » Пт сен 12, 2008 1:50 pm

сложно что-то посоветовать, невидя компьютера.
я на Висту ставил 1 раз (успешно)
1) Попробовать установить на XP, чтобы убедиться, что дистрибутив нормальный.
2) Попробовать поставить на другой комп с Вистой или на чистую висту.
3) Если все OK (п.1-2), переставить Висту, или ковыряться с тем что есть.
возможно проблема с версией Windows Installer (найти файл msiexec.exe и проверить версию)

Добавлено спустя 3 минуты 20 секунд:

если оригинал или точная копия то должно быть два двухслойных диска (по 8,5G). Если 4,7Г (однослойные), то их должно быть три (причем базы вручную распределяются по дискам)

Добавлено спустя 2 минуты 3 секунды:

временно отключить файрволл, антивирусы и дифендер виста

Нaтaлья » Пт сен 12, 2008 5:10 pm

спасибо за такой быстрый отклик .
У меня на 2 dvd dl ., общий вес при установке дает 12 с копейками тысяч гб ,на первом диске 7 с лишним а на втором 5 .
Пробывала устанавливать на другом компе ,тоже на висте , все то же самое что и у меня . Таже ошибка на тех же процентах установки .
Попробывать установить на хр ,увы нет возможности .
Вот с третьим пунктом я не все поняла .
переставить висту — это то есть полностью ее переустановить ? и как понять ковыряться с тем что есть ?
файл msiexec.exe нашла , Установщик Windows®. Версия 4.00.6001.0 .
Попробывать установить еще раз программу ,отключив антивирус ,фаервола нет у меня , а что такое дифендер виста ??

Добавлено спустя 41 минуту 25 секунд:

с дифендер виста разобралась ,отключила .

Andy_kgd » Пт сен 12, 2008 5:25 pm

1) попробуйте на Xp где-нибудь (что нет ни у кого?), может быть дистрибутив испортился, а вы мучаетесь. а лучше убирать Висту и ставить XP. если будет еще автософт — будете опять мучиться.
2) Виста 32-битная, надеюсь? или x64?
3) Любой проблемный автософт лучше пробовать ставить на чистой системе. Я понимаю, что может быть будет непросто переставить систему, но иногда это бывает единственный выход, если не знаете в чем дело.

Читайте также:  Установка дефлекторов ниссан джук

Сложно помочь.
Может быть текдоку сеть нужна настроенная рабочая или интернет? Можно еще стандартный Брандмауер Windows отключить.

У меня подобных ошибок в XP не было никогда (эту версию я ставил очень много раз). По висте нет статистики. Один раз ставил на Висту, но 2008 кв. 2. Но та версия не зависала при установке в XP. А эта виснет. Может быть в этом дело? Наверное в реестр что-то пишет после того как базы скопированы..

у кого-нибудь в висте работает 3-й квартал?

Нaтaлья » Сб сен 13, 2008 10:36 am

1\AppData\Local\Temp\AC122FA.tmp
2.с :\user \8D74

1\AppData\Local\Temp\ACG230A.tmp
Виста у меня на компах 32-битная ,хоме базик.Программ на не так много . Только пару прог типа етки ,а вот кстати Pet 6 тоже не стала устанавливаться .
Кого знаю ,у всех компы пока с ХР . Так что спросить ,идет ли на висте тикдок точно не могу .
Еще ,я тут в поисках решения проблемы ,этой ,нашла один форум ,там парень с такой же проблемой спрашивал совета , ему не ответили ,но он сам отписался ,что типа разобрался сам ,дело было в имени . Не могу понять ,в каком , может вам что то это скажет ?
Кстати на счет сети настроенной или интернета ..Пробовала дома установить ,у меня стрим ,и пробовала на работе ,там локалка ,2 разные сети ,но эффект установки один .

Andy_kgd » Сб сен 13, 2008 2:34 pm

1) я попробую поставить на висте. есть у меня на примете комп (все равно обновлять надо будет), но только на след неделе (пнд-вт).
2) а DVD привод нормальный? Не ноутбук? я думаю случайно получилось что выдал ошибку при распаковке ROM1
попробуйте все в одну папку слить на жесткий, и со второго диска архивы в папку DB. Он с жесткого всегда ставился без проблем. главное чтобы в одной папке DB были все архивы c обоих дисков.
3) путь к временным файлам лучше короткий сделать C:\Temp в переменных окружения. На диске С: место то есть? может быть он во врем папку кидает?
4) Еще можно DEP попробовать отключить (посмотрите в инете что это)

Добавлено спустя 7 минут 1 секунду:

может быть сетевое имя компьютера набито русскими буквами? виста по умолчанию так предлагает

Нaтaлья » Вс сен 14, 2008 12:10 pm

Andy_kgd
комп. :Операционная система MS Windows Vista Basic
Тип процессора Core2Duo E7200
Тактовая частота 2.53 ГГц
Оперативная память 2 ГБ
Жесткий диск (HDD) 250 ГБ
Видео память 512 МБ
Модель видеокарты Radeon HD3750
Тип привода 1 DVD+-R/RW
Тип CardReader внутренний
не ноут . Привод вроде все читает , не жаловалась . Купила не давно .
Места на диске предостаточно.
спасибо за советы .
По поводу , слить все данные со второго диска в папку DВ ,которая находится на первом диске ? Я правильно поняла ?

Добавлено спустя 46 минут 21 секунду:

Andy_kgd
вот сейчас создала папку в C:\Temp , и копирую туда содержимое 1 диска , но опять не все так гладко ,пишит : не удается выполнить чтение с файла или диска .rfile020.000
Тип файла 000 ,размер 647 МВ . И дату обновления.
а ниже прилагается три кнопки » повторить» ,»пропустить» ,»отмена» .
Жму повторить , проходит минут 5 и опять тоже самое . .

Добавлено спустя 1 час 32 минуты 24 секунды:

Andy_kgd
вот пошла другим путем . Все поотключала ,кроме DEP ,(честно ,просто не разобралась ,как это сделать ,ну что бы отключить для него блокировку ,если он не установлен на компе) , потом загрузила первый диск и указала ему путь как вы говорили в папку C:\Temp -новая папка .
В этот раз мне объявили что файл не найден D:\db\rfile020.000 и предложили вставить диск 1 .

Добавлено спустя 5 минут 55 секунд:

а после того как нажала на ок , выскочило окошко «ошибка при чтении информационного файла \ DB файла . И как всегда самоудаление .

источник

Экспорт данных из TecDoc в MySQL

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

Для создания интернет-магазина продажи автозапчастей необходимо произвести конвертацию (экспорт) данных из ТекДОКа в БД MySQL.

Текущая версия каталога ТекДок — 1 квартал 2016 года 2016Q1.

На настоящий момент доступны две версии каталога ТекДок:

    версия на 2-х DVD без картинок, предназначена для Европы — так называемая стандартная, урезанная, кастрированная (

11Гб)

  • версия на 7-и DVD полная версия Текдок 2016Q1 с картинками — предназначенная для стран бывшего СССР кроме Прибалтики.
  • Процесс экспорта данных из ТекДОКа можно разделить на несколько этапов:

    1. Установка ТекДОКа и подключение к нему.
    2. Экспорт данных из ТекДОКа и удаление ненужной информации.
    3. Экспорт рисунков и фотографий из ТекДОКа и преобразование их в формат .jpg

    Установка ТекДОКа и подключение к нему:

    • На сегодняшний день актуальна версия TecDoc 2016Q1 1-й квартал 2016 года — скачайте ее.
    • Используя DTLite или аналог установитеТекдок как «Сетевая инсталяция сервер».
    • Установите WAMP.
    • Настройте ODBC TransBase для подключения: WIN+R, в окне ввести «C:\Windows\SysWOW64\odbcad32.exe», ENTER, открыть вкладку «Системные DNS», нажать кнопку «Добавить». Пролистать вниз, выделить «Transbase ODBC TECDOC 1_2016«, нажать кнопку «Готово».
    • Настройки в окне «Transbase ODBC Driver — Administration» (открывается автоматически):

    DataSource: TecDoc2016 Description: TecDoc2016 Database: TECDOC_CD_1_2016

    Server: localhost User: tecdoc Password: tcd_error_0

    нажать кнопку «ОК» и еще раз нажать кнопку «ОК».

    • Создать базу данных MySQL: запустить WAMP сервер, MySQL => MySQL CONSOLE => Enter, в открывшемся окне ввести «CREATE DATABASE TECDOC2016Q1 CHARACTER SET utf8 COLLATE utf8_general_ci;».
    • Если предыдущие шаги выполнены правильно, то используя утилиту можно увидеть все таблицы TecDoc и их содержимое.

    Экспорт данных из ТекДОКа и удаление ненужной информации:

    • Экспортируйте данные необходимых таблиц в созданную БД TECDOC2016Q1, используя DBMigration (необходимо создать подключения к TransBase TecDoc и созданной TECDOC2016Q1 в MySQL, выбрать необходимые таблицы и начать экспорт).
    • Экспорт TecDoc в MySQL может занимать нескольких суток, в зависимости от конфигурации и настроек сервера.
    • Переименуйте полученные таблицы:

    RENAME TABLE `tecdoc2016q1`.`tof_articles` TO `tecdoc2016q1`.`ARTICLES`;
    RENAME TABLE `tecdoc2016q1`.`tof_article_criteria` TO `tecdoc2016q1`.`ARTICLE_CRITERIA`;
    RENAME TABLE `tecdoc2016q1`.`tof_article_info` TO `tecdoc2016q1`.`ARTICLE_INFO`;
    RENAME TABLE `tecdoc2016q1`.`tof_art_lookup` TO `tecdoc2016q1`.`ART_LOOKUP`;
    RENAME TABLE `tecdoc2016q1`.`tof_brands` TO `tecdoc2016q1`.`BRANDS`;
    RENAME TABLE `tecdoc2016q1`.`tof_countries` TO `tecdoc2016q1`.`COUNTRIES`;
    RENAME TABLE `tecdoc2016q1`.`tof_country_designations` TO `tecdoc2016q1`.`COUNTRY_DESIGNATIONS`;
    RENAME TABLE `tecdoc2016q1`.`tof_criteria` TO `tecdoc2016q1`.`CRITERIA`;
    RENAME TABLE `tecdoc2016q1`.`tof_designations` TO `tecdoc2016q1`.`DESIGNATIONS`;
    RENAME TABLE `tecdoc2016q1`.`tof_des_texts` TO `tecdoc2016q1`.`DES_TEXTS`;
    RENAME TABLE `tecdoc2016q1`.`tof_doc_types` TO `tecdoc2016q1`.`DOC_TYPES`;
    RENAME TABLE `tecdoc2016q1`.`tof_engines` TO `tecdoc2016q1`.`ENGINES`;
    RENAME TABLE `tecdoc2016q1`.`tof_graphics` TO `tecdoc2016q1`.`GRAPHICS`;
    RENAME TABLE `tecdoc2016q1`.`tof_link_art` TO `tecdoc2016q1`.`LINK_ART`;
    RENAME TABLE `tecdoc2016q1`.`tof_link_ga_str` TO `tecdoc2016q1`.`LINK_GA_STR`;
    RENAME TABLE `tecdoc2016q1`.`tof_link_gra_art` TO `tecdoc2016q1`.`LINK_GRA_ART`;
    RENAME TABLE `tecdoc2016q1`.`tof_link_la_typ` TO `tecdoc2016q1`.`LINK_LA_TYP`;
    RENAME TABLE `tecdoc2016q1`.`tof_link_typ_eng` TO `tecdoc2016q1`.`LINK_TYP_ENG`;
    RENAME TABLE `tecdoc2016q1`.`tof_manufacturers` TO `tecdoc2016q1`.`MANUFACTURERS`;
    RENAME TABLE `tecdoc2016q1`.`tof_models` TO `tecdoc2016q1`.`MODELS`;
    RENAME TABLE `tecdoc2016q1`.`tof_search_tree` TO `tecdoc2016q1`.`SEARCH_TREE`;
    RENAME TABLE `tecdoc2016q1`.`tof_suppliers` TO `tecdoc2016q1`.`SUPPLIERS`;
    RENAME TABLE `tecdoc2016q1`.`tof_supplier_addresses` TO `tecdoc2016q1`.`SUPPLIER_ADDRESSES`;
    RENAME TABLE `tecdoc2016q1`.`tof_supplier_logos` TO `tecdoc2016q1`.`SUPPLIER_LOGOS`;
    RENAME TABLE `tecdoc2016q1`.`tof_text_modules` TO `tecdoc2016q1`.`TEXT_MODULES`;
    RENAME TABLE `tecdoc2016q1`.`tof_text_module_texts` TO `tecdoc2016q1`.`TEXT_MODULE_TEXTS`;
    RENAME TABLE `tecdoc2016q1`.`tof_types` TO `tecdoc2016q1`.`TYPES`;
    RENAME TABLE `tecdoc2016q1`.`tof_type_numbers` TO `tecdoc2016q1`.`TYPE_NUMBERS`;

    • удалите поля _CTM, подключите модуль продажи автозапчастей, проверьте работу.
    Читайте также:  Установка жесткого диска без потери данных

    Чтобы подключить БД TECDOC`а к MS SQL Server в качестве Linked Server, необходимо следующее:

    1) Создать ODBC DSN: Панель управление -> Администрирование -> Источники данных (ODBC) -> Системный DSN -> Добавить. Здесь выбираем драйвер Transbase, который должен был появиться после установки Tecdoc (нечто вроде «Transbase ODBC TECDOC CD 3_2010», название зависит от версии текдока) и настраиваем подключение следующим образом:
    — Datasource: TECDOC_CD_1_2016
    — Database: TECDOC_CD_1_2016
    — Server: localhost
    — User: tecdoc
    — Password: tcd_error_0
    2) На свервере MS SQL выполняем:
    EXEC sp_addlinkedserver @server=’TECDOC’, @srvproduct=’TECDOC_2011_3′, @prov
    Сразу скажу: вариант с ковырянием в текдок из MS SQL сервера — не самый удачный. Во-первых, производительность переноса данных сравнительно невелика (по сравнению, скажем, с переносом с помощью самописной Java-программы и JDBC-ODBC моста). Во-вторых, что уже совсем критично: при попытке выполнения INSERT . SELECT запроса, переносящего данные из Tecdoc`а в подключенный как Linked Server MySQL, BLOB / TEXT данные выудить не получается:
    OLE DB provider «MSDASQL» for linked server returned message «Вставка или обновление на основе запроса значений BLOB не поддерживается.»
    3) Используем MYSQL-Front для конвертации данных из transbase, предварительно создав в MYSQL базу и таблицы.

    источник

    Интеграция БД TecDoc с интернет-магазином автозапчастей

    Написание статьи стало последствием работы в довольно интересном проекте, результатом которого должен быть интернет-магазин, с возможностью привязки номенклатуры к каталогу деталей «TecDoc».
    Продукт «TecDoc» — это своего рода база данных, включающая в себя не только связи производителей запчастей с конкретными номерами деталей каталога, но и содержит изображения товаров, а так же рекомендуемую цену и самое главное — возможность поиска аналогов.

    Для связи сайт с каталогом «TecDoc», его базу данных пришлось выгрузить в MySQL. На этом останавливаться не будем, так как в просторах всемирной паутины эту информацию можно найти без проблем.

    Данный интернет магазин занимается продажей запчастей для легковых автомобилей.

    Основа интернет-магазина — CMS «HostCMS». Поскольку заказчик имел лицензию на эту CMS, то пришлось работать, так сказать, с тем, что есть. Хотя из коробки этот продукт тоже может порадовать своими возможностями.

    Основная доработка интернет-магазина заключается в возможности привязки товаров к каталогу — базе данных «TecDoc», с тем учетом, что номенклатура может загружаться как с прайс-листа в формате *.xls, так и вручную — через панель управления сайтом.

    Для пользователя имеются инструменты, позволяющие найти товар в магазине:

    • По наименованию и фирме,
    • По оригинальному номеру из «TecDoc»,
    • По внутреннему номеру в каталоге интернет-магазина,
    • По дереву категорий деталей,
    • И главное с помощью инструмента «Ваш автомобиль».

    Теперь по подробнее о решении каждой из задач.

    Импорт товаров.

    Самая первая задача заключалась в загрузке новой номенклатуры из сформированного прайс-листа.
    Поскольку прайс-лист был в формате *.xls, а готового инструмента для работы с этим форматом в данной CMS нет — решено использовать «PHPExcel»
    «PHPExcel» — довольно удобный инструмент, позволяющий не только считывать данные из файла, но и генерировать свои файлы.

    Для того, чтобы все выглядело красиво, мы создали модуль в панели управления сайтом и вывели ссылку на него в перечне установленных модулей.
    После перехода по ссылке, администратору отображается форма для загрузки файла. Если посмотреть на эту часть со стороны программиста — все стандартно, то есть создалась форма, принимается файл, переименовывается и переносится в нужную директорию. Желательно добавить всевозможные проверки вроде типа файла, защита от «XSS» и т.д.

    В форме администратор выбирает файл, который должен успешно загрузиться на сервер.
    Итак файл загружен на сервер. Теперь мы имеем два варианта:
    1.Пустить на обработку весь файл. Хороший вариант, но если там количество записей десятки тысяч, то процесс импорта будет не контролируемым.
    2.Второй вариант, его мы и использовали.
    2.1 После загрузки файла определяется количество заполненных строк.
    2.2 Генерируется скрипт, отправляющий номера строк для обработки
    2.2.1 Отображается процесс импорта в процентах
    2.2.2 Отображается результат импорта в виде таблицы, растущей вниз, по ходу импорта.
    2.3 Из полученной таблицы администратору виден результат и возможные действия над каждым товаром.
    Для конкретики привожу пример товаров из прайс-листа.

    Когда скрипт посылает номера строк, которые следует обработать, мы будем получать массив свойств для каждого товара. То есть каждая строка в прайс-листе соответствует отдельному товару, и для этого товара мы вытягиваем такие свойства, как цена, количество, аналоги каталога «TecDoc» и др.
    Если потребуется создать инструмент, в котором поля прайс-листа могут меняться, то следует в первой строке каждого столбца писать опознавательный атрибут (например ‘V.numb’, ‘Name.manufacturer’ и т.д.), а второй строкой будет заголовок для столбцов. В итоге импорт придется начинать с третьей строки. И перед импортом следует определить необходимые нам поля, исходя из опознавательных атрибутов.

    Дальнейшие наши шаги заключаются в привязке внутреннего номера к каталожным товарам магазина и базы «TecDoc».
    1. Поиск в каталоге по внутреннему номеру
    2. Если товар найден- обновляем для него характеристики (такие как цены и количество)
    3. Если товар не найден в магазине делаем поиск по «TecDoc»
    3.1 Если для данного оригинального номера и соответствующих к нему аналогов найден 1 товар переходим к «добавлению нового товара»
    3.2 Если найдено несколько товаров отображаем ссылку на «выбор одного из товаров»
    3.3 Если товар не найден даем ссылку на «выбор любого товара»
    3.4 Если товаров несколько или не найдено ни одного, тогда проводим модификации записей аналогов(удаление лишних символов или разбиение на массив, когда в одном поле несколько номеров, разделенных символом «/»).Если после проведения операций со значениями найдена одна позиция — выполняем «добавление нового товара»
    4. «Добавление нового товара» — в каталоге создается новый товар, исходя из полей в прайс-листе, недостающие свойства товара получают значения по умолчанию. В таблице результатов появляется запись «Добавлен»
    5. «Выбор одного из товаров» — диалоговое окно, является результатом выполнения скрипта. Скрипт активируется кликом напротив товара, для которого найдено несколько позиций в «TecDoc». Он принимает найденные номера позиций «TecDoc», и позволяет выбрать среди них нужную:

    Читайте также:  Установка профиля под гипсокартон мансарда

    6. «Выбор любого товара» — диалоговое окно, является результатом выполнения скрипта. Скрипт активируется кликом напротив товара, для которого не найдено ни одной позиций в «TecDoc» и позволяет выбрать среди всех производителей нужную деталь:

    MySQL.

    Все запросы можно найти, воспользовавшись поиском по интернету.
    Приводимые запросы модифицировались для специализации той или иной задачи, а так же для оптимизаций. Но многое можно понять просмотрев следующие задачи:

    Задача 1. Поиск адреса изображения

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

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

    Задача 3. Вывод информации о товаре

    Не стоит забывать о @LNG_ID — и ставить туда значение, например равное 16, для русского языка.

    Поиск товаров.

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

    Фильтрация
    В качестве фильтрации можно создать дерево категорий, и позволить посетителю перемещаться в нем. Например:
    -Легковые автомобили
    —Кузов
    —Детали кузова/крыло/буфер
    —Остекление / зеркала
    —Крышки/капоты/двери/сдвижная крыша/складная крыша
    —Дополнительная фара/ комплектующие
    —Система освещения / сигнализация
    —Двигатель
    —Прокладки
    —Система смазки
    —Головка цилиндра
    —Система подачи воздуха
    —Система выпуска
    —Детали монтажа
    —Впрыск карбамида
    —Глушитель в сборе
    —Катализатор
    —Лямбда-зонд

    И теперь при выборе фильтра отображать, только те детали, каталога, которые связаны с данной категорией, то есть добавляем фильтрацию по категории, благодаря привязке к позиции из «TecDoc». Обновление списка товаров в каталоге при выборе фильтра можно сделать как динамическим с использованием Ajax, так и с обновлением страницы.
    Ниже приведен запрос выводящий дерево подкатегорий для категории легковые автомобили (10001):

    Поскольку запрос будет выполняться буквально на каждой странице каталога, его результат желательно добавить в кеш. Да и в общем следует изучить узкие места, дающие большую нагрузку и задержку.
    Очень кстати может прийтись модуль «Кеширование» в этой CMS. Хотя если осмотреться, то, наверное, любой фреймворк позволит закешировать самые нагруженные места на сайте.

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

    Поиск по оригинальному номеру
    Для решения данной задачи у нас, казалось бы все есть. Мы без проблем можем вывести все товары каталога, с учетом оригинального номера или номера его аналога, добавленного в дополнительные свойства товара.
    Но…
    Скорость выполнения подобного запроса довольно низкая. Даже используя всевозможные оптимизации для сервера MySQL, результат огорчает.

    Уже не один раз в проектах использовался «Sphinx» (поисковая система), и всегда эта технология позволяла только улучшить проект. И в этот раз при использовании «Sphinx» мы были удивлены:

    • Простотой интеграции и настройки.
    • Скоростью индексации.
    • И, наконец, скоростью поиска.

    Скорректировали конфигурационный файл для нужд проекта, произвели повторную индексацию, и скорость поиска действительно возросла, по сравнению с отсутствием «Sphinx».

    Поиск по ключевым словам
    Поскольку проблема в скорости была с оригинальным номером, то решено было, что основной поиск так же следует делать с использованием технологии «Sphinx».
    К тому же эта технология позволяет использовать:

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

    Кстати, в начале проекта упоминался инструмент «Ваш автомобиль».
    Данный инструмент позволяет из всего каталога «TecDoc» выбрать единственную модификацию автомобиля и просматривать все товары, так или иначе связанные только с этим автомобилем.
    Инструмент представляет из себя набор полей, обновляющихся динамически в зависимости от выбора предыдущего поля. Например, после выбора года производства автомобиля, выбираются доступные марки автомобилей, затем выбираем модель и тип двигателя. Результат его работы показан ниже:

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

    Подведем итог

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

    • ООП без него, тут будет сложно.
    • Основа, так сказать костяк сайта «MySQL», «PHP», «HTML», «JS», «CSS».
    • Понимание принципа работы CMS «HostCMS»
    • Умение работать с «API» других разработчиков
    • Поиск «Sphinx»
    • Умение исследовать загруженные места сайта и производить оптимизацию кода
    • Желательно «jQuery» или «Prototype»
    • Ну и естественно, правда спорно, умение работать с какой-нибудь «Интегрированной средой разработки».

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

    P.S. В качестве дополнений привожу пару скриптов из проекта, которые хоть являются неокончательными, ну понять суть по ним можно.
    Скрипт, отвечающий за разбиение процесса на запросы, отвечает за добавление из списка, а так же информирующий о процессе импорта:

    Функция добавления товара исходя из номера детали и названия производителя

    P.S. Чтобы получать наши новые статьи раньше других или просто не пропустить новые публикации — подписывайтесь на нас в Facebook, VK, Twitter, LiveJournal и LinkedIn

    P.P.S. Совсем скоро в нашей бизнес-школе Digitov стартует курс: Хочу стать Junior PHP Developer! Подписывайтесь на курс сейчас и сможете купить его со скидкой.

    Статью подготовили,
    Владимир, Middle PHP Developer, ГК «SECL Group»
    Никита, CEO, ГК «SECL Group»

    источник

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