События и плагины. Modx msync


Настройки / mSync / Компоненты / docs.modx.pro

msync_alias_with_id Нет Выберите ДА, чтобы к псевдониму товаров при создании добавлялся идентификатор ресурса. Решает проблему повторяющихся псевдонимов.
msync_catalog_context web Контекст каталога, в который производится импорт
msync_catalog_currency руб Валюта каталога по умолчанию
msync_catalog_root_id 0 Идентификатор ресурса каталога, который будет считаться корневым для выгрузки категорий.
msync_create_prices_tv Нет Выберите ДА, если хотите, чтобы TV под разные цены создавались автоматически на основе данных их XML.
msync_create_properties_tv Нет Выберите ДА, если хотите, чтобы TV под свойства товаров создавались автоматически.
msync_debug Нет Выберите ДА, чтобы посмотреть полный лог выгрузки в папке core/components/msync/logs
msync_import_all_prices Нет Выберите ДА, если хотите, чтобы выгружались все цены предложений. Если у вас только одна цена, оставьте значение Нет.
msync_order_accept_status_id Идентификатор статуса заказа, устанавливаемый вместо статуса "Новый" обработанным заказам.
msync_orders_delay_time 30 Между получением заказов и запросом об успешном получении из 1С может пройти несколько секунд. Эта настройка позволяет установить, сколько секунд следует отнимать от времени последней выгрузки заказов, чтобы получить заказы, которые попали в этот промежуток.
msync_price_by_feature_tv "" Имя параметра для сохранения цен с учетом характеристики.
msync_publish_by_quantity Нет Выберите ДА, если хотите, чтобы товар публиковался в зависимости от количества.
msync_publish_default Нет Выберите ДА, если хотите, чтобы товары выгружались опубликованными.
msync_save_properties_to_tv "" Имя параметра для сохранения всех свойств в формате JSON/
msync_template_category_default 0 Шаблон, устанавливаемый при создании категорий.
msync_template_product_default 0 Шаблон, устанавливаемый при создании товара.
msync_time_limit 60 Лимит выполнения одного пакета при импорте. Должен быть меньше, чем PHP параметр max_execution_time на хостинге.
msync_1c_sync_login mSync Логин для синхронизации
msync_1c_sync_pass Генерируется случайно Пароль для синхронизации
msync_last_orders_sync "" Время последней синхронизации заказов
msync_user_id_import 1 Идентификатор пользователя, от имени которого производится импорт. У пользователя должны быть права администратора.

docs.modx.pro

Настройки / mSync / Компоненты / docs.modx.pro

msync_alias_with_id Нет Выберите ДА, чтобы к псевдониму товаров при создании добавлялся идентификатор ресурса. Решает проблему повторяющихся псевдонимов.
msync_catalog_context web Контекст каталога, в который производится импорт
msync_catalog_currency руб Валюта каталога по умолчанию
msync_catalog_root_id 0 Идентификатор ресурса каталога, который будет считаться корневым для выгрузки категорий.
msync_create_prices_tv Нет Выберите ДА, если хотите, чтобы TV под разные цены создавались автоматически на основе данных их XML.
msync_create_properties_tv Нет Выберите ДА, если хотите, чтобы TV под свойства товаров создавались автоматически.
msync_debug Нет Выберите ДА, чтобы посмотреть полный лог выгрузки в папке core/components/msync/logs
msync_import_all_prices Нет Выберите ДА, если хотите, чтобы выгружались все цены предложений. Если у вас только одна цена, оставьте значение Нет.
msync_order_accept_status_id Идентификатор статуса заказа, устанавливаемый вместо статуса "Новый" обработанным заказам.
msync_orders_delay_time
30 Между получением заказов и запросом об успешном получении из 1С может пройти несколько секунд. Эта настройка позволяет установить, сколько секунд следует отнимать от времени последней выгрузки заказов, чтобы получить заказы, которые попали в этот промежуток.
msync_price_by_feature_tv "" Имя параметра для сохранения цен с учетом характеристики.
msync_publish_by_quantity Нет Выберите ДА, если хотите, чтобы товар публиковался в зависимости от количества.
msync_publish_default Нет Выберите ДА, если хотите, чтобы товары выгружались опубликованными.
msync_save_properties_to_tv "" Имя параметра для сохранения всех свойств в формате JSON/
msync_template_category_default 0 Шаблон, устанавливаемый при создании категорий.
msync_template_product_default 0 Шаблон, устанавливаемый при создании товара.
msync_time_limit 60 Лимит выполнения одного пакета при импорте. Должен быть меньше, чем PHP параметр max_execution_time на хостинге.
msync_1c_sync_login mSync Логин для синхронизации
msync_1c_sync_pass Генерируется случайно Пароль для синхронизации
msync_last_orders_sync "" Время последней синхронизации заказов
msync_user_id_import 1 Идентификатор пользователя, от имени которого производится импорт. У пользователя должны быть права администратора.

docs.modx.pro

[mSync] Новая версия синхронизации с 1С / modx.pro

После длительной разработки, хочу представить вам новую версию дополнения для синхронизации интернет-магазинов miniShop 2 с сервисами, поддерживающими обмен по протоколу CommerceML, в первую очередь с «1С. Управление торговлей» на базе «1С Предприятие» версии >= 8.0.

Дополнение mSklad было полностью переработано изнутри, поэтому mSync было решено выпустить отдельно — он не имеет обратной совместимости с предыдущими версиями. Но благодаря переработке появились большие возможности по развитию дополнения в будущем. При этом техподдержка старой версии mSklad, будет так же действовать 1 год с момента покупки.

Изменения относительно дополнения mSklad:

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

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

— Запуск синхронизации в ручном режиме: то, что раньше нужно было выполнять по методичке с сайта geek.pro (ныне закрытого), можно теперь сделать в пару кликов мыши.

— Добавлено автоматическое создание TV для типов цен при включении соответствующей настройки, как это было сделано для свойств товаров.

— Практически полностью переработан код дополнения.

— Убрана поддержка устаревшего протокола обмена с сервисом МойСклад. Если вы хотите синхронизироваться с этим сервисом по его собственному новому протоколу (не CommerceML), используйте дополнение SyncMoySklad. Синхронизация с сервисами Класс365 и МойСклад по-прежнему поддерживается через протокол CommerceML.

— Убрано ограничение по загрузке каталога в корень сайта.

— Написана документация на docs.modx.pro

— Другие мелкие фиксы ошибок и исправления логики.

Дополнение скоро будет доступно в магазине modstore.pro

modx.pro

Установка / mSync / Компоненты / docs.modx.pro

Требования.

Для установки необходимо наличие miniShop2. На сервере php 5.3.0 или выше с поддержкой модулей XML (SimpleXML, XMLReader, XMLWriter).

Установка

Установка производится через установщик транспортных пакетов. При установке создается пространство имен mSync, в которое записываются системные настройки и плагины компонента. Так же создается несколько таблиц в БД с префиксом "msync_".

Деинсталяция

При удалении все системные настройки и плагины из пространства msync, а так же таблицы с префиксом msync_, автоматически удалятся.

Авторизация

Если не срабатывает авторизация, для FastCGI создайте файл .htaccess в папке /assets/components/msklad/ и добавьте в него следующие строки:

RewriteEngine On RewriteCond %{HTTP:Authorization} !^$ RewriteRule ^(.*)$ $1?http_auth=%{HTTP:Authorization} [QSA]

Так же может помочь, если прописать в .htaccess в корне сайта следующий код:

SetEnvIf Authorization .+ HTTP_AUTHORIZATION=

Первоначальная настройка для работы с CommerceML 2

Желательно перед установкой компонента иметь уже созданную и пустую «Категорию с товарами» компонента miniShop2.

Необходимо, чтобы были заполнены следующие системные настройки: «Id категории каталога (msync_catalog_root_id)», «Шаблон по умолчанию для новых категорий (msync_template_category_default)» и «Шаблон по умолчанию для новых товаров (msync_template_product_default)».

Переходим в компонент и открываем вкладку «Реквизиты синхронизации».

Переписываем параметры в 1с или сервис. Логин и пароль можно задать самостоятельно, через системные настройки. В 1с «Администрирование» -> «Синхронизация данных» -> «Узлы обмена с сайтами»

Для правильной работы синхронизации, чтобы не было перебоев во время работы, желательно в сестемных настройках параметр «Лимит выполнения» (msync_time_limit) сделать на пару секунд меньше чем лимит выполнения скриптов на сайте.

docs.modx.pro

Интерфейс / mSync / Компоненты / docs.modx.pro

Настройка импорта свойств

Настройка свойств осуществляется в разделе Компоненты - mSync - Настройка импорта свойств.

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

Здесь мы настраиваем, какие характеристики товаров нам нужно импортировать. Добавляем новую связь или редактируем существующую.

Источник - имя свойства в XML товаров.

Тип поля - поле minishop или TV.

Цель - имя поля в minishop или название TV.

Активный - включен ли импорт этого поля в данный момент.

Реквизиты синхронизации

В данном разделе выведена информация о текущем адресе, логине и пароле для синхронизации, которые нужно скопировать в настройки CommerceML-синхронизации, а так же время последней выгрузки. Изменить логин и пароль можно в системных настройках в разделе msync.

Синхронизация справочника товаров

Выгрузка товаров в CSV

Компонент предоставляет выгрузку товаров в формате csv. По умолчанию за одно выполнение скрипта выгружается 500 товаров. В процессе выгрузки сообщается стадия прогресса выгрузки. Если на вашем хостинге не успевает выгрузиться столько товаров, то есть возможность уменьшить это количество в поле "Максимум товаров за раз". Можно и увеличить, если хостинг позволяет, но это не рекомендуется.

Ручной импорт товаров

В этом разделе вы можете загрузить товары без участия 1С. Для этого нужно указать имена файлов каталога и торговых предложений (по умолчанию import.xml и offers.xml или в некоторых редакциях import_01.xml и offers_01.xml). Далее с помощью кнопки "Загрузить файлы" загрузить эти файлы и файлы картинок на сайт. Они загружаются в папку assets/components/msync/1c_temp. После нажатия кнопки "Ручной импорт" запустится процесс импорта товаров и предложений из данных файлов в minishop. Прогресс процесса будет выводиться на экран.

Выгрузка XML заказов

Кнопка "Показать XML заказов" позволяет скачать XML-файл, формирующийся для отправки в CommerceML-систему. Функция позволяет проверить корректность выгрузки.

docs.modx.pro

Установка / mSync / Компоненты / docs.modx.pro

Требования.

Для установки необходимо наличие miniShop2. На сервере php 5.3.0 или выше с поддержкой модулей XML (SimpleXML, XMLReader, XMLWriter).

Установка

Установка производится через установщик транспортных пакетов. При установке создается пространство имен mSync, в которое записываются системные настройки и плагины компонента. Так же создается несколько таблиц в БД с префиксом "msync_".

Деинсталяция

При удалении все системные настройки и плагины из пространства msync, а так же таблицы с префиксом msync_, автоматически удалятся.

Авторизация

Если не срабатывает авторизация, для FastCGI создайте файл .htaccess в папке /assets/components/msklad/ и добавьте в него следующие строки:

RewriteEngine On RewriteCond %{HTTP:Authorization} !^$ RewriteRule ^(.*)$ $1?http_auth=%{HTTP:Authorization} [QSA]

Так же может помочь, если прописать в .htaccess в корне сайта следующий код:

SetEnvIf Authorization .+ HTTP_AUTHORIZATION=

Первоначальная настройка для работы с CommerceML 2

Желательно перед установкой компонента иметь уже созданную и пустую «Категорию с товарами» компонента miniShop2.

Необходимо, чтобы были заполнены следующие системные настройки: «Id категории каталога (msync_catalog_root_id)», «Шаблон по умолчанию для новых категорий (msync_template_category_default)» и «Шаблон по умолчанию для новых товаров (msync_template_product_default)».

Переходим в компонент и открываем вкладку «Реквизиты синхронизации».

Переписываем параметры в 1с или сервис. Логин и пароль можно задать самостоятельно, через системные настройки. В 1с «Администрирование» -> «Синхронизация данных» -> «Узлы обмена с сайтами»

Для правильной работы синхронизации, чтобы не было перебоев во время работы, желательно в сестемных настройках параметр «Лимит выполнения» (msync_time_limit) сделать на пару секунд меньше чем лимит выполнения скриптов на сайте.

docs.modx.pro

События и плагины / mSync / Компоненты / docs.modx.pro

Плагины

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

removeUuid

Позволяет удалить привязки свойств товаров при удалении товаров в MODX. Вызывается на событие OnBeforeEmptyTrash.

События

mSyncOnProductImport

Вызывается при обработке каждой категории и каждого товара в файле товаров после создания или обновления товара или категории.

Параметр Значение Описание
$mode Строка "category" или "product" Тип объекта, обрабатываемого в данный момент
$resource Объект msCategory или msProduct Объект минишопа, созданный или обновленный в данный момент
$properties array Массив свойств товара, извлеченных из XML, пустой для категории.
$data Объект mSyncCategoryData или mSyncProductData Объект привязки категории или товара 1С к объектам минишопа

mSyncOnProductOffers

Вызывается после обработки одного торгового предложения.

Параметр Значение Описание
$resource Объект msProduct Объект товара минишопа, обновленный данным торговым предложением
$xml SimpleXMLElement Объект XML, содержащий торговое предложение

mSyncOnCsvExport

Вызывается при добавлении каждого товара в выгрузку в формате CSV. Позволяет настроить ее под свои нужды.

Параметр Значение Описание
$fields array Массив полей товара, где ключ - поле товара (имя столбца CSV), а значение - значение данного поля.
$product Объект msProduct Объект товара минишопа, обрабатываемый в данный момент
$filename Строка Имя файла выгрузки
$start Число Номер первого товара в текущей итерации выгрузки
$export Объект mSyncExportPrepareProcessor Процессор выгрузки

mSyncOnBeforeImport

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

Параметр Значение Описание
$mode Строка "catalog" или "offers" Указывает начата обработка каталога товаров или списка торговых предложений
$filename Строка Имя файла

mSyncOnBeforeImportCategory

Вызывается перед сохранением в БД временных данных категории

Параметр Значение Описание
xml SimpleXmlElement Объект XML с данными Группы (категории)
$data array Массив полей, которые можно менять в плагине: 'name' - имя категории, 'uuid' - идентификатор в 1С, 'parent_uuid' - идентификатор родительской группы в 1С
$level Число Уровень вложенности категории

mSyncOnBeforeImportProduct

Вызывается перед сохранением в БД временных данных товара

Параметр Значение Описание
xml SimpleXmlElement Объект XML с данными Товара
$data array Массив полей товара, которые можно менять в плагине: см. var_dump или исходники.

Значение параметра $data можно менять аналогично плагинам на события miniShop2, пример:

if ($modx->event->name == 'mSyncOnBeforeImportCategory') { $values = & $modx->event->returnedValues; $data['name'] .= "-test"; $values['data'] = $data; }

Данный плагин добавит строку "-test" к имени категории.

mSyncAfterImportCategories

Вызывается после того, как категории выгружены во временную таблицу из XML.

Параметр Значение Описание
$total Число Количество выгруженных категорий

mSyncAfterImportProducts

Вызывается после выгрузки всех свойств из XML во временную таблицу.

Параметр Значение Описание
$last Число Номер последнего обработанного товара.
$total Число Количество выгруженных товаров.

mSyncOnPrepareCategory

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

Параметр Значение Описание
$data Объект mSyncCategoryData Объект привязки категории 1С к категории минишопа. Может быть пуст для новой категории.
$uuid Строка Идентификатор категории в 1С.
$parent Число Идентификатор родительской категории в minishop.
$parentUuid Строка Идентификатор родительской категории в 1С.

mSyncOnPrepareProduct

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

Параметр Значение Описание
$data array Массив временных данных товара.
$parent Число Идентификатор родительской категории в minishop.
$properties array Свойства товара

mSyncAfterImportProperties

Вызывается после загрузки списка свойств товаров из XML в сессию выгрузки.

Параметр Значение Описание
$xml SimpleXmlElement Объект XML, содержащий свойства товаров.
$last Число Номер последнего обработанного свойства.
$total Число Количество найденных свойств.

mSyncAfterImport

Вызывается в конце процесса импорта каталога товаров.

Параметр Значение Описание
$totalProducts Число Количество выгруженных товаров.
$totalCategories Число Количество выгруженных категорий.
$importResources Ассоциативный массив Список идентификаторов ресурсов, затронутых в данной выгрузке, разбитый по группам следующим образом: array( 'category' => array('created' => array(), 'updated' => array()), 'product' => array('created' => array(),'updated' => array()).

mSyncOnCatalogFileImport

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

Параметр Значение Описание
$filename Строка Имя файла

mSyncOnBeforeSalesExport

Вызывается перед экспортом заказа. Позволяет добавлять новые поля в заказ.

Параметр Значение Описание
$order_ext Ассоциативный массив Список свойств товара для выгрузки
$order Объект msOrder Заказ минишопа

mSyncOnSalesExport

Вызывается перед формированием XML файла с заказами.

Параметр Значение Описание
$xml SimpleXMLElement Объект документа с заказами
$orders Массив msOrder Коллекция заказов

mSyncOnImportUnknownFile

Вызывается, если на импорт передан файл с неизвестным именем.

Параметр Значение Описание
$filename Строка Имя файла

docs.modx.pro


Prostoy-Site | Все права защищены © 2018 | Карта сайта