Интеграция 1С с интернет-магазинами линейки opencart,OcStore,MaxyStore Техподдержка: support@oc1c.ru Приобретение лицензии:mail@oc1c.ru
Комплекс предназначен для управления содержимым интернет-магазина opencart из 1С 7.7 Обработка адаптирована под конфигурацию "Торговля и склад 9.2". Без использования PHP. Текст обработки 1С специально написан и прокомментирован таким образом, чтобы даже новичок в 1С легко в нём разобрался. Таким образом можно подгонять задачи под себя, делать задачи по расписанию, остатки в режиме реального времени и т.д. Например, автоматическую выгрузку товара при его сохранении или коррекцию остатков по товару в случае его продажи/перемещения/поступления, изменение цены при переоценке и т.п. Важной особенностью технологии является прямые чтение/запись в базу данных MySQL сайта, без использования PHP. Никаких файлов на сайт закачивать, и, тем более, заменять не нужно. Обмен данными 1С с сайтом можно производить в любое время, вне зависимости от количества посетителей и их активности. Кроме того, реализована работа по расписанию, так что комплекс может работать "постепенно", закачивая только изменения. Можно работать с оптовыми ценами. Если создать группу покупателей с id = 2, то покупатели этой группы увидят оптовую и перечёркнутую розничную цену. Выполнено в виде бессрочной акции для группы покупателей с id = 2. id группы оптовых покупателей можно посмотреть в БД сайта (например, с помощью PHPMyAdmin) в таблице customer_group_description в поле customer_group_id. Там же можно скорректировать id. Комплекс вносит в БД сайта данные (наименование, описание и т.п.) на двух языках (id = 1 и id = 2, обычно это русский и английский). Для двуязычных сайтов нужно понимать, где 1С должна брать тексты на втором языке. ########################################################################################################################################################## Совместимость ########################################################################################################################################################## Комплекс тестировался на релизе ТиС 7.70.986 и opencart 2.1.0.2 rs1. Внешняя компонента совместима с любыми версиями opencart, начиная с 1.5.3.1 ########################################################################################################################################################## Порядок установки ########################################################################################################################################################## 1. Разархивируйте файл в локальную директорию на сервере 1С, например: C:\oc1c\ 2. Запустите командную строку (cmd.exe) от имени Администратора. Наберите: "regsvr32 БукваДиска:\ПутьКудаСкачали\oc1с.dll" и нажмите enter. После сообщения об успешной регистрации внешней компоненты cmd можно закрыть. 3. Запустите 1С. 4. Откройте обработку управления интернет-магазином (файл oc1c_77_tis_9.2.ert). 5. Следуйте инструкциям системы для активации лицензии. 6. Перейдите на вкладку "Настройки". Заполните поля хост, пользователь, пароль, имя Вашей базы данных и её префикс. Всё это смотрите в файле config.php в корне сайта (только поле "хост" может отличаться, в зависимости от Вашего случая подключения к базе данных сайта). Сохраните настройку формы, чтобы не вводить каждый раз эти поля. 7. Если у Вас веб-сервер на одной машине с 1С, то Вы уже можете управлять своим магазином. ########################################################################################################################################################## Настройка доступа к базе данных сайта ########################################################################################################################################################## Вариант 1: сайт находится на хостинге. Некоторые хостинг-провайдеры разрешают прямое чтение и запись в БД MySQL сразу (например, 1gb.ru, reg.ru и большинство заграничных), некоторые по запросу (например, masterhost.ru), некоторые не разрешают вовсе (например, nic.ru). Если Ваш провайдер разрешает, настройте в панели управления хостингом доступ к Вашей БД. Если Ваш сервер 1С имеет статический IP, то в целях безопасности желательно разрешить внешний доступ к БД только с этого адреса. Если хостинг-провайдер не открывает прямой доступ на порт MySQL, то можно воспользоваться технологий SSH-туннелинга. Вам следует уточнить реквизиты SSH-доступа к Вашему сайту и установить туннель с помощью SSH-клиента, например PuTTY (putty.org.ru). Недостатком этого способа является то, что при проблемах с интернет-соединением сеанс обрывается и его часто приходится восстанавливать вручную. Вариант 2: сайт находится на VDS/VPS. Этот вариант может быть быстрым, если на том же или "соседнем" VDS будет работать Ваша 1С. Здесь у Вас свой собственный сервер Веб и СУБД, поэтому Вы можете множеством способов организовать доступ к базе данных, в зависимости от Вашей операционной системы, требований к надёжности и скорости передачи данных. Лучше всего открывать порт только для IP-адреса сервера 1С. Можно настроить VPN. Вариант 3: у Вас есть свой сервер. Самый быстрый вариант (до 100 товаров в секунду). Если на одной машине иметь и 1С, и сервер СУБД, то скорость экспорта товаров на сайт ощутимо возрастает. Наступает ситуация, когда скорость импорта/экспорта ограничивается уже не сетевыми каналами, а производительностью самой 1С. Однако нужно понимать, что при ненадлежащей защите, сайт могут взломать злоумышленники и получить доступ к 1С. А данные, содержащиеся в 1С, нередко очень ценны и конфиденциальны. Идеальный с точки зрения скорости и надёжности передачи данных между 1С и сайтом вариант - размещение сервера 1С и веб-сервера на двух разных машинах, но в одной локальной сети. Также можно использовать виртуальные машины. ########################################################################################################################################################## Ошибки ########################################################################################################################################################## Иногда обработка выдаёт ошибку, содержащую текст: "MySQL server has gone away". Тот же случай при использовании SSH-клиента (например, Putty), текст: "server unexpectedly closed network connection". Обычно это происходит, когда сайт находится на хостинге или на неверно настроенном VDS. Причины могут быть разные: тайм-аут, политика хостинг-провайдера, настройки MySQL-сервера и т.п. Для того, чтобы решить эту проблему "локально", здесь и сейчас, достаточно перезапустить обработку 1С или нажать на кнопку "(Пере)подключиться к БД" на вкладке "Настройки". Однако проблема будет повторяться. Для того, чтобы решить её "раз и навсегда", нужно разбираться в причинах и консультироваться с хостинг-провайдером. В некоторых случаях пробему "MySQL server has gone away" можно решить увеличив таймаут ожидания активности в сеансе подключения к MySQL. Для этого в коде обработки после вызова метода DBLogin (ПодключитьсяКБД) достаточно добавить следущие строки: Сообщить(oc1c.ВремяОжидания); oc1c.ВремяОжидания = 3600; Первая строка даст Вам понять, какое таймаут ожидания активности установлен глобально для сервера MySQL хостинг-провайдером, вторая - поможет установить желаемый таймаут для Вашего сеанса подключения к СУБД. В любом случае причины возникновения этой проблемы лежат за пределами обработки 1С и библиотек dll. Доказано, т.к. есть живой верно настроенный VDS с сервером 1С в 2000 км и всё работает, как часы, в режиме 24х7х365. Если текст ошибки содержит "You have an error in your SQL syntax", скопируйте ВЕСЬ текст ошибки и пришлите на mail@oc1c.ru и support@oc1c.ru ########################################################################################################################################################## Особенности обработки ########################################################################################################################################################## Рекомендуется использовать в качестве кода товара в 1С числа без буквенных префиксов. Если Вы используете текстовый тип кода для справочника "Номенклатура", но готовы перейти на использование числового - обращайтесь на mail@oc1c.ru и сделайте заявку на получение простенькой обработки для замены кодов на числовые. Если такой возможности у Вас по каким-либо причинам нет, обратите внимание на функцию "ЗаменитьПрефиксы(Код). Составьте полный список используемых Вами префиксов и внесите соответствующие правки в функцию. В любом случае при передаче параметров в методах UploadProduct и Category код должен являться числом. В настоящий момент обработка отбрасывает лидирующие нули от кода товара в 1С и использует результат в качестве поля product_id в соответствующих таблицах БД сайта. В ТиС 9.2 отсутствуют картинки товаров, поэтому они должны заливаться на сервер сайта вручную. В БД сайта ссылка на картинку прописывается в виде data/Путь/123456.jpg или catalog/Путь/123456.jpg (в зависимости от версии opencart), где Путь - то, что указано в настройках экспорта, а 123456 - код товара 1С с отброшенными лидирующими нулями. При необходимости эту схему можно изменить средствами 1С. В поле model записывается код товара, поэтому на сайте можно осуществлять поиск по коду товара из 1С с отброшенными лидирующими нулями. При необходимости можно изменить это, как требуется. Обратите внимание на методы oc1c.UploadProduct и oc1c.Category. В них передаются параметры, некоторые из которых закрыты т.н. "заглушками". Например, в качестве мета-тегов используется просто наименование товара и т.п. Производитель также закрыт заглушкой, т.к. в стандартной поставке ТиС 9.2 такое понятие отсутствует. Вы легко можете адаптировать эти методы средствами 1С в соответствии с Вашими задачами. Описание товара на сайте формируется из поля "Комментарий" на вкладке "Дополнительно" карточки товара. Поддерживаются HTML-теги. Для работы с импортом заказов нужно внести конфигурационные изменения путём замещения или объединения конфигураций из прилагающегося файла oc1c_77.md в составе поставки комплекса. Блок управление модулем "Рекомендуемые" временно деактивирован в связи с большим количеством отличий схемы его взаимодействия с БД сайта в зависимости от версии opencart - универсальный механизм пока не разработан. В случае, если кому-то очень нужно - оставляйте заявку с указанием Вашей версии opencart. ########################################################################################################################################################## Планируемые улучшения ########################################################################################################################################################## В будущем планируется улучшить функционал обработки. В частности: - работа по расписанию - фильтры экспорта (учитывать остатки только на определённых складах, (не)выгружать товары с нулевой или пустой ценой или остатком 0, отсутствующей картинке, с пустым артикулом и т.п. - экспорт свойств в качестве атрибутов - механизм автоматического снятия товаров с публикации в случае нулевого остатка на складе - универсализация блока управления модулем "Рекомендуемые" - разработка метода для выгрузки опций, влияющих на конечную цену товара и многое другое... В общем, планируется к реализации весь функционал, который уже реализован для 1С 8.х УТ 10.3, УТ 11.2, Розница 2.1. Пока не реализовано в связи с низким спросом на комплекс для ТиС 7.7 и относительно скромными пожеланиями заказчиков. Если какие-то из этих задач Вам нужны срочно - Вы можете оставить заявку с описанием задачи, а можете вообще нанять стороннего программиста 1С, т.к. код обработки открытый, понятный и хорошо прокомментирован. ########################################################################################################################################################## Помощь в установке и настройке библиотеки, настройке доступа к БД, предложения по доработкам. ########################################################################################################################################################## E-mail: mail@oc1c.ru, support@oc1c.ru ########################################################################################################################################################## Демо-комплекс для ознакомления будет работать, но размещать в нескольких местах Вашего сайта ссылку на ресурс http://oc1c.ru Для коммерческого использования комплекса приобретите лицензию. Программа распространяется "как есть". Автор не несёт ответственности за порчу или удаление критически важных данных пользователя, за убытки или недополученную прибыль.
oc1c.ru © 2022