+7 (495) 229-0436   shopadmin@itshop.ru 119334, г. Москва, ул. Бардина, д. 4, корп. 3
 
 
Вход
 
 
Каталог
 
 
Подписка на новости
Новости ITShop
Windows 7 и Office: Новости и советы
Обучение и сертификация Microsoft
Вопросы и ответы по MSSQLServer
Delphi - проблемы и решения
Adobe Photoshop: алхимия дизайна
 
Ваш отзыв
Оцените качество магазина ITShop.ru на Яндекс.Маркете. Если вам нравится наш магазин - скажите об этом Google!
 
 
Способы оплаты
 
Курс расчета
 
 1 у.е. = 86.62 руб.
 
 Цены показывать:
 
 
 
 
  
Новости, статьи, акции
 

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

22.04.2014 13:22
Николай Кекиш

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

Алгоритм импорта данных в интернет-магазин

Реализация

На следующем изображении показан стандартный диалог выгрузки из ПО CatalogLoader в OpenCart:

Стандартные параметры для OpenCart:
- Отключать товары (определяет возможность отключать "исчезнувшие" товары).
- Префикс артикулов, которые не нужно обновлять.
- Префикс базы данных.
- Путь к файлу Catalogloader_handler.php.
- Путь к файлу delete_cache.php (характерно именно для OpenCart).
Стоит отметить, что стандартный модуль импорта, который предоставляется пользователям, не обладает всем набором параметров, доступных в алгоритме. Это сделано сознательно для того, чтобы не загромождать интерфейс и чтобы у пользователей не возникало дополнительных вопросов. Этих параметров достаточно для подавляющего большинства проектов. И только части необходимы специальные параметры, которые доступны в специальном режиме. 

На следующем изображении показан стандартный диалог выгрузки в Битрикс через протокол 1С-Exchange:

Особенности:
- поддержка протокола 1С-Exchange.
- поддержка режима "отладки". Часто этот режим является единственным вариантом импорта в Битрикс.

Принцип алгоритма

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

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

CmsEngine строковая переменная [значение по умолчанию("")]
Определяет CMS интернет-магазина. Возможные значения: bitrix, commerceml, magento, insales, prestashop, vamshop, opencart, hostcms, shopcms, shopscript, virtuemart, joomshoping, simpla и т.д.

ModeIsDisable логическая переменная [значение по умолчанию(false)]
Включает режим, который будет деактивировать товары, которых нет в нашей КЛП-базе. 

DbPrefix строковая переменная [значение по умолчанию("")]
Определяет префикс базы данных интернет-магазина.

HttpTunnelLink строковая переменная [значение по умолчанию("")]
Определяет ссылку, которая служит интерфейсом передачи данных между CatalogLoader и интернет-магазином. 
Возможные варианты: ссылка на скрипт CatalogLoader_hanpler.php, ссылка на скрипт 1c_exchange.php для передачи по CommerceML протоколу.

HttpTunnelDelay числовая переменная [значение по умолчанию(0)]
Определяет задержку между запросами, которые идут на интерфейс, определенный в HttpTunnelLink. Это нужно, если сайт расположен на слабом хостинге и активные действия со стороны CatalogLoader (частые вызовы) останавливают работу сайта (CPU limit, например).

HttpImageWebDownloaderLink строковая переменная [значение по умолчанию("")]
Определяет ссылку на скрипт закачки изображений на хостинг интернет-магазина.
Для таких cms, как Битрикс, insales не требуется.

HttpImageWebDownloaderLinkSaveToFile логическая переменная [значение по умолчанию(false)]
Запрещает загрузку изображений по интерфейсу, определенному в HttpImageWebDownloaderLink, и сохраняет все параметры вызова этого интерфейса в файл в папке с программой CatalogLoader. Это необходимо, когда стоит потребность отложить загрузку изображений на будущее.

SqlConnectionString строковая переменная [значение по умолчанию("")]
Определяет Connectionстроковая переменная базы данных интернет-магазина. Это позволяет значительно увеличить скорость загрузки данных. 
строковая переменная ShopUser [значение по умолчанию("")]
Определенный логин пользователя (обычно это админ) в целевом интернет-магазине.
Доступно для: bitrix в режиме 1c-exchange, insales.

ShopPassword строковая переменная [значение по умолчанию("")]
Определенный пароль пользователя (обычно это админ) в целевом интернет-магазине.
Доступно для: bitrix в режиме 1c-exchange, insales.

CategoryNameForImportAll строковая переменная [значение по умолчанию("")]
Определяет категорию, в которую будут определены все "новые" товары для интернет-магазина. Иногда требуется все новые товары импортировать в категорию "Новинки", а старые товары просто обновлять.
Замечание: не работает для bitrix, commerceml.

PriceUpdate логическая переменная [значение по умолчанию(true)]
Определяет поведение функции обновления товара, при котором цена товара не изменяется программой CatalogLoader. Это нужно, когда администратор сайта самостоятельно выставляет цены на товар.

MissedProductIsDisabled логическая переменная [значение по умолчанию(true)]
Определяет режим деактивации продуктов. Если значение "true", то деактивация продукта означает реальную деактивацию (товар остается в БД и помечается как неактивный), иначе товар будет удален из магазина ПО CatalogLoader. (НЕ ПОНЯЛА)

MissedProductProcess логическая переменная [значение по умолчанию(true)]
Определяет поведение функции деактивации товаров. Если значение "true", то товары, которые присутствуют в БД интернет-магазина и отсутствуют в КЛП-файле, будут деактивированы, иначе ни к одному товару, который отсутствует, не будет применена функция деактивации товара.
логическая переменная MissedCombinationIsDisabled [значение по умолчанию(true)]
Определяет поведение функции деактивации комбинаций товаров. Если значение "true", то комбинации товаров, которые присутствуют в БД интернет-магазина и отсутствуют в КЛП-файле, будут деактивированы, иначе следует удаление из БД.

CustomParameters строковая переменная [значение по умолчанию("")]
Определяются параметры, специфичные для какой-то конкретной CMS. Например, для prestashop значение этого параметра может быть id_lang=7, означающее, что нужно импортировать текстовые данные товаров в язык интернет-магазина под номером семь.

CallUrlOnStart строковая переменная [значение по умолчанию("")]
Определяет http ссылку, которая будет вызвана из ПО CatalogLoader (get запрос) перед стартом процесса импорта. Обычно используется для создания резервной копии БД.

CallUrlOnFinish строковая переменная [значение по умолчанию("")]
Определяет http-ссылку, которая будет вызвана из ПО CatalogLoader (get запрос) после завершения процесса импорта. Обычно используется для очистки кэша или создания резервной копии БД.

ProductsUpdateSkip логическая переменная [значение по умолчанию(false)]
Определяет поведение функции обновления товаров. Если установлено значение "false", то для продукта применяется функция обновления, иначе - нет.

CustomerProductSkuTemplate строковая переменная [значение по умолчанию("")]
Определяет шаблон (регулярное выражение), с помощью которого можно определить товар, который был внесен в интернет-магазин вручную, а не через ПО CatalogLoader. Если шаблон определен, то товары, артикул которых подходит под шаблон, исключаются из выборки товаров, к которым должна быть применена функция "Деактивация".
Например, CustomerProductSkuTemplate=CUS_

ImagesUpdate логическая переменная [значение по умолчанию(false)]
Определяет поведение функции обновления изображений. Если значение "false", то изображения не обновляются, в обратном случае обновляются полностью, при этом предварительно автоматически удаляются все изображения обрабатываемого продукта. Обычно этот параметр необходимо выставлять однократно в "true" при некачественной заливке фотографий в предыдущих итерациях обновления.

ImagesUpdateMissed логическая переменная [значение по умолчанию(false)]
Определяет поведение функции обновления изображений. Если значение "false", то изображения не обновляются, иначе обновляются в режиме добавления. Cперва программа определяет изображения, которые уже есть у товара и только после этого добавляет требуемые "новые" изображения товару. Обычно этот параметр необходимо выставлять один раз в "true" при некачественной заливке фотографий в предыдущих итерациях обновления.
Доступно для: prestashop.

MiminumProductsCountInSet числовая переменная [значение по умолчанию(0)]
Определяет минимальное количество товаров. Если значение параметра больше нуля, то ПО CatalogLoader не начнет работу процесса импорта товаров, если в обрабатываемом КЛП-файле находится меньше товаров, чем определено параметром.

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

Данный подход был реализован для импорта данных в следующие CMS:

Ссылки по теме

  
Помощь
Задать вопрос
 программы
 обучение
 экзамены
 компьютеры
Бесплатный звонок
ICQ-консультанты
Skype-консультанты

Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 
Бестселлеры
Курсы обучения "Atlassian JIRA - система управления проектами и задачами на предприятии"
Microsoft Windows 10 Профессиональная 32-bit/64-bit. Все языки. Электронный ключ
Microsoft Office для Дома и Учебы 2019. Все языки. Электронный ключ
Курс "Oracle. Программирование на SQL и PL/SQL"
Курс "Основы TOGAF® 9"
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год. Электронный ключ
Курс "Нотация BPMN 2.0. Ее использование для моделирования бизнес-процессов и их регламентации"
 

О нас
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.

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

Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе.

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



 

О нас

 
Главная
Каталог
Новинки
Акции
Вакансии
 

Помощь

 
Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 

Способы оплаты

 

Проекты Interface Ltd.

 
Interface.ru   ITShop.ru   Interface.ru/training   Olap.ru   ITnews.ru  
 

119334, г. Москва, ул. Бардина, д. 4, корп. 3
+7 (495) 229-0436   shopadmin@itshop.ru
Проверить аттестат
© ООО "Interface Ltd."
Продаем программное обеспечение с 1990 года