Выгрузка каталога товаров на сайт и загрузка заказов из интернет-магазина позволяет автоматизировать обмен между интернет-магазином и 1С:Управление торговлей. Обмен данными происходит в формате CommerceML. Специальных знаний для настройки обмена не требуется.
Обмен в системе "1С:Предприятие" реализован, в частности, в следующих конфигурациях (список не является исчерпывающим):
1С:Управление торговлей 8 в конфигурации 10.хх и 11.хх;
1С:Управление небольшой фирмой 8;
1С:Розница 2.х и 3.x;
1С:Комплексная автоматизация 8;
1С:Управление производственным предприятием 8;
Штрих-М: Торговое предприятие 5.
Поддерживаемые протоколы обмена
автоматический обмен CommerceML 3.0, 3.1 — import.xml, offers.xml, prices.xml, rests.xml;
автоматический обмен CommerceML 2.x — import.xml, offers.xml;
ручной импорт CommerceML 1.x — import.xml.
Создание узла обмена с 1С в HostCMS
В центре администрирования HostCMS в структуре сайта проверьте существование узла /shop/1c/, если узел отсутствует — создайте его:
Интернациональное название валюты в HostCMS должно совпадать с названием валюты в 1С, в противном случае будут возникать ошибки вида «Ошибка в значении узла <Документ>.<Валюта> документа CML (RUR).»
Товар в процессе импорта может быть найден по CML ID товара, штрихкоду, артикулу товара.
Настройка обмена данными
Настройка обмена данными в 1С:Управление торговлей 11
В верхнем меню с пиктограммами (Рабочий стол, Маркетинг ...) выберите Администрирование → Настройки синхронизации данных. Установите опции Синхронизация данных и Обмен данными с сайтами.
Для передачи в магазин цен на товары необходимо создать и настроить Типовое соглашение с клиентом в разделе Маркетинг и планирование → Типовые соглашения с клиентами.
Перейдите в типовое соглашение с клиентом (отредактируйте существующее или создайте новое), установите организацию и вид цен, включите опцию Доступно внешним пользователям на вкладке Условия продаж (пролистните все окно до конца).
Если опция Доступно внешним пользователям отсутствует, то необходимо настроить параметры учёта, для этого:
В верхнем меню с пиктограммами (Рабочий стол, Маркетинг ...) выбираем Администрирование.
В подменю выбираем Настройка → Настройка параметров учета.
Во всплывшем окне выбираем пункт Обмен данными.
Включаем опцию Использовать обмен с сайтами.
В панели инструментов нажимаем кнопку Сохранить.
Создайте или отредактируйте узел обмена с сайтом в разделе Администрирование → Настройки синхронизации данных → Узлы обмена с сайтами.
В поле «Адрес сайта» введите http://www.mysite.ru/shop/1c/, заменив www.mysite.ru на адрес вашего сайта. В поле «Имя пользователя» и «Пароль» введите логин и пароль пользователя из центра администрирования HostCMS, от имени которого будет осуществляться обмен.
Для проверки соединения нажмите «Проверить».
Настройка обмена данными в 1С:Управление торговлей 10.3
В меню «1С:Управление торговлей» выберите Сервис → Обмен данными с WEB-сайтом → Настроить обмен данными с WEB-сайтом.
В открывшемся окне выберите «Создать новую настройку обмена с WEB-сайтом» или «Изменить существующую настройку обмена с WEB-сайтом» и нажмите кнопку Далее.
В окне «Настройка обмена данными с WEB-сайтом» заполните необходимые поля:
В поле «Адрес сайта» введите http://www.mysite.ru/shop/1c/, заменив www.mysite.ru на адрес вашего сайта. В поле «Пользователь» и «Пароль» введите логин и пароль пользователя из центра администрирования HostCMS, от имени которого будет осуществляться обмен. Для проверки соединения нажмите «Проверить».
На следующих шагах задайте имя каталога, установите опции выгрузки картинок и файлов, коэффициент пересчета веса товаров в граммы, выберите экспортируемый на сайт тип цен и склад, настройте действия с поступающими с WEB-сайта документами. Укажите режим обмена: «Полная выгрузка данных» или «Выгружать только измененные объекты с момента последнего обмена».
После завершения настроек 1С предложит выполнить обмен.
Импорт изображений
Первое изображение загружается в основное изображение товара, последующие в дополнительное свойство типа "файл" с CML-ID равным ADDITIONAL-IMAGES (создается автоматически).
Импорт цен из 1С
Выгрузка из 1С может содержать множество цен, стандартно HostCMS в основную цену импортирует цену с названием "Розничная", все остальные цены загружаются в цены для групп клиентов.
Если цена из 1С подставляется во вновь созданное поле, а основная цена нулевая, необходимо в центре администрирования перейти в магазин, выбрать пункт меню Цены, в нем скопировать название цены и затем удалить созданную при обмене цену из раздела Цены, далее создать (отредактировать) активную константуDEFAULT_CML_PRICE_NAME и прописать в ее значение название скопированный в предыдущем шаге цены.
Например, в файле offers.xml цена называется "Розничная цена" (а не просто "Розничная"), тогда создаем (если не создана) константу с названием DEFAULT_CML_PRICE_NAME и значением Розничная цена. Очень важно удалить цену с названием "Розничная цена" из раздела Цены. Если при первом импорте описанной выше константы не существовало, либо её значение не совпадало со значением "Розничная цена", создается цена в справочнике цен с названием "Розничная 100500". Если её не удалить из справочника, создание константы не поможет.
Наиболее частые проблемы при автоматическом обмене с 1С
Если не выгружаются цены и остатки товаров в 1С:УТ с версии 11.0.6.7 необходимо открыть «Маркетинг» → «Типовое соглашение с клиентом» и установить вид цены, условие продажи (оптовая, розничная и т.п.) и галочку «Доступность внешним пользователям». В настройке обмена в «Выгрузка данных» → «Настроить обмен» указываете это соглашение.
При возникновении ошибки вида "failed sending data to the peer", проверьте наличие прокси-сервера в настройках браузера Internet Explorer. Если прокси-сервер указан, удалите его.
При возникновении ошибки вида "Соединение с сайтом не установлено", проверьте наличие закрывающего слэша в поле "Адрес сайта", например: http://www.site.ru/shop/1c — неверно, http://www.site.ru/shop/1c/ — верно.
При возникновении ошибки вида "Ошибка в значении узла <Документ>.<Валюта> документа CML", убедитесь, что трехбуквенный код валюты в HostCMS равно названию валюты в 1С.
При возникновении ошибки вида "Изменения товаров не зарегистрированы. Выгрузка товаров не произведена.", убедитесь, что в меню "Справочник" - "Номенклатура" - "Виды номенклатур" у наименования "Товар", установлен тип номенклатуры "Товар". Также проверьте корректно ли настроен фильтр выгрузки. Существуют ли товары, попадающие под условия фильтра. Убедитесь, что у всех, отмеченных галочкой, условий фильтра указаны, собственно, условия.
Ошибка "Не удалось определить юр./физ. лицо контрагента" говорит о наличии заказа с пустыми данными (Фамилия, Имя, Отчество или Компания). Заполните данные контрагента у заказов.
Группы номенклатуры
При экспорте дополнительных групп номенклатуры, такие группы импортируются не в корневую директорию, а в соответствующий раздел. Импорт в корень осуществляется при указании каталога как 'Основной каталог товаров' или 'Каталог товаров'.
Допускается внесение в конфигурационный файл modules/shop/config/cml.php других названий разделов, которые будут приниматься за корневой каталог.
Контроллер импорта из CML имеет свойство updateFields, принимающее массив атрибутов товаров, подлежащих обновлению в процессе обмена. Позволяет ограничить перечень обновляемых полей и дать приоритет данным, содержащимся в системе управления.
В код настроек ТДС обмена с 1С вы можете внести опцию с указанием перечня полей, которые следует обновлять и удалить из того списка те поля, которые обновлять не следует.
Контроллер импорта из CML имеет свойство updateGroupFields, принимающее массив атрибутов групп, подлежащих обновлению в процессе обмена. Позволяет ограничить перечень обновляемых полей и дать приоритет данным, содержащимся в системе управления.
В код настроек ТДС обмена с 1С вы можете внести опцию с указанием перечня полей, которые следует обновлять и удалить из того списка те поля, которые обновлять не следует.
Управление полями, по которым осуществляется поиск товара
Контроллер импорта из CML имеет свойство itemSearchFields, принимающее массив полей, по которым товар может быть найден. В код настроек ТДС обмена с 1С вы можете внести опцию с указанием перечня полей.
Для товара допускается указание нескольких CML ID группы, при этом сам товар будет помещен в первую указанную группу, а в другие указанные группы будут помещены ярлыки на этот товар.
Импорт основных свойств товара, не предусмотренных в 1С
Добавлена возможность указать значения некоторых основных свойств товара через дополнительные свойства в системе 1С. Соответствие названия дополнительного свойства 1С и основного свойство товара в HostCMS:
HOSTCMS_TITLE
Заголовок (title) SEO
HOSTCMS_DESCRIPTION
Описание (description) SEO
HOSTCMS_KEYWORDS
Ключевые слова (keywords) SEO
HOSTCMS_МЕТКИ
Метки (теги)
ПРОИЗВОДИТЕЛЬ
Производителя товара
АКТИВНОСТЬ
Активность товара
ПРОДАВЕЦ
Название продавца
YANDEX_MARKET
Экспортировать в Яндекс.Маркет
Импорт тегов ЗначениеРеквизита
Импорт веса и габаритов осуществляется из тегов ЗначенияРеквизитов/ЗначениеРеквизита, при этом Наименование должно иметь одно из следующих значений: Вес, Длина, Ширина, Высота.
Также в конфигурационном файле в опции predefinedAdditionalProperties может быть задан массив наименований значений реквизитов, которые необходимо проимпортировать в одноименные свойства товара. Например, для импорта
Если у товара указан статус удаления <Товар Статус="Удален">, то такой товар отключается, но сохраняется в каталоге.
Загрузка заказов с сайта
При обменен с 1С система управления выгружает новые заказы. Новыми заказами считается те заказы, которые ранее не были выгружены или отредактированные после выгрузки заказы.
Проверить выгружаемую информацию вы можете через браузер, перейдя на страницу http://вашсайт/shop/1c/?type=sale&mode=query (необходимо ввести логин и пароль в открывшемся окне).
Пометить все заказы как невыгруженные вы можете SQL-запросом:
UPDATE `shop_orders` SET `unloaded` = 0 WHERE `shop_id` = 1;
заменив 1 на идентификатор вашего магазина.
Загрузка заказов из 1С
Обрабатывается значение реквизита "Статус заказа", устанавливается существующий статус заказа или создается новый. При выгрузке из 1С для заказа реквизита "ПометкаУдаления", такой заказ помечается удаленным.