[msStatOrders] - Статистика заказов Minishop2 / Новая версия
[msStatOrders] — Компонент реализует возможность отбора, сортировки заказов и продуктов заказа, реализованных в магазине. Вывод подробной информации и экспорт в файл. Демо пакета
Доступна фильтрация и группировка по колонке таблицы, экспорт заказов и продуктов заказов, управление колонками таблиц, фильтрацией и тд вынесено в отдельную таблицу. Добавлен экспорт/ импорт настроек пакета.
[msStatOrders] в магазине
Как и прежде доступны вкладки с заказами и продуктами заказа.
Доступна фильтрация по отдельно взятой колонке
Доступна группировка по отдельно взятой колонке
Доступен экспандер с выводом таблицы товаров заказа
Для Экспорта раннее использовалась библиотека box/spout и был доступен формат эксель, но у многих пользователей возникали проблемы при экспорте большого кол-ва заказов и было решено от нее избавиться, так что теперь остался только формат csv, но выгружать можно больший объем заказов.
На тесте пару десятков тысяч заказов выгружал без проблем.
Вкладка с продуктами заказа аналогична вкладке Заказы, доступен тот же функционал и управление.
Теперь немного о дополнительном функционале.
Вкладка Рендеры, выводит доступные рендеры.
Что есть рендеры? Блоки кода доступные для обработки данных. Данные можно обрабатывать как в javascript, так и в php.
например вывести ссылку на продукт товара заказа.
или подсветить ячейку таблицы статусом заказа.
например вывести с таблицу заказов размер товара
Все это не зашито в пакет, а доступно для редактирования и вы можете самостоятельно редактировать текущие рендеры или создавать свои собственные.
Вкладка Связи, выводит доступные связи.
Что есть связи? Описывает связь основной таблицы с дополнительными. В дальнейшем по связям будут приджойнены нужные таблицы.
Возьмем для примера таблицу msOrderStatus
Указан алиас таблицы, местный и внешний ключ. В дальнейшем по указанным связям можно будет выбрать нужно поле для выборки.
Доступна автоматическая загрузка связей, вам нужно лишь включить необходимые. Если у вас используется какой то кастомный пакет, то можно вручную создать связь.
Вкладка Поля, выводит доступные поля для выборки.
Для выборки поля его необходимо включить и… и все! Больше никаких действий не требуется. Поле автоматически будет добавлено в выборку. Если вам необходимо какое свое поле для выборки вам можно создать его вручную.
Для поля можно указать необходимые рендеры, заголовок поля можно задать либо через лексикон если требуется мультиязычность, либо указать его напрямую у поля.
Тип фильтра — на данный момент доступны:
string — текстовое поле, возможно указать несколько значений для фильтрации через разделитель ||. Например нам нужно вывести заказы в город Ковров и Владимир — пишем в поле фильтрации «Ковров||Владимир».
Отрицание можно задать через знак!
combo — инпут с выбором единичного значения
multiselect — инпут с множественного значения
Настройки пакета
grid_order_period — Временной интервал вывода заказов. Используется для вывода фильтра дат заказов.
grid_product_period — Временной интервал вывода продуктов. Используется для вывода фильтра дат продуктов заказа.
renderer_javacript_active — Включить/ Отключить рендер javacript.
renderer_php_active — Включить/ Отключить рендер php.
tab_ms_orders_inactive — При включенной настройке отключает родную таблицу Заказы на странице заказов minishop.
tab_orders_expander — Включить/ Отключить экспандер в таблице заказов.
tab_product_orders_expander — Включить/ Отключить экспандер в таблице продуктов заказов.
Если была установлена старая версия пакета
Перед установкой новой версии необходимо деинсталлировать пакет целиком, проверьте папки старого дополнения, их надо удалить.
удалить старый плагин msStatOrders, если он остался после деинсталляции пакета.
После этих манипуляций можно устанавливать новую версию пакета.
Действия после установки
После установке перейдя на страничку пакета вы увидите пустые таблицы, не пугайтесь так оно и должно быть.
Необходимо загрузить сначала Связи, затем Поля для заказов и продуктов заказов. Загрузка доступна по кнопке — Загрузить на вкладке сущности.
Либо вы можете экспортировать текущую конфигурацию Рендеров, Связей, Полей с демо сайта и затем импортировать на свой сайт.
Если после текущих манипуляций список заказов не выводится, смотрите журнал ошибок modx. Если в нем есть информация с ошибками, то вероятно в вашей конфигурации связи или поля отличаются. Тогда вам нужно очистить связи, поля и выполнить их загрузку через кнопку Загрузить. Сначала загружаем связи, затем поля.
После по необходимости привязываем рендеры к нужным полям.
Вкратце все о текущем обновлении, подробней надеюсь изложить в документации.
Дополнение уже доступно в репозитории modstore.pro/
Всем спасибо за внимание!
Доступна фильтрация и группировка по колонке таблицы, экспорт заказов и продуктов заказов, управление колонками таблиц, фильтрацией и тд вынесено в отдельную таблицу. Добавлен экспорт/ импорт настроек пакета.
[msStatOrders] в магазине
Как и прежде доступны вкладки с заказами и продуктами заказа.
Доступна фильтрация по отдельно взятой колонке
Доступна группировка по отдельно взятой колонке
Доступен экспандер с выводом таблицы товаров заказа
Для Экспорта раннее использовалась библиотека box/spout и был доступен формат эксель, но у многих пользователей возникали проблемы при экспорте большого кол-ва заказов и было решено от нее избавиться, так что теперь остался только формат csv, но выгружать можно больший объем заказов.
На тесте пару десятков тысяч заказов выгружал без проблем.
Вкладка с продуктами заказа аналогична вкладке Заказы, доступен тот же функционал и управление.
Теперь немного о дополнительном функционале.
Вкладка Рендеры, выводит доступные рендеры.
Что есть рендеры? Блоки кода доступные для обработки данных. Данные можно обрабатывать как в javascript, так и в php.
например вывести ссылку на продукт товара заказа.
или подсветить ячейку таблицы статусом заказа.
например вывести с таблицу заказов размер товара
Все это не зашито в пакет, а доступно для редактирования и вы можете самостоятельно редактировать текущие рендеры или создавать свои собственные.
Вкладка Связи, выводит доступные связи.
Что есть связи? Описывает связь основной таблицы с дополнительными. В дальнейшем по связям будут приджойнены нужные таблицы.
Возьмем для примера таблицу msOrderStatus
Указан алиас таблицы, местный и внешний ключ. В дальнейшем по указанным связям можно будет выбрать нужно поле для выборки.
Доступна автоматическая загрузка связей, вам нужно лишь включить необходимые. Если у вас используется какой то кастомный пакет, то можно вручную создать связь.
Вкладка Поля, выводит доступные поля для выборки.
Для выборки поля его необходимо включить и… и все! Больше никаких действий не требуется. Поле автоматически будет добавлено в выборку. Если вам необходимо какое свое поле для выборки вам можно создать его вручную.
Для поля можно указать необходимые рендеры, заголовок поля можно задать либо через лексикон если требуется мультиязычность, либо указать его напрямую у поля.
Тип фильтра — на данный момент доступны:
string — текстовое поле, возможно указать несколько значений для фильтрации через разделитель ||. Например нам нужно вывести заказы в город Ковров и Владимир — пишем в поле фильтрации «Ковров||Владимир».
Отрицание можно задать через знак!
combo — инпут с выбором единичного значения
multiselect — инпут с множественного значения
Настройки пакета
grid_order_period — Временной интервал вывода заказов. Используется для вывода фильтра дат заказов.
grid_product_period — Временной интервал вывода продуктов. Используется для вывода фильтра дат продуктов заказа.
renderer_javacript_active — Включить/ Отключить рендер javacript.
renderer_php_active — Включить/ Отключить рендер php.
tab_ms_orders_inactive — При включенной настройке отключает родную таблицу Заказы на странице заказов minishop.
tab_orders_expander — Включить/ Отключить экспандер в таблице заказов.
tab_product_orders_expander — Включить/ Отключить экспандер в таблице продуктов заказов.
Если была установлена старая версия пакета
Перед установкой новой версии необходимо деинсталлировать пакет целиком, проверьте папки старого дополнения, их надо удалить.
core/components/msstatorders
assets/components/msstatorders
запись в extension_packages удалить либо руками, либо через $modx->removeExtensionPackage('msstatorders');
удалить старые настройки пакета из раздела msstatordersудалить старый плагин msStatOrders, если он остался после деинсталляции пакета.
После этих манипуляций можно устанавливать новую версию пакета.
Действия после установки
После установке перейдя на страничку пакета вы увидите пустые таблицы, не пугайтесь так оно и должно быть.
Необходимо загрузить сначала Связи, затем Поля для заказов и продуктов заказов. Загрузка доступна по кнопке — Загрузить на вкладке сущности.
Либо вы можете экспортировать текущую конфигурацию Рендеров, Связей, Полей с демо сайта и затем импортировать на свой сайт.
Если после текущих манипуляций список заказов не выводится, смотрите журнал ошибок modx. Если в нем есть информация с ошибками, то вероятно в вашей конфигурации связи или поля отличаются. Тогда вам нужно очистить связи, поля и выполнить их загрузку через кнопку Загрузить. Сначала загружаем связи, затем поля.
После по необходимости привязываем рендеры к нужным полям.
Вкратце все о текущем обновлении, подробней надеюсь изложить в документации.
Дополнение уже доступно в репозитории modstore.pro/
Всем спасибо за внимание!
Поблагодарить автора
Отправить деньги
Комментарии: 40
Выглядит шикарно, ты молодец
Рад что оценил!) Спасибо.
Ошибка: Невозможно установить пакет с подписью: msstatorders-2.1.0-pl
Modx 2.8.6, PHP 7.4, Minishop 4.3.0
xPDOObject::fromJSON() -- Could not convert jsonSource to a PHP array.
Error saving vehicle object of class modCategory; criteria: Array ( [category] => )
Vehicle e5b51c56af929be4826b934652e51122 in transport msstatorders-2.1.0-pl failed to install and indicated the process should be aborted.
Невозможно установить пакет с подписью: msstatorders-2.1.0-pl
Старый удалил.Modx 2.8.6, PHP 7.4, Minishop 4.3.0
Подозреваю что это из-за передачи ключа, на старом сайте не могу деинсталлировать тоже дополнение
Такая же ошибка. Не ставится.
xPDOObject::fromJSON() -- Could not convert jsonSource to a PHP array.
Error saving vehicle object of class modCategory; criteria: Array ( [category] => )
Vehicle e5b51c56af929be4826b934652e51122 in transport msstatorders-2.1.0-pl failed to install and indicated the process should be aborted.
Невозможно установить пакет с подписью: msstatorders-2.1.0-pl
Кодировка в бд какая?
У каких то таблиц utf8mb4_general_ci, у других utf8_general_ci.
Сама БД utf8_general_ci
Сама БД utf8_general_ci
Можешь в телегу написать @vgrish_vgrish по поводу ошибки. Спасибо.
Все установилось. Дополнение огонь!
Добавление своих полей в таблицу например промо-кодов, которые применили к заказу очень круто сделаны! Все автоматизировано, только галочки проставить)))
Добавление своих полей в таблицу например промо-кодов, которые применили к заказу очень круто сделаны! Все автоматизировано, только галочки проставить)))
Рад что оценил!) Спасибо.
Принято, что нибудь придумаю для форматирования.
Та же ошибка, попереустанавливал с чистками кэшей, не установилась. кодировки такие же
utf8mb4_general_ci, utf8_general_ci
utf8mb4_general_ci, utf8_general_ci
Кодировка в бд какая?
utf8_general_ci
Можешь в телегу написать @vgrish_vgrish по поводу ошибки. Спасибо.
Пакет установился, буду разбираться — много всего нового
Отлично, будут вопросы — обращайтесь!
Инсталлятор пакета поправлен — теперь должен корректно устанавливаться у всех.
Добрый день!
Вопрос, возник, никак не получается добавить артикул товара во вкладке продукты. В полях по умолчанию нет поля артикул для выбора. Как его добавить?
Вопрос, возник, никак не получается добавить артикул товара во вкладке продукты. В полях по умолчанию нет поля артикул для выбора. Как его добавить?
Супер. Сработало. Все выводится.
А еще вопрос такой, только не ругайтесь, пожалуйста)
Как вывести выбранный размер товара в заказе?
А еще вопрос такой, только не ругайтесь, пожалуйста)
Как вывести выбранный размер товара в заказе?
А еще вопрос такой, только не ругайтесь, пожалуйста)Я что так пугающе пишу или у меня буквы страшные? )
Как вывести выбранный размер товара в заказе?надо прежде уточнить где вывести?
Я что так пугающе пишу или у меня буквы страшные? )Ну я же дергаю с простыми вопросами, поэтому заранее извиняюсь, что отвлекаю)))
надо прежде уточнить где вывести?Во вкладке Продукты
поставить пробел?
Пробовал, тогда вообще не выводятся товары во вкладке Продукты
Нет, вру. Заработало, хорошо почистил кеш и помогло. Спасибо вам огромное!
Пожалуйста, обращайтесь.
Добрый день!
На сайте используем дополнение utmMark, оно пишет данные utm меток в формате json в поле properties заказа.
Помогите пожалуйста, как вывести поле properties в читаемом виде?
По умолчанию выводит [object Object]
На сайте используем дополнение utmMark, оно пишет данные utm меток в формате json в поле properties заказа.
Помогите пожалуйста, как вывести поле properties в читаемом виде?
По умолчанию выводит [object Object]
Доброе утро.
Добавьте выборку поля Order.properties
добавьте рендер
добавьте поле
Должно работать, если не получится — пишите в ТП.
Добавьте выборку поля Order.properties
добавьте рендер
<?php
/** @var modX $modx */
/** @var array $row */
$utm= '';
if (!empty($row['Order.properties'])) {
$utm = $row['Order.properties']['utm']; // тут берете нужное поле из массива properties
}
return $utm;
добавьте поле
Должно работать, если не получится — пишите в ТП.
Не заработало, выводит "{" и ошибки в логах вида:
Рендер
В ТП к сожалению не могу написать, прошло больше года после покупки дополнения.
PHP warning: Illegal string offset 'utm_source'Скрин
Рендер
<?php
/** @var modX $modx */
/** @var array $row */
$utm= '';
if (!empty($row['Order.properties'])) {
$utm = $row['Order.properties']['utm_source']; // тут берете нужное поле из массива properties
}
return $utm;
В ТП к сожалению не могу написать, прошло больше года после покупки дополнения.
<?php
/** @var modX $modx */
/** @var array $row */
$utm= '';
if (!empty($row['Order.properties'])) {
$properties = json_decode($row['Order.properties'], true);
$utm = $properties['utm_source'] ?? ''; // тут берете нужное поле из массива properties
}
return $utm;
Разобрался, благодаря вам!
Эти данные надо вынимать из msOrderAddress, а не из msOrder.
Получается надо сделать так:
1) Добавляем выборку поля Address.properties
2) Добавляем рендер
3) Добавляем поле
Теперь выводится поле utm_campaign в заказах. Изначально я пытался вывести utm_source, оно делается аналогично.
Еще раз убедился на практике в большом потенциале дополнения msStatOrders. Благодарю автора!
Эти данные надо вынимать из msOrderAddress, а не из msOrder.
Получается надо сделать так:
1) Добавляем выборку поля Address.properties
2) Добавляем рендер
<?php
/** @var modX $modx */
/** @var array $row */
$utm= '';
if (!empty($row['Address.properties'])) {
$properties = json_decode($row['Address.properties'], true);
$utm = $properties['utm_campaign'] ?: '';
}
return $utm;
3) Добавляем поле
Теперь выводится поле utm_campaign в заказах. Изначально я пытался вывести utm_source, оно делается аналогично.
Еще раз убедился на практике в большом потенциале дополнения msStatOrders. Благодарю автора!
Единственное не работает Группировка и Сортировка по этому полю((((
Естественно сортировка и группировка по мнимым полям не работает)
Разобрался, благодаря вам!Отлично!
Эти данные надо вынимать из msOrderAddress, а не из msOrder.ну значит пакет пишет не пропертис заказа, а в пропертис адреса заказа.
Еще раз убедился на практике в большом потенциале дополнения msStatOrders. Благодарю автора!Пожалуйста, обращайтесь!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.