/ Сайтостроение / Плагины / WooCommerce and 1C:Enterprise

WooCommerce and 1C:Enterprise

HIT

28.07.2017

2551

6

Разбираем на элементы плагин WooCommerce and 1C:Enterprise/1С:Предприятие Data Exchange. Плагин дает функционал обмена данными между сайтом и программой 1С: Предприятие. Некоторые моменты синхронизации сайта с 1С описаны в статье Интеграция Woocommerce с 1С. В данной статье будем изучать механизмы работы плагина и его компонентов (что делает каждый из файлов плагина).

Принцип работы плагина

Недавно обнаружил в самом плагине в файле readme.txt довольно подробное описание работы плагина. Вот этот текст (не полный):

Предоставляет обмен данными между плагином для электронной коммерции WooCommerce и приложением для бизнеса «1C:Предприятие 8. Управление торговлей» (и совместимыми).

Для достижения корректной работы плагина могут потребоваться базовые навыки администрирования веб-серверов (просмотр логов, изменение настроек php и веб-серверов и др.) А настройка плагина осуществляется добавлением констант в `wp-config.php` (посмотреть доступные можно командой: `grep -r «define(‘WC1C_»`) и функций [фильтров и действий](https://codex.wordpress.org/Plugin_API) в `functions.php` в папке активной темы (посмотреть доступные можно командой: `grep -r «do_action\|apply_filters»`).

Особенности:

  • Выгрузка товаров: группы (категории), свойства и значения, список товаров и вариантов, изображения, свойства, реквизиты, цены, остатки товаров.
  • Обмен заказами: двусторонний обмен информацией о заказах на сайте и в приложении.
  • Полная и частичная синхронизация.
  • Экономичное использование оперативной памяти сервера.
  • Поддержка передачи данных в сжатом виде.
  • Транзакционность и строгая проверка на ошибки: данные обновляются в БД только в случае успешного обмена.

Установка

Необходимо учесть, что для обмена большими объемами данных может понадобиться произвести дополнительную настройку веб-сервера. На недорогих shared-хостингах часто такой возможности нет, а настроены они под крайне консервативный режим работы. Поэтому рекомендуется использовать VPS/VDS-хостинги.

Главное требование для работы плагина с большими выгрузками, отсекающее возможность использования большой части shared-хостингов, – это возможность неограниченного времени исполнения PHP-скриптов, т.к. для первой полной выгрузки может понадобиться больше времени, чем разрешено на сервере.

Настройка

Вначале вам необходимо установить и активировать плагин WooCommerce, т.к. этот плагин зависит от него. Для этого зайдите в панель управления WordPress, выберите «Плагины» → «Добавить новый». В поисковом поле введите название плагина (или часть) и кликните «Искать плагины». Установите найденный плагин, кликнув «Установить сейчас».

В 1С в качестве адреса в настройках обмена с сайтом необходимо один из адресов вида:

* http://example.com/?wc1c=exchange
* или http://example.com/wc1c/exchange/, если на сайте включены постоянные ссылки («Настройки» → «Постоянные ссылки»)

В качестве имени пользователя и пароля в 1С следует указать действующие на сайте имя и пароль активного пользователя с ролью «Shop Manager» или Администратор.

Весь процесс настройки 1С:Предприятия для обмена данными с сайтом хорошо описан в инструкции к одному из коммерческих движков интернет-магазина: http://www.cs-cart.ru/docs/4.1.x/rus_build_pack/1c/instruction/index.html#id3, которой можно следовать до раздела «Настройки в интернет-магазине».
Данная информация приведена ниже.

Технические рекомендации

Рекомендуется изменить тип хранилища всех таблиц базы данных сайта на InnoDB. Это добавит транзакционность в процесс обмена данными: изменения в базе данных сайта будут применяться только в случае успешного завершения процесса обмена.

Выполнение PHP на сервере необходимо настроить так, чтобы не было лимитов на время исполнения скриптов плагина. В случае использования связки Apache + mod_php (рекомендуется как наиболее простая связка) при дефолтных настройках лимита не будет. В случае использования FastCGI и/или nginx может потребоваться дополнительная их настройка для снятия лимитов на время исполнения (например, изменение FcgidConnectTimeout для mod_fcgid; request_terminate_timeout, fastcgi_read_timeout для nginx).

1С закачивает на сервер выгрузку с помощью POST-запроса. Возможно, понадобится увеличить лимит объема данных, отправляемых по POST. В php.ini за это отвечает значение post_max_size. В случае использования FastCGI и/или nginx может понадобится увеличить этот лимит также в их настройках (например, FcgidMaxRequestLen для mod_fcgid; client_max_body_size, send_timeout для nginx).

Если PHP выполняется в режиме FastCGI, а 1С при проверке соединения с сервером просит проверить имя пользователя и пароль, хотя они указаны верно, то необходимо в файл .htaccess после строки `RewriteEngine On` вставить строку `RewriteRule . — [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]`, а также попробовать оба варианта адреса обмена (полный и короткий). Необходимо учесть, что изменения в .htaccess перезатираются при сохранении настроек постоянных ссылок и некоторых плагинов из админки WordPress.

FAQ

Как удалить с сайта все данные, созданные в процессе обмена?

Если вы используете [WP-CLI](http://wp-cli.org/), то можно из директории плагина выполнить команду `wp eval-file ./clean.php`. Также можно, будучи авторизованным в WordPress, перейти по адресу http://example.com/?wc1c=clean или http://example.com/wc1c/clean (где exchange.com – домен сайта) и нажать на появившуюся кнопку.

Как вручную воспроизвести импорт товаров?

После обмена с 1С плагин сохраняет полученные файлы импорта (до следующего обмена) в директории `wp-content/uploads/woocommerce-1c/catalog` в файлах вида `import.xml` (информация о группах, свойствах и товарах) и `offers.xml` (информация о ценах и вариантах предложений). Для отладки в процессе интеграции плагина полезно иметь возможность вручную повторить импорт из этих файлов. Для этого в браузере можно последовательно перейти по следующим адресам, будучи авторизованным как администратор или менеджер магазина:

* `<адрес обмена>?type=catalog&mode=import&filename=import.xml`
* `<адрес обмена>?type=catalog&mode=import&filename=offers.xml`

Имена XML-файлов, возможно, придется заменить на актуальные из директории `wp-content/uploads/woocommerce-1c/catalog`.

Как осуществляется обмен заказами?

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

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

Список изменений

= 0.7 =
Добавлена в API возможность переопределения очистки категорий. Добавлена в API возможность определять, является ли обмен полным или частичным. Отключена очистка мета-данных при удалении плагина.

= 0.6 =
Добавлена ссылка для сбора пожертований. Добавлено сохранение заданных пользователем из WooCommerce изображений товаров, для которых отсутствуют изображения в 1С. Добавлена возможность очистки всех данных магазина (см. FAQ). Добавлена в API возможность переопределения передаваемых в 1С заказов.

= 0.5 =
Добавлена в API возможность предотвращения перезаписи заголовка, краткого описания, полного описания и галереи продукта при каждом последующем обмене. Изменена логика обмена заказами.

= 0.4 =
Добавлено приведение наименований реквизитов к человекочитаемому виду. Добавлена поддержка импорта из поля 1С «Файл описания для сайта». Значение поля 1С «Текстовое описание» помещается в «Краткое описание товара» WooCommerce.

= 0.3 =
Добавлена поддержка распаковки архивов средствами системы. Добавлена возможность указания прямого адреса скрипта без необходимости включения постоянных ссылок. Значение поля 1С «Наименование для печати» используется для заголовка товара вместо значения поля «Рабочее название».

= 0.2 =
Добавлено базовое API с помощью фильтров и действий.

= 0.1 =
Первая версия.

Процесс настройки 1С:Предприятия

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

Для этого запустите файл “1сv8.exe”, в открывшемся окне выберите базу данных, с которой будет производиться обмен, и нажмите на кнопку “1С:Предприятие”.

После запуска необходимо выбрать пользователя и ввести пароль (если у пользователя задан пароль).

Если пользователь и пароль введены правильно, откроется окно “Демонстрационная база”.

Настройте обмен с интернет-магазином

Сначала нужно настроить обмен с интернет-магазином.

  1. В программе 1С:Предприятие зайдите в “Администрирование” и нажмите на ссылку “Настройки синхронизации данных”. В окне “Настройки синхронизации данных” включите “Обмен данными с сайтами”.

  2. Нажмите на ссылку “Общие настройки” и включите “Дополнительные реквизиты и сведения”

  3. Нажмите на ссылку “CRM и продажи” в левом меню и включите “Заказы клиентов” в появившейся форме.

Создайте типовое соглашение с клиентами

После необходимой настройки обмена создайте типовое соглашение с клиентами, для этого пройдите в раздел “Маркетинг и планирование” и нажмите на ссылку “Типовые соглашения с клиентами”.

  1. В окне “Типовые соглашения об условиях продаж” нажмите на кнопку “Создать”.

  2. В новом окне “Типовое соглашение об условиях продаж” заполните все необходимые поля, при этом:

    • поле “Статус” должно иметь значение “Действует”;
    • поле “Сегмент партнеров” должно быть пустым;
    • поле “Доступно внешним пользователем” должно быть отмечено галочкой.

  3. Создайте новый узел обмена. Для этого пройдите в “Администрирование” и нажмите на ссылку “Настройки синхронизации данных”. В окне “Настройки синхронизации данных” нажмите на ссылку “Узлы обмена с сайтами” и создайте новый узел.

  4. В окне создания нового узла необходимо настроить процесс обмена.

Настройка процесса обмена (узел обмена)

Вкладка “Основные настройки”

Во вкладке “Основные настройки” узла обмена заполните следующие поля:

Наименование Введите наименование обмена
“Режим обмена данными”
  • “Выгрузка товаров”, если планируется выгрузка товаров на сайт;
  • “Обмен заказами”, если планируется загрузка и выгрузка заказов.
Выберите назначение обмена
  • “Выгружать на сайт” — для выгрузки данных на сайт.

    Если выбранно данное назначение, то в поле “Адрес сайта” введите путь к скрипту, который будет обрабатывать обмен (например, http://my_site.ru/app/addons/rus_exim_1c/exim_1c.php).

    Важно

    Также необходимо ввести имя пользователя интернет-магазина и его пароль.

    Для проверки соединения нажмите кнопку “Проверить соединение”. Если все параметры заполнены корректно, будет показано сообщение “Соединение успешно установлено”. В противном случае необходимо проверить корректность введеного адреса и параметров доступа.

    Важно

    Если проверка соединения проходит неудачно, обмен работать не будет.

  • “Выгружать в каталог на диске” — для выгрузки данных в файл.

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

Выберите контроль изменений:
  • “Полная выгрузка” — выгрузка всех товаров и заказов, соответствующих условиям выгрузки.
  • “Выгружать только измененные объекты” — выгрузка объектов, измененных с момента последней удачной выгрузки.
“Использовать периодический обмен данными”

Для автоматического обмена данными включите “Использовать периодический обмен данными” и настройте расписание обмена, чтобы обмен запускался автоматически когда это необходимо.

Вкладка “Выгрузка товаров”

Во вкладке “Выгрузка товаров” заполните поля (вкладка доступна и видна, если включен флажок “Выгрузка товаров” на вкладке “Основные настройки”):

Организацию-владельца XML-каталога Это организация, от имени которой будет производиться обмен.
Коэффициент пересчета веса Если необходимо будет производить пересчет веса товаров из 1С в единицы, в которых он учитывается на сайте.
Выгружать файлы изображений Если необходимо выгружать изображения.
Выгружать прочие файлы Если номенклатура содержит присоединенные файлы.
Классифицировать по видам номенклатуры Если необходимо чтобы категории товаров выгружались из справочника “Виды номенклатуры”, иначе категории будут выгружаться из справочника “Номенклатура”.
Таблица каталогов При необходимости настройте таблицу каталогов, которая содержит строки, для соответствия групп товаров категориям в интернет магазине.

Настройки “Таблицы каталогов”

  • В колонке “Каталог” задается имя каталога,
  • В колонке “Группы номенклатуры” настраивается фильтр выгрузки групп (состав выбираемых групп зависит от установки флажка “Классифицировать по видам номенклатуры”):
    • Если флажок “Классифицировать по видам номенклатуры” включен, то группы выбираются из справочника “Виды номенклатуры”, иначе – из справочника “Номенклатура”.
    • Если группы не выбраны, то выгружаться будут все группы. В колонке “Идентификатор каталога” задается идентификатор, по которому устанавливается связь выгружаемых данных с конкретными категориями в интернет магазине.
  • Для настройки отбора нажмите кнопку “Настроить отбор”. В форме настройки отбора установите ограничения по выгрузке товаров.

Вкладка “Обмен заказами”

Вкладка “Обмен заказами” (вкладка доступна и видна, если включен флажок “Обмен заказами” на вкладке “Основные настройки”) содержит два раздела “Основные настройки обмена заказами” и “Дополнительно”.

В разделе “Основные настройки обмена заказами” заполните следующие поля:

  • Заполните поля “Доп. реквизит документа Заказ клиента — Дата заказа на сайте” и “Доп. реквизит документа Заказ клиента — Номер заказа на сайте”, по которым будет осуществляться поиск заказов с сайта.
  • Выберите “Способ идентификации контрагентов” для поиска контрагентов при загрузке заказов с сайта. Есть 2 варианта поиска: по наименованию и по комбинации ИНН+КПП. В обмене данными для CS-Cart необходимо использовать вариант “По наименованию”.
  • Укажите “Вид номенклатуры (товар)” — вид номенклатуры, с которым будут записываться новые товары, загруженные с сайта.
  • Укажите “Вид номенклатуры (услуга)” — вид номенклатуры, с которым будут записываться новые услуги, загруженные с сайта.
  • Выберите “Единицу измерения новой номенклатуры” — единица измерения, с которой будут записываться новые товары с сайта.
  • В поле “Соглашение” выберите ранее созданное типовое соглашение с клиентами.
  • В поле “Организация” выберите организацию, от имени которой будет создаваться документ “Заказ клиента”.
  • Заполните поле “Менеджер” для указания менеджера, от имени которого будут создаваться документы “Заказ клиента”.
  • В поле “Комментарий” добавьте комментарий к документу “Заказ клиента”, если это необходимо.

В разделе “Дополнительно” можно настроить дополнительные параметры обмена заказами:

  • “Параметры записи и проведения” — устанавливает режим записи и проведения документов.
  • “Параметры отмены заказов” — устанавливает статус заказа в случае, если он “Отменен” и причину, присваемую заказу в случае отмены.
  • “Соответствие статусов заказов” — настраивает соответствие статусов заказа на сайте статусам документа “Заказ клиента” в 1С. Если такие соответствия настроены, то при загрузке заказов будет происходить попытка установки соответствующего статуса документам “Заказ клиента”.

После настройки всех необходимых параметров выгрузки сохраните узел, нажав на кнопку “Записать и закрыть”.

Входящие в плагин файлы

Тэги:

Поделится информацией с друзьями

  • Похожие записи
  • Комментарии
  • Вложения
WooCommerce AJAX Products Filter

WooCommerce AJAX Products Filter

Раннее данный фильтр участвовал в общем обзоре, в котором я приводил основные особенности. Рассмотрим подробнее работу с фильтром WooCommerce AJAX Products Filter. Работа с WooCommerce AJAX Products Filter Можно создавать Читать далее »

/
Upgrade WC

Upgrade WC

Очередная серия улучшений (upgrade) плагина WC. Буду добавлять по мере изучения новые решения. Поиск по SKU (артикулу) Из коробки WC не ищет по артикулам (SKU). Но достаточно установить плагин Search Читать далее »

/
Разные шаблоны для разных категорий товаров

Разные шаблоны для разных категорий товаров

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

Добавить комментарий

6 комментариев

  1. Антон

    Здравствуйте, как можно с вами связаться, мне требуется небольшая консультация по данному плагину!

    1. Alexandr
      Alexandr

      Если небольшая — пишите здесь. Может кому-то это также будет интересно. Но скажу наперед, что в данном плагине и сам разбираюсь поверхностно и многие вещи приходилось допиливать методом проб и ошибок.

    2. Alexandr
      Alexandr

      Если нужна более квалифицированная помощь — советую обратиться в компанию ENTEREGO.

  2. Александр

    Здравствуйте! Установил плагин,активировал. А где настройки? По ссылке переходил «http://example.com/?wc1c=exchange» ничего не происходит. Пожалуйста, покажите пару скринов с настройками этого плагина на стороне wordpress!

    1. Alexandr
      Alexandr

      Нет у него никаких настроек. Все прописано в самих функциях плагина.

  3. Рома

    Здравствуйте, не могу импортировать Характеристики товаров. Можете показать пример части файла для импорта характеристик?

WooCommerce and 1C:Enterprise WooCommerce and 1C:Enterprise WooCommerce and 1C:Enterprise WooCommerce and 1C:Enterprise WooCommerce and 1C:Enterprise WooCommerce and 1C:Enterprise WooCommerce and 1C:Enterprise WooCommerce and 1C:Enterprise WooCommerce and 1C:Enterprise WooCommerce and 1C:Enterprise WooCommerce and 1C:Enterprise WooCommerce and 1C:Enterprise WooCommerce and 1C:Enterprise WooCommerce and 1C:Enterprise WooCommerce and 1C:Enterprise WooCommerce and 1C:Enterprise
Фильтр. Принцип работы
Рекомендации для васФильтр. Принцип работыOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.