Выгрузка каталога товаров на сайт и загрузка заказов из интернет-магазина позволяет автоматизировать обмен между интернет-магазином и 1С:Управление торговлей. Обмен данными происходит в формате CommerceML. Специальных знаний для настройки обмена не требуется.
Обмен в системе "1С:Предприятие" реализован, в частности, в следующих конфигурациях (список не является исчерпывающим):
В центре администрирования HostCMS в структуре сайта проверьте существование узла /shop/1c/
, если узел отсутствует — создайте его:
В меню «1С:Управление торговлей» выберите Сервис → Обмен данными с WEB-сайтом → Настроить обмен данными с WEB-сайтом.
В открывшемся окне выберите «Создать новую настройку обмена с WEB-сайтом» или «Изменить существующую настройку обмена с WEB-сайтом» и нажмите кнопку Далее.
В окне «Настройка обмена данными с WEB-сайтом» заполните необходимые поля:
В поле «Адрес сайта» введите http://www.mysite.ru/shop/1c/
, заменив www.mysite.ru на адрес вашего сайта. В поле «Пользователь» и «Пароль» введите логин и пароль пользователя из центра администрирования HostCMS, от имени которого будет осуществляться обмен. Для проверки соединения нажмите «Проверить».
На следующих шагах задайте имя каталога, установите опции выгрузки картинок и файлов, коэффициент пересчета веса товаров в граммы, выберите экспортируемый на сайт тип цен и склад, настройте действия с поступающими с WEB-сайта документами.
Укажите режим обмена: «Полная выгрузка данных» или «Выгружать только измененные объекты с момента последнего обмена».
После завершения настроек 1С предложит выполнить обмен.
В верхнем меню с пиктограммами (Рабочий стол, Маркетинг ...) выберите Администрирование → Настройки синхронизации данных. Установите опции Синхронизация данных и Обмен данными с сайтами.
Для передачи в магазин цен на товары необходимо создать и настроить Типовое соглашение с клиентом в разделе Маркетинг и планирование → Типовые соглашения с клиентами.
Перейдите в типовое соглашение с клиентом (отредактируйте существующее или создайте новое), установите организацию и вид цен, включите опцию Доступно внешним пользователям на вкладке Условия продаж (пролистните все окно до конца).
Если опция Доступно внешним пользователям отсутствует, то необходимо настроить параметры учёта, для этого:
Создайте или отредактируйте узел обмена с сайтом в разделе Администрирование → Настройки синхронизации данных → Узлы обмена с сайтами.
В поле «Адрес сайта» введите http://www.mysite.ru/shop/1c/
, заменив www.mysite.ru на адрес вашего сайта. В поле «Имя пользователя» и «Пароль» введите логин и пароль пользователя из центра администрирования HostCMS, от имени которого будет осуществляться обмен.
Для проверки соединения нажмите «Проверить».
Первое изображение загружается в основное изображение товара, последующие в дополнительное свойство типа "файл" с CML-ID равным ADDITIONAL-IMAGES (создается автоматически).
Выгрузка из 1С может содержать множество цен, стандартно HostCMS в основную цену импортирует цену с названием "Розничная", все остальные цены загружаются в цены для групп клиентов.
Если цена из 1С подставляется во вновь созданное поле, а основная цена нулевая, необходимо в центре администрирования перейти в магазин, выбрать пункт меню Цены, в нем скопировать название цены и затем удалить созданную при обмене цену из раздела Цены, далее создать (отредактировать) активную константу DEFAULT_CML_PRICE_NAME и прописать в ее значение название скопированный в предыдущем шаге цены.
Например, в файле offers.xml цена называется "Розничная цена" (а не просто "Розничная"), тогда создаем (если не создана) константу с названием DEFAULT_CML_PRICE_NAME и значением Розничная цена. Очень важно удалить цену с названием "Розничная цена" из раздела Цены. Если при первом импорте описанной выше константы не существовало, либо её значение не совпадало со значением "Розничная цена", создается цена в справочнике цен с названием "Розничная 100500". Если её не удалить из справочника, создание константы не поможет.
При экспорте дополнительных групп номенклатуры, такие группы импортируются не в корневую директорию, а в соответствующий раздел. Импорт в корень осуществляется при указании каталога как 'Основной каталог товаров' или 'Каталог товаров'.
Допускается внесение в конфигурационный файл modules/shop/config/cml.php
других названий разделов, которые будут приниматься за корневой каталог.
return array(
'predefinedAdditionalProperties' => array(),
'catalogName' => array('Основной каталог товаров', 'Каталог товаров', 'Мой каталог')
);
Контроллер импорта из CML имеет свойство updateFields, принимающее массив атрибутов товаров, подлежащих обновлению в процессе обмена. Позволяет ограничить перечень обновляемых полей и дать приоритет данным, содержащимся в системе управления.
В код настроек ТДС обмена с 1С вы можете внести опцию с указанием перечня полей, которые следует обновлять и удалить из того списка те поля, которые обновлять не следует.
$oShop_Item_Import_Cml_Controller->updateFields = array('marking', 'barcode', 'name', 'shop_group_id', 'text', 'description', 'images', 'taxes', 'shop_producer_id', 'prices', 'warehouses');
$oShop_Item_Import_Cml_Controller->import();
Контроллер импорта из CML имеет свойство updateGroupFields, принимающее массив атрибутов групп, подлежащих обновлению в процессе обмена. Позволяет ограничить перечень обновляемых полей и дать приоритет данным, содержащимся в системе управления.
В код настроек ТДС обмена с 1С вы можете внести опцию с указанием перечня полей, которые следует обновлять и удалить из того списка те поля, которые обновлять не следует.
$oShop_Item_Import_Cml_Controller->updateGroupFields = array('name', 'description', 'parent_id');
$oShop_Item_Import_Cml_Controller->import();
Контроллер импорта из CML имеет свойство itemSearchFields, принимающее массив полей, по которым товар может быть найден. В код настроек ТДС обмена с 1С вы можете внести опцию с указанием перечня полей.
$oShop_Item_Import_Cml_Controller->itemSearchFields = array('cml_id', 'marking', 'barcode');
$oShop_Item_Import_Cml_Controller->import();
Для товара допускается указание нескольких CML ID группы, при этом сам товар будет помещен в первую указанную группу, а в другие указанные группы будут помещены ярлыки на этот товар.
<Товар>
<Ид>365b2cc7-7d8f-10e2-bf4b-f33e468030d2</Ид>
<Артикул>1000265478</Артикул>
<Наименование>Bla-bla-bla товар</Наименование>
<Группы>
<Ид>c42399e2-b263-11e0-a67f-f4ce468038d0</Ид>
<Ид>b05597e0-dcaa-00ae-a00f-ac38d0ce4680</Ид>
</Группы>
...
</Товар>
Добавлена возможность указать значения некоторых основных свойств товара через дополнительные свойства в системе 1С. Соответствие названия дополнительного свойства 1С и основного свойство товара в HostCMS:
HOSTCMS_TITLE | Заголовок (title) SEO |
HOSTCMS_DESCRIPTION | Описание (description) SEO |
HOSTCMS_KEYWORDS | Ключевые слова (keywords) SEO |
HOSTCMS_МЕТКИ | Метки (теги) |
ПРОИЗВОДИТЕЛЬ | Производителя товара |
АКТИВНОСТЬ | Активность товара |
ПРОДАВЕЦ | Название продавца |
YANDEX_MARKET | Экспортировать в Яндекс.Маркет |
Импорт веса и габаритов осуществляется из тегов ЗначенияРеквизитов/ЗначениеРеквизита. ЗначениеРеквизита/Наименование должно иметь одно из следующих значений: Вес, Длина, Ширина, Высота.
Если у товара указан статус удаления <Товар Статус="Удален">
, то такой товар отключается, но сохраняется в каталоге.
При обменен с 1С система управления выгружает новые заказы. Новыми заказами считается те заказы, которые ранее не были выгружены или отредактированные после выгрузки заказы.
Проверить выгружаемую информацию вы можете через браузер, перейдя на страницу http://вашсайт/shop/1c/?type=sale&mode=query (необходимо ввести логин и пароль в открывшемся окне).
Пометить все заказы как невыгруженные вы можете SQL-запросом:
UPDATE `shop_orders` SET `unloaded` = 0 WHERE `shop_id` = 1;
заменив 1 на идентификатор вашего магазина.
Обрабатывается значение реквизита "Статус заказа", устанавливается существующий статус заказа или создается новый. При выгрузке из 1С для заказа реквизита "ПометкаУдаления", такой заказ помечается удаленным.
1с 8.3 не работает с протоколом https
Есть такое решение, но помогает не всем: https://www.hostcms.ru/forums/2/11119/#71666
именно для структуры /1c/ просто отключили "соединение только по https", такое решение помогает)
Если на сервере сайта настроено принудительно перенаправление на SSL то к сожалению данная галочка не спасает.
Мне удалось это решить с установкой сертификата на стороне 1С. Все работает. Спасибо поддержке за ссылки.