3590
47.24
51.29
за сайт
- Проверено Modstore
- Бесплатные будущие обновления
- Работа на тестовом и публичном домене
- 12 месяцев тех. поддержки
Экспорт прайс-листов в XLSX с неограниченным количеством категорий и товаров.
Компонент умеет создавать прайс-листы в формате XLSX с категориями и товарами с поддержкой многоуровневого древовидной навигацией по файлу. Можно создавать сколько угодно прайс-листов и давать их скачивать пользователями.

По умолчанию будет создан прайс-лист с нужными настройками. Вам необходимо указать только id категори или категорий через запятую.
Для начала работы необходимо зайти в раздел компонента

Выбрать редактирование и указать id родительской категории

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

Для вывода прайс-листов на фронтенд необходимо в любом месте на сайте разместить сниппет msPriceList

Можно добавлять новые колонки как со значениями из полей с товаров так и свободных колонок (например колонка заказ, для того чтобы заказчик мог указать количество заказываемых товаров).
Возможности:
Возможность задавать настройки на странице с компонентом.
Добавлены события для добавления своих данных и управления стилями прайс-листов.
Событие msPriceListAfterSetStyle
Добавление стилей для колонки или только для одной ячейки
Событие msPriceListBeforeSetLogo
Установка координат или других параметров для логотипа в прайс-листе
Событие msPriceListBeforeSetText
Установка стилей для текста
Событие msPriceListBeforeSetTextPrice
Установка стилей для даты формирования прайс-листа
Событие msPriceListBeforeSetColumn
Форматирование значений для прайс листа
Компонент умеет создавать прайс-листы в формате XLSX с категориями и товарами с поддержкой многоуровневого древовидной навигацией по файлу. Можно создавать сколько угодно прайс-листов и давать их скачивать пользователями.

Пример выгрузка всех категорий
Каталог.xlsxПример выгрузка нескольких категорий
Электронные товары и Телефония.xlsxВозможности
- Создание неограниченное количество прайс-листов
- Многоуровневая навигация в файле XLSX
- Добавление своего логотипа в файле XLSX
- Добавление контактной информации в файле XLSX
- Добавление даты формирования прайс-листа в файле XLSX
- Управление колонками в xlsx файле. Возможно передвигать, задавать названия, создание свободных колонок
- Вывод сниппета на сайте для скачивания для пользователе.
- Возможность задать имя для файла в чанке для вывода прайс-листов
- Поддержка огромных каталогов, так как выгрузка происходит пакетно, можно выгрузить до 100 000 категорий и товаров
- Плагины и события для управления стилями и данными для выгрузки
- Возможно задать отступы от верхней части, возможность отключить или включить: логотип, текст в шапке, дату формирования прайс-листа, наименование колонок
- Установка крон заданий
- Быстрый старт, вам нужно будет установить только id родительской категории для выгрузки
Быстрый старт
По умолчанию будет создан прайс-лист с нужными настройками. Вам необходимо указать только id категори или категорий через запятую.
Для начала работы необходимо зайти в раздел компонента

Выбрать редактирование и указать id родительской категории

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

Сниппет msPriceList
Для вывода прайс-листов на фронтенд необходимо в любом месте на сайте разместить сниппет msPriceList
{$modx->runSnippet('msPriceList')}
Настройка колонок
Можно добавлять новые колонки как со значениями из полей с товаров так и свободных колонок (например колонка заказ, для того чтобы заказчик мог указать количество заказываемых товаров).
Возможности:
- Наименование колонки
- Системное имя для колонки
- Поля со значением — ключ поля из msProduct (например price, old_price)
- Задать ширину колонки
- Задать расположения текста: Выравнивание по горизонтали, Выравнивание по вертикали
- Установка ключа для словарей, так можно добавить дополнительное значение в ячейку:
вернет 54 руб.$_lang['mspricelist_price_currency'] = '[[+value]] руб.'; - Выделить текст жирным
Настройки
Возможность задавать настройки на странице с компонентом.
- Можно добавить свой логотип и задать ему размер и расположения логотипа в файле
- добавлять текст — при добавлении учитывается перенос. Каждый перенос это следующая строка. Можно задать колонку куда будет помещаться текст или вообще можно отключить вывод
- добавлять дату формирования прайс-листа — назначение ячейки куда запишется дата
- Цвета для категорий — можно задать свой цвет для уровней категорий
События для плагинов
Добавлены события для добавления своих данных и управления стилями прайс-листов.
Событие msPriceListAfterSetStyle
Добавление стилей для колонки или только для одной ячейки
<?php
/* @var PHPExcel_Style $style */
/* @var array $resource */
/* @var string $column_key */
if ($resource['class_key'] == 'msProduct' and $column_key == 'price') {
if ($object = $modx->getObject('msProductData', $resource['id'])) {
if ($object->get('new')) {
$style->getFont()->setBold(true);
}
}
}Событие msPriceListBeforeSetLogo
Установка координат или других параметров для логотипа в прайс-листе
<?php
/* @var PHPExcel_Worksheet_Drawing $objDrawing */
$objDrawing->setName('Торговые технологии'); // Имя сайта
$objDrawing->setDescription('Текст'); // Описание для логотипа
$objDrawing->setPath('/home/s10000/www/inc/images/logo.png'); // Полный путь на сайте к логотипу
$objDrawing->setCoordinates('A1'); // в какую ячейку вставить
//setOffsetX works properly
$objDrawing->setOffsetX(15); // отступ с верху
$objDrawing->setOffsetY(15); // отступ с боку
//set width, height
$objDrawing->setWidth(400); // ширина логотипа
$objDrawing->setHeight(83); // Высота логотипаСобытие msPriceListBeforeSetText
Установка стилей для текста
<?php
/* @var PHPExcel_Style $style */
$style->getFont()->setBold(true);Событие msPriceListBeforeSetTextPrice
Установка стилей для даты формирования прайс-листа
<?php
/* @var PHPExcel_Style $style */
$style->getFont()->setBold(true);Событие msPriceListBeforeSetColumn
Форматирование значений для прайс листа
// Запись значений колонок
$response = $this->invokeEvent('msPriceListBeforeSetColumn', array(
'column' => $column,
'resource' => $resource,
));
if (!$response['success']) {
return $response['message'];
}
$column = $response['data']['column'];
// Запись значений колонок
$column_key = $column['column_key'];
$column_field = $column['column_field'];
$column_value = $column['column_value'];
$column_horizontal = $column['column_horizontal'];
$column_vertical = $column['column_vertical'];
$column_bold = $column['column_bold'];
$column_lexicon = $column['column_lexicon'];создаем плагин с событием /** @var modX $modx */
switch ($modx->event->name) {
case 'msPriceListBeforeSetColumn':
/** @var array $scriptProperties */
/* @var array $column */
$resource = $scriptProperties['resource'];
$colump = $scriptProperties['column'];
if ($colump['column_field'] == 'color') {
$column['column_field'] = '';
$column['column_value'] = !empty($resource['color']) ? implode(',',$resource['color']) : '';
$modx->event->returnedValues['column'] = $column;
}
break;
} 1.0.2-beta
- Исправлен баг с родительской категорией


Последние обсуждения в сообществе MODX.pro