#Встроенный типовой обмен CommerceML

#Настройка связи (на примере облачной 1С УНФ 1.6)

Настройки могут отличаться от версии и конфигурации. Уточните аналогичные разделы вашей версии 1С в техподдержке 1С.

  1. В 1С перейдите в Настройки - Обмен с сайтом, затем перейдите в Настройки обмена с сайтом.
Встроенный типовой обмен CommerceML
  1. На первом шаге укажите Ваша CMS Другая, проставьте, что нужно синхронизировать:
Встроенный типовой обмен CommerceML
  1. В меню Настройки - Обмен данными в PHPShop укажите, что будете загружать. Подробно мы описали в этой инструкции: https://wiki.phpshop.ru/nastroiky/dokumentooborot-crm#commerceml
  2. В меню Настройки - Обмен данными выберите тип авторизации По логину и паролю или По имени файла:

Для этого типа авторизации (Логин и пароль), ядро PHP на вашем хостинге должно работать в режиме модуля Apache. Если на хостинге включен режим СGI, то не получится авторизоваться по логину паролю. Отключите режим CGI или используйте тип авторизации По имени файла.

  • В меню Настройки - Обмен данными, выберите тип авторизации Логин и пароль. Нажмите Сохранить.
  • В 1С нажмите Подключить обмен. В открывшемся помошнике введите данные от админпанели магазина: введите логин и пароль от админпанели магазина.

_Адрес магазина - https://имя_сайта/1cManager/_

Логин - логин администратора магазина

Пароль - пароль администратора магазина

Встроенный типовой обмен CommerceML
Для авторизации по имени файла у администратора должны быть права доступа по API и сформирован токен. В меню 👤 - Профиль в закладке Права в нижней строке Доступ по API проверьте, что стоят права у Администратора и есть Токен. Если нет прав, проставьте галки и на вкладке Основное нажмите Сгенерировать новый пароль, поставьте Сменить логин и пароль, чтобы создался Токен.

Встроенный типовой обмен CommerceML

Теперь, после повторного входа, вы увидите Токен:

Встроенный типовой обмен CommerceML

  • После настроек администратора 👆, зайдите в меню Настройки - Обмен данными, выберите тип авторизации Имя файла. В пустое поле введите любое свое значение, нажмите Сохранить.
  • Перегрузите страницу CTRL+F5.
  • Нажмите на ссылку Имя файла.
  • Вставьте полученную ссылку в 1С в поле Адрес сайта:
Встроенный типовой обмен CommerceML
  1. Нажмите кнопку Проверить соединение.
  2. Нажмите Далее.
  3. Укажите данные для выгрузки:

Цены - какие цены будут выгружаться на сайт.

Каталоги - можно выбрать отдельные каталоги для выгрузки.

Склады - по умолчанию выгружаются общие остатки. Если складов несколько, поставьте здесь галку.

Встроенный типовой обмен CommerceML

Нажмите Далее.

  1. Задайте настройки для обмена заказами:
Встроенный типовой обмен CommerceML

Нажмите Далее.

  1. Укажите расписание обмена:
Встроенный типовой обмен CommerceML

Нажмите Готово.

#Настройка цен, складов, категорий, характеристик товаров

Эти данные настраиваются в закладке Выгрузка товаров.

  1. Откройте только что созданный обмен и нажмите вкладку Выгрузка товаров. Укажите нужные вам параметры выгрузки данных на сайт:
Встроенный типовой обмен CommerceML

Если складов несколько, предварительно заведите склады в PHPShop в меню Настройки - Склады и укажите внешний код из 1С в складах.

Внешний код склада можно найти в файле offers.xml. Файл можно выгрузить в окне Обмена, кнопка Инструменты администратора - Выгрузка на сайт - Текст файлов полного обмена. Откроются 2 файла import.xml и offers.xml. Внешние коды складов в файле offers.xml в начале файла.

Пропишите код в поле Внешний код в PHPShop в карточке склада. Для корректного сохранения кода, в правах администратора должны быть проставлены все галки[^3].

Встроенный типовой обмен CommerceML

нажмите Сохранить.

  1. Нажмите Выполнить полный обмен данными.
Встроенный типовой обмен CommerceML
  1. Перейдите на сайт и убедитесь, что товары и структура каталогов загрузились 🎉.
Встроенный типовой обмен CommerceML
Встроенный типовой обмен CommerceML

Результат выгрузки по складам

#Заказы и статусы

  1. Откройте созданный обмен и нажмите вкладку Обмен заказами. Укажите параметры обмена.
  2. В PHPShop в меню Заказы - статусы заказов создайте статус заказа, в поле Внешний код придумайте код.
  3. Введите код заказа в настройке обмена в 1С в меню Статусы заказов:
Встроенный типовой обмен CommerceML

4. Нажмите Записать.

  1. Оформите тестовый заказ в магазине:
Встроенный типовой обмен CommerceML
Встроенный типовой обмен CommerceML
  1. В настроенном обмене в 1С нажмите кнопку Синхронизация данных - Выполнить обмен - изменения:
Встроенный типовой обмен CommerceML
  1. Перейдите в меню Продажи - Заказы покупателей. Если заказ не появился, в фильтре вывода данных выберите нужную организацию.
Встроенный типовой обмен CommerceML
  1. В 1С поменяйте статус заказа, нажмите Записать:
Встроенный типовой обмен CommerceML

9. В настроенном обмене товарами в 1С нажмите кнопку Синхронизация данных - Выполнить обмен - изменения:

Встроенный типовой обмен CommerceML
  1. Проверьте, что статус заказа изменился в магазине:
Встроенный типовой обмен CommerceML

#Службы доставки

  1. Откройте созданный обмен и нажмите вкладку Обмен заказами. Укажите параметры обмена.
  2. В PHPShop в меню Заказы - доставка создайте доставку (или включите нужный модуль доставки, и она появится автоматически), в поле Внешний код придумайте код.
  3. Введите код доставки в настройке обмена в 1С в меню Службы доставки. Если в обмене нет настроек сопоставления доставок, то код доставки можно посмотреть в файле синхронизации статусов заказов: /1cManager/orders/orders.xml
  4. Теперь доставка будет загружена в Заказ с указанной стоимостью.

#Возможные проблемы

#Авторизация

На сайте ядро PHP должно работать в режиме модуля Apache. В режиме CGI/Fast CGI авторизация по протоколу Basic HTTP Authentication не поддерживается, используйте авторизацию в режиме Имя файла.

Встроенный типовой обмен CommerceML

#Не создаются новые товары

Если используется авторизация по имени файла, то создайте отдельного администратора для обмена данными с правами доступа по API и сгенерированным Токеном.

Встроенный типовой обмен CommerceML

#Не выгружаются картинки

1C выгружает изображения по каталогам, если в каталоге содержится много товаров (500 и более), то при выгрузке получится очень большой архив с картинками, который может не загрузится или не распаковаться из-за лимитов хостинга.

Для загрузки такого большого объема картинок следует включить режим оптимизированного обмена картинками (если он поддерживается вашей конфигурацией 1С).

В настройках параметров обмена данными в 1С в меню "Расширенные настройки обмена данными в формате CommerсeML2" должна быть поставлена галочка Использовать оптимизированный обмен картинок.

Встроенный типовой обмен CommerceML

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

После выгрузки всех изображений в режиме оптимизированного обмена следует включить галочку Выгружать только измененные изображения для уменьшения объема передаваемых картинок, которые уже были выгружены.

#Не загружаются заказы

В 1С загружаются заказы, только со статусом, указанным в настройке Обмен данными на сайте. Для загрузки всех заказов в 1С следует выбрать настройку статуса "Не используется".

Для повторной загрузки заказов в 1C следует:

  1. Выделить галочкой нужные заказы в админпанеле сайта
  2. Вызвать меню Редактировать выбранные
  3. Выбрать поле Загружено в CRM
  4. Выбрать значение Выкл и Сохранить

Если заказы не загружаются в 1С или выводится ошибка чтения данных при загрузке в 1С, то следует перенести сайт на рекомендуемые хостинги из первой пятерки, на которых успешна протестирована работа обмена данными c 1C.

#Производительность

Если из 1С выгружается большой объем данных или выбрано много каталогов в фильтре отбора, то транспортный ZIP-файл получается очень большого размера (несколько сот мегабайтов). Для принятия такого файла и его распаковки потребуются повышенные ресурсы хостинга .

Для увеличения ресурсов хостинга следует в корневой файл сайта .htaccess в самое начало добавить строки, позволяющие загружать файлы до 512MB

php_value memory_limit 1024M
php_value upload_max_filesize 536870912

#Настройки обмена 1С

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

Встроенный типовой обмен CommerceML

Если возникает ошибка привязки даты, номера заказа сайта или ошибка отсутствия типового соглашения по ценам, то следует воспользоваться официальной инструкции по настройке типового обмена.

#Очистка временных файлов

Для предотвращения переполнения временных папок на хостинге для хранения логов 1cManager/log и транспортных файлов 1cManager/sklad создайте новую задачу в модуле Задачи с адресом запускаемого файла 1cManager/clean.php.

Обмен с CommerceML доступен только для версии PHPShop Pro.