Банки

Скрипт загрузки в virtuemart из 1с.

Для консультации можете обратиться по почте buh81 собачка narod.ru. Мог ненароком пропустить важные детали. Описываю свой опыт. Разбирался на локальном компьютере - Windows XP и 1C 8.1.13. Поставил Denver (Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8k PHP/5.2.12). Затем Joomla 1.5. После чего установил VirtueMart 1.1.5. И джумлу, и магазин ставил с демоданными.

Скрипт интеграции 1с и virtueMart записывается в корневой каталог сайта. Например, такой путь C:\WebServers\home\joomla\www. Там же необходимо создать пустую папку TEMP.

НОВОЕ! Обработка теперь состоит из двух файлов exchange_4 и exchange_4kl. Их надо поместить в корневой каталог. В 1с, в форме обмена с WEB-сайтом надо указать имя exchange_4.php (было Еxchange_2L.php).

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

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


вторая закладка настроек -



Выполняем обмен с интернет-магазином.(кнопка "Выполнить обмен" на верхней панели настроек.) Должны появиться соответствующие сообщения.


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

Особенности скрипта интегации 1с и virtueMart-а.

Соответствие позиций в базе 1с и в магазине VirtueMart осуществляется по артикулу . Он должен быть уникальным для выгружаемых позиций.

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

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

Цены в 1с должны быть в рублях.

В интернет магазине VirtueMart цена для загружаемых позиций должна иметь флаг - Цена по умолчанию(Default). Иначе товар будет виден через административную панель, но не будет появляться в витрине для покупателей.

НОВОЕ! Успешное выполнение всех вышеперечисленных действий теперь приведет к тому, что интеграция 1c и VirtueMart будет работать в демо режиме . Ограничение демо только в том, что цены товаров загружаются умышленно НЕВЕРНО. Будьте внимательны!

Чтобы снять это ограничение необходимо проделать следующее.(см. FAQ)

О защите от копирования этого скрипта интергации 1с и VirtueMart-а.

Обработка состоит из двух файлов, exchange_4.php полностью открыт и доступен для изменений, а еxchange_4kl.php несложно зашифрован и привязан к имени вашего сайта.

Скачать .(~ 0.03 Мб.)

Давно хотел поговорить на тему 1C и Virtuemart.

Как раз сейчас интегрирую свой магазин на Virtuemart 1.1.9 и 1С 8.2 На подходе интеграция 1C и JOOMSHOPING.

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

Так как опыт интеграции у меня довольно большой - постараюсь сделать выводы и показать какие пути решения задачи я считаю оптимальными.

Часть первая. Обзор существующих методов наполнения товаром интернет-магазина.

Рассмотрим работу абстрактного Интернет-магазина . Причем рассмотрим именно работу бэкофиса сайта.

Что происходит когда Товар поступил в магазин?

Кладовщик оприходовал Товар на Склад - завел его в какую-то внутренную систему учета (в нашем случае - 1С).

Менеджер получает возможность работать с Товаром - посмотреть остатки, продать этот Товар . Далее, Товар должен появиться на сайте Интернет-магазина . В идеале, в 1С должны появляться Заказы , которые делают Покупателе на сайте интернет-магазина.

И вот тут у нас появляются варианты:

1. Тупо всё делать руками.

В нашем случае - в админке Virtuemart . Этот метод пригоден в магазинах с небольшой ассортиментной матрицей. Например, до 100 артикулов. Дело в том, что Вам придется регулярно (например, ежедневно) вручную обновлять актуальность Вашего ассортимента в Интернет-магазине . Не только заводить новый Товар , но и менять остатки и цены у всего Товара . Я думаю, не нужно обяснять все прелести такого подхода. Хотя я знаю один магазин с 5000 артикулов, где работают именно так. Брррр.

2. Полуавтоматический метод наполнения.

Я имею ввиду метод, когда две наши системы - 1С и сайт напрямую не связанны. То есть обмен происходит с помощью какого-либо файла выгрузки.

Таких методов достаточно много:

1. Используем компонент CSVI4.0 (http://www.csvimproved.com). Одно из старейших и распространенных решений. Обмен происходит с помощью CSV файла, который Вы должны подготовить. Попробуйте погуглить - в сети много статей по работе с этим компонентом.

2. Простой импорт товаров с типами и свойствами через CSV от Gruz (http://joomlaforum.ru/index.php/topic,150010.0.html) Отличный компонент, отличная поддержка.

3. MyImport - Компонент импорта-экспорта товаров для VirtueMart 1.1.x в CSV для Joomla от dinox (http://joomlaforum.ru/index.php/topic,75900.0/topicseen.html) Очень простое и удобное решение.

Технология работы перечисленных методов.

Вы готовите CVS файл (CSV (от англ. Comma-Separated Values — значения, разделённые запятыми) — текстовый формат, предназначенный для представления табличных данных. Каждая строка файла — это одна строка таблицы. Значения отдельных колонок разделяются разделительным символом (delimiter)).

Например, делаете в 1С отчет по остаткам, сохраняете его в xls. Далее полученный.xls нужно открыть (рекоммендую) в OpenOffice и сохранить уже в формате.csv в кодировке UTF8. Далее в админке компонента грузите сформированный файл.

Отдельно готовите файлы с изображениями и закачиваете их на ftp. В вашем.cvs файле должны быть имена файлов фото в соответствующих строках и колонках.

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

4. Также на нашем форуме есть отличное готовое решение обмена для стандартной торговли 1С на основе!С протокола CommerceML:

1C УТ 8.x <-> VirtueMart по протоколу CommerceML от Centoff (http://joomlaforum.ru/index.php/topic,175325.0.html)

3. Полностью автоматический метод наполнения.

Обновление на сайте происходит без какого-либо Вашего участия, по расписанию.

В принципе, если постараться, то сюда можно перенести и все перечисленныев пункте 2 методы - запускать 1С по расписанию с определенной обработкой, которая будет формировать.csv файл и выкладывать его вместе с файлами фото сразу на ftp. А со стороны сайта запускать по крону скрипт загрузки.

Но лично мне больше нравиться принципиально другой метод - Заставить 1С напрямую писать в MYSQL базу сайта .

Об этом мы и поговорим в следующей статье.

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

Возможности интеграции:

1. Выгрузка на сайт разделов и подразделов номенклатуры

2. Выгрузка на сайт номенклатуры, наименования, краткого описания, полного описания

3. Выгрузка на сайт производителя номенклатуры

4. Выгрузка на сайт типов номенклатуры (Свойства)

5. Выгрузка на сайт габаритов, размера, веса, длинны, ширины номенклатуры

6. Выгрузка на сайт трех типов цен

7. Выгрузка на сайт валюты цены

8. Выгрузка на сайт спецпредложения номенклатуры

9. Выгрузка на сайт только измененных позиций с момента последней выгрузки

10. Выгрузка на сайт сопутствующих товаров

11. Выгрузка на сайт дополнительных категорий товара

12. Выгрузка на сайт количества товара на складе или выбранных складах

13. Выгрузка на сайт изображений к товару из 1С

14. Выгрузка на сайт характеристик номенклатуры их цены и остатков

15. Обновление номенклатуры на сайте, без повторной выгрузки

16. Обновление групп номенклатуры на сайте, без повторной выгрузки

19. Создание отбора при выгрузке на сайт

20. Автономная работа по заданному интервалу времени

21. Индикация в 1С процесса выгрузки, контроль ошибок

22. Автоматическое создания ресайза изображения номенклатуры

23. Автоматическое или ручное управление модулем

24. Возможность скрыть пустые группы на сайте

Что входит в стоимость:

1. Модуль интеграции.

2. доступ к онлайн инструкции.

3. Пол года технического обслуживания.

4. Пол года бесплатных обновлений.

Выкладываю в свободное пользование компонент для Joomla 1.5 + Virtuemart 1.x синхронизацию с 1с по протоколу OS Commerce 2.0. Делаю это в виду того, что эта версия устарела и более не представляет коммерческого интереса (то есть денег на ней не заработать больше). Это последняя моя разработка, претерпевшая кучу изменений и дополнений с улучшениями. Что оно умеет:

  • Поддержка хостингов с ограничением выполнения скриптов по времени (директива progress)
  • Поддержка ZIP с 1с (можно отключить)
  • Автоматическое создание миниатюр
  • Поддержка Полного экспорта и экспорта Только изменений
  • Обмен данными о пользователе
  • Поддержка нескольких групп покупателей и цен
  • Минимум настроек, максимум качества
  • По сравнению с конкурентами - минимальная нагрузка на сервер + нереальное быстродействие
  • Автоматически сохраняет выгруженные заказы и меняет статусы
  • Поддерживает полный обмен информации о заказах (изменеия из 1с вносятся и на сайт)

В виду того что разработка прекращена, доработки скрипта не будет. (если только эксклюзивно и за деньги)

Замечания:

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

  • Собственно ZIP. если его использовать, то выгрузка происходит на порядок быстрее. Но если административный скрипт распаковки использует ZIP-адаптер Joomla! то синхронизатор использует только возможности встроенной библиотеки php ZIP_archive. А не встречал ещё хостинга, который бы его не поддерживал, но ТЕОРЕТИЧЕСКИ использвание его может быть затруднено. Также очень не рекомендую использовать ZIP, если у вас много товаров с кучей картинок.Импорт не будет успешным, если выгрузится архив, больше отведённой памяти для распаковки, к примеру.
  • php Авторизация. Было раз на одном хостинге, php не поддерживало авторизацию. Если при тесте из 1с авторизация не удачна, хотя всё введено правильно, можно этот процесс убрать из файла стыковки.
  • Дла экспорта только изменений в 1с надо будет создать соответствующую таблицу (по умолчанию этого нет)
  • При отсутствии новых заказов для экспорта, скрипт выдаёт 1с команду success. По умолчанию этого в алгоритме синхронизации нет и 1с отлавливает ошибку синхронизации. Варианта выхода 2 - забить на это и знать что ошибка синхронизации заказов - это просто отсутствие новых или попросить штатного 1с-ера добавит в алгоритм обмена 1с добавить этот момент.
  • Ещё один момент - рекомендую почитать отличия полной синхронизации и только изменений, дабы не возникало непонимания и лишних вопросов.
  • Дополнительные поля из 1с вносятся в дополнительное поле в Virtuemart, Таблица "jos_vm_product", поле "aditional" в формате "название=значение" каждое с новой строки.

Если вы захотите отблагодарить меня, то можете сделать это на соответствующей странице на сайте (хотя за 2,5 года ещё никто копейки не прислал)...