События и плагины. Modx msync
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_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 | — | Идентификатор статуса заказа, устанавливаемый вместо статуса "Новый" обработанным заказам. |
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/ и добавьте в него следующие строки:
Так же может помочь, если прописать в .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