WooCommerce and 1C:Enterprise/1С:Предприятие Data Exchange

Descripcion

In Russian

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

Для достижения корректной работы плагина могут потребоваться базовые навыки администрирования веб-серверов (просмотр логов, изменение настроек php и веб-серверов и др.) А настройка плагина осуществляется добавлением констант в wp-config.php (посмотреть доступные можно командой: grep -r "define('WC1C_") и функций фильтров и действий в functions.php в папке активной темы (посмотреть доступные можно командой: grep -r "do_action\|apply_filters").

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

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

Пожалуйста, перед использованием плагина прочитайте следующее:

Поддержать разработку и автора можно взносом через банковскую карту или Яндекс.Деньги.

Соавторы: Максим Дубовик @lufton, @chrme, @shsl, Арсений Дугин @sklazer, Геннадий Ковшенин @soulseekah, Vladyslav @qwave.

In English

Provides data exchange between eCommerce plugin WooCommerce and business application « 1C:Enterprise 8. Trade Management ».

Features:

  • Product exchange: group (categories), attributes and values, product list and product variations, images, properties, requisites, prices, remains for products.
  • Order exchange: two way exchange of order information between website and application.
  • Partial and full syncronization.
  • Effective usage of RAM on server.
  • Support for compressed data exchange.
  • Transactions and strict error checking: DB updates on successfull data exchange only.

Please, read the following before using this plugin:

Contributors: Maksim Dubovik @lufton, @chrme, @shsl, Arseny Dugin @sklazer, Gennady Kovshenin @soulseekah, Vladyslav @qwave.

License

« WooCommerce and 1C:Enterprise Data Exchange » is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
any later version.

« WooCommerce and 1C:Enterprise Data Exchange » is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with « WooCommerce and 1C:Enterprise Data Exchange ». If not, see http://www.gnu.org/licenses/gpl-3.0.html.

Screenshots

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

Installacion

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

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

Настройка

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

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

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

где example.com – доменное имя сайта интернет-магазина.

В качестве имени пользователя и пароля в 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.

Пример конфига пула для PHP7-FPM:
php_admin_value[post_max_size]=1000M
php_admin_value[upload_max_filesize]=1000M
php_admin_value[request_terminate_timeout]=0
php_admin_value[max_execution_time]=9000000s
php_admin_value[memory_limit]=512M

Пример конфига nginx:
`
server {
client_max_body_size 1000m;

… etc configs

location ~ .php$ {

… etc configs

fastcgi_read_timeout 60000s;
}
`

FAQ

Предоставляете ли вы поддержку?

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

  • возникли определенные непреодолимые трудности в процессе установки или настройки плагина;
  • в процессе обмена данными возникают ошибки;
  • не устраивает текущий алгоритм обмена данными плагина, и есть представление, что и как должно работать иначе.
Почему не работает авторизация даже после добавления рекомендуемой строки в .htaccess?

Если вы используете Windows, то необходимо установить утилиту cURL. В OS X и Linux она, как правило, уже присутствует в системе. Необходимо в терминале выполнить команду:
curl -D – -u « логин:пароль » « http://адрес-обмена?type=catalog&mode=checkauth »
Замените логин, пароль, адрес-обмена на соответствующие значения. В выводе команды будет содержаться сообщение об ошибке от сервера.

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

Если вы используете WP-CLI, то можно из директории плагина выполнить команду 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С проведен, то у заказа на сайте выставляется статус « Выполнен ».
    • Иначе – оставляет у заказа на сайте статус по умолчанию « На удержании ».
Где можно найти исходники плагина?

Исходники размещаются в предоставляемом WordPress.org svn-репозитории. Также имеется git-зеркало.

Как работать с репозиторием через git-svn?

Инициализация:

  • git clone git@github.com:sgtpep/woocommerce-1c.git
  • cd ./woocommerce-1c
  • git svn init https://plugins.svn.wordpress.org/woocommerce-and-1centerprise-data-exchange/trunk/
  • git update-ref refs/remotes/git-svn master
  • git svn rebase --log-window-size=100000

Коммит:

  • git commit
  • git svn dcommit
  • git push

Reviews

6 decembre 2017
Ещё не со всем разобрался, но всё сделано как надо.
21 junh 2017
Помогите в настройке плагина или скажите сколько это будет стоить , 1с закидывает файл в нужную папку при выгрузке, а дальше выдает ошибку. Не могу связаться с автором. Напишите на почту rokotzavod@mail.ru
3 març 2017
Плагин работает, из 1С информацию выгружает в WC загружает, как надо. Правда, завёлся не с первого раза, пришлось повозиться. Серьёзный минус - это отсутствие нормальной понятной документации.
Read all 28 reviews

Contributors & Developers

“WooCommerce and 1C:Enterprise/1С:Предприятие Data Exchange” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

0.9.1

Vladyslav @qwave исправил ошибку при получении статусов заказов.

0.9

Максим Дубовик @lufton исправил передачу следующих вещей: контакты клиентов, дополнительные типы цен, габариты товаров и добавил возможность переопределять статус « нет в наличии » с помощью константы WC1C_OUTOFSTOCK_STATUS.

0.8

Исправлена проблема со статусом невыполненого заказа для WooCommerce новее 3.x, когда включено управление запасами (спасибо, @chrme). Исправлено некорректное использование Rewrite API, негативно влиявшее на производительность (спасибо, Геннадий Ковшенин @soulseekah.

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

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