Интеграция Интернет-магазина и сайта с 1С и другими локальными учетными системами
Интеграция Интернет-магазинов и сайтов с локальными системами учета и управления является очень важным элементом управления бизнес-процессами и управлением продажами. Мы при создании Интернет-магазинов используем два варианта интеграции с 1С и другими ресурсами. Первый вариант, это файловый обмен данными, второй вариант это событийный обмен данными.
Первый вариант подразумевает выгрузку и загрузку данных в формате csv. Этот формат нам нравится больше, так как в отличии от xml формата он имеет гораздо меньший объем, более жесткую структуру и гораздо быстрее обрабатывается как со стороны 1С, так и со стороны Интернет-магазина и сайта. Для снятия ограничения добавления новых элементов в csv файл мы используем правило добавления "вправо, в край", то есть если в поле добавляется новый элемент, то он ставится в крайнюю правую позицию. Это очень удобно и существенно сокращает затраты времени на программирование. Также следует учесть следующее, что сервер MySQL может производить очень быстро загрузку данных при обновлении таблиц внутренними средствами сервера, если стуктура csv файла и таблицы базы данных совпадают. На примере Интернет-магазина domino-auto.ru нами было протестирована загрузка файла данных содержащая 6 500 000 позиций. Эта загрузка произошла за 30 минут. В процессе загрузки был сформирован файл, он был выгружен по FTP протоколу и загружен в базу MySQL Интернет-магазина. В настоящее время обмен производится по 20 000 000 позициям. На производительность Интернет-магазина это не оказывает существенного воздействия. На сколько мне известно, очень популярная система CMS в России Битрикс умирает при обмене 25000 наименований. А в некоторых случаях и при меньших объемах.
Второй вариант использует более сложную систему обмена данными. Это обмен данными происходящий по ситуации. То есть при совершении пользователем каких бы то ни было действий в 1С или в Интернет-магазине производится запись как в базу 1С, так и в базу данных Интернет-магазина. При этом происходит проверка наличия остатков и контроль за двойными продажами. Данный механизм был успешно реализован в проектах shop-vodohod.ru & domino-auto.ru Описывать в данной статье более подробно этот механизм не вижу необходимости, при необходимости можно обратиться непосредственно ко мне и я все раcскажу и покажу.
Пример файла обмена из УПП в Интернет-магазин www.rus-tushenka.ru
Образец кода выгрузки номенклатуры в Интернет-магазин
Перем ОбработкаМенеджер;
ВремКаталог=КаталогВременныхФайлов();
FTP = Новый FTPСоединение(сервер,Порт,логин,пароль,,Режим,);
FTP.УстановитьТекущийКаталог(ПапкаЗагрузки);
ТД = Новый ТекстовыйДокумент;
ТД1 = Новый ТекстовыйДокумент;
Для каждого ТекСтрокаТовары из Номенклатура цикл
СтрКаталога=(Строка(ТекСтрокаТовары.Код))+";"+(ТекСтрокаТовары.ЕдИзм)+";"+(ТекСтрокаТовары.Номенклатура)+";"+(ТекСтрокаТовары.Цена1)+";"+(ТекСтрокаТовары.Цена2)+";"+(ТекСтрокаТовары.Цена3)+";"+(ТекСтрокаТовары.ГОСТ)+";"+(ТекСтрокаТовары.СрокГодности)+";"+(ТекСтрокаТовары.КолВУпак)+";"+(ТекСтрокаТовары.ВесЕдиницы)+";"+(ТекСтрокаТовары.ВесУпак)+";"+(ТекСтрокаТовары.ТоргМарка)+";"+(ТекСтрокаТовары.Поставщик)+";"+(ТекСтрокаТовары.Страна)+";"+(ТекСтрокаТовары.Остаток)+";"+(ТекСтрокаТовары.Состав)+";"+(ТекСтрокаТовары.Описание)+";"+(ТекСтрокаТовары.Акция)+";"+(ТекСтрокаТовары.СтЦена)+";"+(ТекСтрокаТовары.Топ)+";"+(ТекСтрокаТовары.РекомендТовар)+";"+(ТекСтрокаТовары.Группа);
//Сообщить(СтрКаталога);
ТД.ДобавитьСтроку(СтрКаталога);
КонецЦикла;
Путь=ВремКаталог+"catalog.csv";
ТД.Записать(Путь,КодировкаТекста.OEM);
FTP.Записать(Путь,"catalog.csv");
Для каждого ТекСтрокаГруппы из ГруппыНоменклатуры цикл
СтрГрупп = (ТекСтрокаГруппы.Группа.Код+";"+ТекСтрокаГруппы.Группа.Родитель.Код+";"+?(ПустаяСтрока(ТекСтрокаГруппы.АльтернативноеНаименование),ТекСтрокаГруппы.Группа.Наименование,
ТекСтрокаГруппы.АльтернативноеНаименование)+";"+ТекСтрокаГруппы.НеПоказывать+";"+ТекСтрокаГруппы.Транслитерация+";"
+ТекСтрокаГруппы.Описание);
ТД1.ДобавитьСтроку(СтрГрупп);
КонецЦикла;
Путь=ВремКаталог+"group.csv";
//Сообщить(Путь);
ТД1.Записать(Путь,КодировкаТекста.OEM);
FTP.Записать(Путь,"group.csv");
ОчиститьСообщения();
Сообщить("Последняя выгрузка остатков произощла "+ ТекущаяДата());
Автор статьи - Руководитель проекта Нур Рысбаев
Все вопросы по созданию и покупке платформы интернет-магазина и интеграции с учетными системами и 1С можно задать здесь:
ИнфоПитер.
Разработка и создание сайтов, интернет-магазинов, веб-порталов,
предоставление аренды интернет-магазинов.
г. Санкт-Петербург, ул. Якорная 15/2, оф.323
Тел.: +7(812)9722892
+7(911)0083416
mail: noor@infopiter.ru
Сайт: www.6pro.ru