Интеграция с 1С

Движок поддерживает возможность обмена данными с «1С: Предприятие» не ниже версии 8.1 в редакции «1С: Управление торговлей» не ниже версии 10.3.4 (версия 11 полностью не поддерживается).

Обмен данными осуществляется через файл формата CommerceML (о формате: https://www.1c.ru/rus/products/1c/integration/cml.htm) и может производиться вручную (через файл) либо автоматически (частота обновления настраивается в 1С).

Чтобы настроить автоматический обмен между магазином и 1С, необходимо произвести настройки с обеих сторон, как описано ниже.

Серверная настройка

Важно: для обмена данными с 1С на сервере с установленными скриптами интернет-магазина должно быть доступно PHP-расширение XMLReader!

Внимание: если движок установлен на сервере, где PHP работает в качестве CGI, то для работы авторизации при обмене информацией с 1С необходимо наличие модуля mod_rewrite для веб-сервера Apache; при соблюдении этих условий в начало файла .htaccess в каталоге установки скриптов необходимо добавить следующий код:
RewriteEngine On
RewriteCond %{HTTP:Authorization} !^$
RewriteCond %{REQUEST_URI} !(http_auth)
RewriteRule ^(.*)$ $1?http_auth=%{HTTP:Authorization} [QSA]
Если вы планируете использовать режим ЧПУ, то приведенный выше фрагмент кода будет автоматически добавлен в файл .htaccess при включении этого режима — в этом случае вручную добавлять код не нужно.

Откройте раздел администрирования магазина «Инструменты -> 1С» (если вы не видите такого раздела, проверьте права доступа к нему для вашего пользователя) и щелкните по кнопке «Включить»:

После включения активируется скрипт обмена данными (синхронизации), после чего движок готов к автоматическому обновлению.

Для заполнения полей, показанных на снимке выше, вам потребуются настройки адрес скрипта синхронизации, пользователь и пароль — эти данные необходимо ввести на стороне 1С.

Настройка 1С

  1. В программе «1С: Управление торговлей» щелкните по пункту меню «Обмен данными с WEB-сайтом -> Настроить обмен данными с WEB-сайтом» в меню «Сервис».

  2. Выберите «Создать новую настройку обмена с WEB-сайтом».

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

  4. Щелкните «Проверить», чтобы убедиться в правильности введенных данных. Если не появится сообщение «Соединение выполнено успешно», значит при в ходе проверки данных возникла ошибка. Для устранения ошибки вам помогут автоматически появляющиеся служебные сообщения в нижней части окна.

    При автоматическом обмене данными 1С выступает в роли клиента, а движок — в роли сервера.

  5. На шаге настройки выгрузки товаров оставьте все значения выключенными (по умолчанию):

    Внимание: опция «Выгружать картинки» должна быть выключена, потому что движок не принимает эту информацию из файла, и попытки импорта товаров с включенной настройкой выгрузки изображений могут привести к возникновению ошибок.
  6. Укажите, как часто необходимо выполнять обмен данными:

  7. Готово. Обмен данными уже должен работать. Для проверки выполните обмен, щелкнув по соответствующей кнопке после завершения настройки.

Важные рекомендации по обмену данными между движком  и 1C

Порядок обмена данными

движок умеет:

  • экспортировать в файл формата CommerceML (т. е. отдавать в 1С) информацию о продуктах и заказах, однако в случае автоматического обмена данными 1С принимает из этой информации только данные о заказах, а продукты необходимо переносить из магазина в 1С только через файл вручную. Если у продукта в каталоге движка есть дополнительные характеристики, то они не будут перенесены в 1С.
  • импортировать из CommerceML-файла (т. е. принимать из 1С) только информацию о продуктах и их свойствах, кроме изображений продуктов; импорт номенклатуры в магазин предназначен для быстрой синхронизации цен и остатков на складе. Если для продуктов в 1С настроены различные комбинации дополнительных характеристик, то в движке каждая комбинация будет импортирована в виде отдельного продукта (характеристики такого продукта указываются в скобках в наименовании). движок не импортирует информацию о заказах из файла.
Совет: поскольку при импорте данных из 1С в движок изображения товаров не переносятся, для их добавления в каталог интернет-магазина следует загрузить файлы изображений в соответствующий каталог сервера (например, с помощью раздела администрирования «Дизайн -> Загрузка изображений -> Картинки продуктов»), затем экспортировать содержимое каталога товаров из движка в CSV-файл, внести в CSV-файл имена файлов изображений для каждого товара и импортировать измененный CSV-файл обратно в движок, чтобы таким образом «прикрепить» изображения к товарам, которые были перенесены из 1С.

1С умеет:

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

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

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

Полная выгрузка 

Если вы работаете с автоматическим обменом данными, по умолчанию 1С инициирует обмен только измененных данных о заказах и продуктах. Это может привести к тому, что продукты могут не выгружаться из 1С в движок, что сопровождается сообщением «Изменения товаров не зарегистрированы. Выгрузка товаров не произведена.».

Чтобы «побороть» эту проблему, необходимо в настройках обмена данными (меню «Сервис -> Обмен данными с WEB-сайтом -> Настроить обмен данными с WEB-сайтом») установить опцию «Полная выгрузка» и сохранить настройки.

После сохранения этих настроек 1С будет отправлять полный каталог продуктов в магазин.

Достаточно установить такую опцию и выполнить обмен данными один раз, чтобы выгрузить все продукты из 1С в магазин, и в дальнейшем вернуть настройке значение «Только изменения», чтобы не передавать в файле обмена избыточную информацию. В особенности это актуально, если в вашем каталоге большое количество продуктов.

Обмен через файл

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

Если вы экспортировали файл из магазина, то импортировать его в 1С можно, щелкнув по пункту меню «Сервис -> Обмен данными -> Загрузка данных в формате CommerceML».

Примечание: в зависимости от вашей конфигурации 1С пункт «Загрузка данных в формате CommerceML» может находиться в другом разделе меню.

Сопоставление продуктов по идентификатору CommerceML

При обмене данными идентификация продуктов, категорий продуктов и заказов выполняется по специальному внутреннему ключу (идентификатору CommerceML), который может выглядеть примерно так: 9e271f47-6922-4e19-ab81-44c2c3d6391d.

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

Импорт из 1С в движок

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

Экспорт из движка в 1С

При экспорте из движка для всех продуктов, у которых еще нет идентификатора CommerceML, такой идентификатор создается автоматически — только после этого информация о продукте добавляется в файл экспорта.

Продукты можно перенести из магазина в 1С только через файл (см. пункт «Обратите внимание» для того, чтобы узнать подробности). 

Дубликаты продуктов

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

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

Синхронизация каталога товаров между движком и 1С

При раздельном обновлении информации о товарах в каталоге движка и в номенклатуре 1С логичным результатом будет наличие двух несинхронизированных каталогов с различными товарами. Такой ситуации следует избегать, т. к. она может привести к сложностям при обмене данными между движком и 1С. Это вызвано тем, что механизм обмена данными движка с «1С:Управление Торговлей» через файл формата CommerceML основан на том, что вся товарная номенклатура изначально ведётся в 1С, а не в движке. Поэтому добавлять новые товары необходимо средствами 1С, после чего переносить информацию о них в движок с помощью функции обмена данными.

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

 

  1. Перенести с помощью файла весь существующий каталог товаров из движка в 1С.
  2. Устранить дубликаты товаров в номенклатуре 1С.
  3. Выгрузить данные о товарах из 1С в файл.
  4. Полностью очистить каталог движка (предварительно сохранив резервную копию базы данных).
  5. Импортировать файл с информацией о товарах, экспортированный из 1С.
Если же очистка каталога товаров в движке для вас неприемлема, то для настройки обмена данными с учётом индивидуальных особенностей вашего бизнеса вам следует обратиться к сторонним специалистам — франчайзи 1С.

 

Смена пароля автоматического обмена

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


Читайте далее:

Руководство пользователя
Вопрос-ответ
 

 
    Съешь еще эти сладкие вишни,
да почитай про
интернет-магазин