msPriceList - Управление прайс-листами minishop2
Экспорт прайс-листов в XLSX с неограниченным количеством категорий и товаров.
Компонент умеет создавать прайс-листы в формате XLSX с категориями и товарами с поддержкой многоуровневого древовидной навигацией по файлу. Можно создавать сколько угодно прайс-листов и давать их скачивать пользователями.
По умолчанию будет создан прайс-лист с нужными настройками. Вам необходимо указать только id категори или категорий через запятую.
Для начала работы необходимо зайти в раздел компонента
Выбрать редактирование и указать id родительской категории
Выбрать Экспортировать прайс-лист и дождаться пока консоль не вернет ссылку на ваш прайс-лист.
После этого скачиваем прайс-лист.
Для вывода прайс-листов на фронтенд необходимо в любом месте на сайте разместить сниппет msPriceList
Можно добавлять новые колонки как со значениями из полей с товаров так и свободных колонок (например колонка заказ, для того чтобы заказчик мог указать количество заказываемых товаров).
Возможности:
Возможность задавать настройки на странице с компонентом.
Идея сделать такой прайс-лист уже давно была, так как когда то со своим другом(программистом по 1С) делали сайт в связке с 1С, и так же он сделал чтобы формировался прайс-лист подобного формата и ежедневно отправлялся на сайт. Вывели ссылку на файл в шапке для того чтобы клиенты могли скачивать и видеть наличие товаров на складах и делать заказы, с последующей отправкой на email.
В 1С с формированием прайс-листов вообще как таковой проблемы нету, а вот на сайтах с этим проблема...
Добавлены события для добавления своих данных и управления стилями прайс-листов.
Событие msPriceListAfterSetStyle
Добавление стилей для колонки или только для одной ячейки
Событие msPriceListBeforeSetLogo
Установка координат или других параметров для логотипа в прайс-листе
Событие msPriceListBeforeSetText
Установка стилей для текста
Событие msPriceListBeforeSetTextPrice
Установка стилей для даты формирования прайс-листа
Стоимость компонента 1790 руб.
https://modstore.pro/packages/import-and-export/mspricelist
Компонент умеет создавать прайс-листы в формате 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]] руб.';
- Выделить текст жирным
Настройки
Возможность задавать настройки на странице с компонентом.
- Можно добавить свой логотип и задать ему размер и расположения логотипа в файле
- добавлять текст — при добавлении учитывается перенос. Каждый перенос это следующая строка. Можно задать колонку куда будет помещаться текст или вообще можно отключить вывод
- добавлять дату формирования прайс-листа — назначение ячейки куда запишется дата
- Цвета для категорий — можно задать свой цвет для уровней категорий
Идея сделать такой прайс-лист уже давно была, так как когда то со своим другом(программистом по 1С) делали сайт в связке с 1С, и так же он сделал чтобы формировался прайс-лист подобного формата и ежедневно отправлялся на сайт. Вывели ссылку на файл в шапке для того чтобы клиенты могли скачивать и видеть наличие товаров на складах и делать заказы, с последующей отправкой на email.
В 1С с формированием прайс-листов вообще как таковой проблемы нету, а вот на сайтах с этим проблема...
События для плагинов
Добавлены события для добавления своих данных и управления стилями прайс-листов.
Событие 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);
Стоимость компонента 1790 руб.
https://modstore.pro/packages/import-and-export/mspricelist
Поблагодарить автора
Отправить деньги
Комментарии: 10
Красота-то какая! Лойс, респектос, все дела
Андрей, ты просто нескончаемый генератор идей, как у тебя это получается? Делись секретами :D
Дополнение крутое, молодец :)
Дополнение крутое, молодец :)
Дак яж в статье написал как))
А так вообще экспериментами. Вот взять компонент ExportUser, вбухал кучу времени) а толку нету (только экспириенс)) за исключением msExportOrdesExecel, в нем хоть какую то задачу удалось решить.
Да собственно вообще возможность многоуровневой навигации в виде дерева в первые в нем реализовал.
В общем без этих двух компонентов не получилось бы сделать этот))
А так вообще экспериментами. Вот взять компонент ExportUser, вбухал кучу времени) а толку нету (только экспириенс)) за исключением msExportOrdesExecel, в нем хоть какую то задачу удалось решить.
Да собственно вообще возможность многоуровневой навигации в виде дерева в первые в нем реализовал.
В общем без этих двух компонентов не получилось бы сделать этот))
Хотя вру, ещё часть функционал взята из scannerModx — консоль процесса экспорта
Рутины много, думаю что в большинстве случаев это и сдерживает на придумывания каких то идей.
В помощь приходят другие компоненты:
siteDev — там вообще фэншуй для создания компонентов
msDemoData — в примере этого компонента как раз и есть товары от туда
Ну и естественно miniShop2, pdoTools
В общем без юзанья всего этого, сложновато как то заниматься разработкой компонентов
Рутины много, думаю что в большинстве случаев это и сдерживает на придумывания каких то идей.
В помощь приходят другие компоненты:
siteDev — там вообще фэншуй для создания компонентов
msDemoData — в примере этого компонента как раз и есть товары от туда
Ну и естественно miniShop2, pdoTools
В общем без юзанья всего этого, сложновато как то заниматься разработкой компонентов
Я постоянно сталкиваюсь с задачами, решаю их и думаю, блин а как же круто было написать дополнение на основе этого, а потом смотрю, уже это придумали давным — давно. Единственное на что меня хватает, так это на какие-то готовые мини решения, которые я здесь публикую. А вообще я восхищаюсь, штамповать такое количество дополнение почти каждую неделю, это еще нужно постараться, респект, короче, есть на кого равняться :)
Генерация excel файла по средствам phpspreadsheet?
"phpoffice/phpexcel": "1.8.2"
Привет, посмотри вопрос по твоему компоненту. Вот здесь
Андрей, планируется функционал сортировки? Вот сейчас задача встала, чтобы после создания файла данные в файле были отсортированы по имени
Подскажите пожалуйста, есть ли возможность чтобы наименования товаров в прайсе были ссылками, ведущими на карточки товаров?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.