Двухсторонний обмен данными с 1С реализован в рамках стандарта протокола CommerceML разработанного компанией 1С специально для синхронизации товаров и заказов между веб-сайтами и 1С.
При обмене данными в формате CommerceML, 1C должна формировать и отправлять два файла import.xml и offers.xml.
Скачать пример файлов обмена
В обратном направлении (Из сайта в 1С), передать структуру каталога и товары - запрещено рамками протокола CommerceML, но при этом если в заказе на сайте присутствуют товары, которые не заведены в 1С, то при обмене они будут созданы в 1С автоматически.
1. На стороне 1С перейдите в раздел "Обмен с сайтом".
2. Нажмите на кнопку "Создать", чтобы настроить обмен данными с новым сайтом.
3. Укажите индивидуальные параметры импорта и параметры для подключения к сайту.
Внимание! если у вас присутствуют настройки "Выгружать файлы без ожидания подтверждения импорта севрером", "Выполнять обмен без идентификатора сервера", их необходимо отключить!
Рекомендуем создать отдельного администратора, для синхронизации с 1С.
Точный адрес можно посмотреть в админке вашего сайта в разделе "Настройки" – "Настройки 1С"
Проверьте соединение с сайтом, если логин и пароль указаны верно, без пробелов и лишних символов, а адрес сайта совпадает с указанным в настройках 1С на стороне Mоguta.CMS, то вы увидите сообщение об успешной установке соединения.
Внимание! если на сайте используется https, то обмен с 1с может не работать на некоторых хостингах, пока не исключить редирект для адреса http://ваш_сайт/exchange1c
Сделать это можно таким образом: в файле .htaccsess, после строки
RewriteBase /
Добавьте следующие правила
RewriteCond %{HTTP:X-HTTPS} 1 [NC]
RewriteCond %{REQUEST_URI} ^/exchange1c$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/ [R=301,L]
Если строки RewriteBase / нет, добавьте её самостоятельно (добавить можно в конец файла).
Если данный код не помог установить соединение, попробуйте использовать следующий код:
RewriteBase /
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !^/exchange1c
4. Во вкладке "Выгрузка товаров" укажите "Режим выгрузки только Изменения" это позволить снизить нагрузку на сайт во время обмена данными.
5. Во вкладке заказы укажите необходимые параметры вашей компании.
6. Для запуска процесса обмена данными нажмите на кнопку "Выполнить обмен".
Если все сделано верно, то при нажатии на кнопку "Выполнить обмен" вы увидите историю "Служебных сообщений", с информацией об успешной выгрузке товаров и заказов.
Для обмена данными по протоколу CommerceML предусморен раздел настроек на стороне Moguta.CMS, где можно указать какие поля в товарах обновлять, а какие оставить неизменными на сайте, а также есть возможность собирать журнал логов, в которых будет отражен весь процесс обмена данными.
В разделе "Обновляемые поля товаров при обмене данными" укажите какие данные надо перезаписывать при каждом новом импорте.
Если импортируемые заказы в 1С будут содержать стоимость доставки товара до клиента, то необходимо задать соответствующую номенклатуру в настройках, иначе заказы не будут фиксироваться после синхронизации.
Выбор номенклатуры производится по следующему пути: «Обмен с сайтом» → «Настройки обмена с сайтом» → правой кнопкой по строке с обменом → «Изменить» → Вкладка «Обмен заказами» → «Параметры обмена заказами» → Раздел «Реквизиты для создания новых элементов справочника "Номенклатура"» → «Вид номенклатуры услуга». Здесь необходимо выбрать вид номенклатуры «Услуга» (если её нет, то создать).
Теперь при первой передаче заказа с доставкой будет создана номенклатура «Доставка заказа» и в дальнейшем она же будет использоваться для обозначения цены доставки в заказе клиента.
Для того, чтобы 1С при обмене с сайтом отдавал обновление статуса заказа, необходимо задать в «Обмен с сайтом» → «Настройки обмена с сайтом» → правой кнопкой по строке с обменом → «Изменить» → Вкладка «Обмен заказами» → «Параметры обмена заказами» → «Дополнительные реквизиты для поиска документов "Заказ клиент"» установить параметр «Номер заказа на сайте».
Если обмен все равно не происходит, создайте новый реквизит (название любое) с типом значения «Строка» и установите его в параметр «Номер заказа на сайте».
С версии Moguta CMS 8.8.0 и выше, появилась возможность устанавливать наименование статусов заказ для обмена данными с 1С. Теперь есть три варианта синхронизации статусов заказов:
1. Установить на стороне 1С в «Обмен с сайтом» → «Настройки обмена с сайтом» → правой кнопкой по строке с обменом → «Изменить» → Вкладка «Обмен заказами» → «Дополнительно» каждому названию статуса необходимое имя из Moguta CMS
2. Задать на стороне Moguta CMS в разделе настроек обмена данными с 1С соответствие статусов заказа.
3. Установить собственные наименования статусов с обеих сторон
Для синхронизации оптовых цен необходимо выполнить следующие шаги:
1. Создаём дополнительные поля товара в административной панели сайта, например "оптовая цена 1" и "оптовая цена 2"
- На стороне 1С должны быть такие же поля
2. Привязываем оптовые цены к нужной группе пользователей
3. Настраиваем соответствие дополнительных полей на нашей стороне, где наименование дополнительного поля и наименование на стороне 1С должны совпадать. Также не забудьте указать что это дополнительное поле "цена", также указать количество от которого будет применена оптовая цена.
4. Указываем на стороне 1С виды цен, которые необходимо выгружать
5. Указываем в административной панели сайта откуда из 1С брать розничную цену
Чтобы при обмене с 1С автоматически создавалась цветоразмерная сетка товаров, необходимо подготовить корректные файлы для формата СommerceML (пример файлов).
Цветоразмерная сетка доступна только для вариантов. Поэтому вам нужно проверить, что в 1с у товаров заданы варианты. Как создать вариант для товара в 1с, можно утонить в поддержке 1с, так как для разных конфигураций инструкция отличается.
В итоге 1С должна отдать файл offers.xml который содержит информацию о товарном предложении в следующем виде:
1. Идентификатор товара должен иметь символ #. Именно он говорит о том, что это вариант товара, а не отдельный товар.
2. У варианта товара в файле должны быть заданы свойства с названиями 'Размер' и 'Цвет'.
3. У свойств должны быть значения.
Если после обмена на сайте ничего не изменяется, то вам нужно убедиться что: 1. В настройках интеграции на сайте включены опции обновления нужных вам параметров; 2. На стороне 1С ОТКЛЮЧЕНА опция "Выгружать файлы без ожидания подтверждения импорта севрером".
Чтобы настроить обмен данными с сайтом, необходимо в сервисе МойСклад перейти в раздел "Настройки" на вкладку "Онлайн-торговля". Нажать на кнопку "Магазин", из выпадающего списка выбрать "Обмен по CommerceML" .
В настройках подключения укажите
Для обмена статусами заказов отметьте опцию "Отправлять статусы заказов" в настройке "Выгружать изменения по заказам".
Внимание! В связи с "особенностями" МоегоСклада, изображения выгружаются только при первом обмене с сайтом. Если по какой-то причине у вас не выгрузились изображения, то для их выгрузки на сайт потребуется:
1. Заново настроить подключение к сайту на стороне МС (удалить старое и создать новое);
2. Провести обмен сайта с полной очисткой каталога. Будьте осторожны, если у вас есть товары, которых нет в МС, то они безвозвратно удалятся. Рекомендуем делать резервную копию базы данных и файлов сайта перед выполнением подобных действий.Для корректной передачи иерархии категорий на стороне сайта в настройках обмена с МС должна быть включена опция обновления иерархии категорий.