Разработать плагин для Webasyst для генерации PDF и DOCX
3 000 руб. за проект
•
безналичный расчёт
1. Создать плагин магазина Shopscript на базе CMS Webasyst (https://developers.webasyst.ru/docs/cookbook/pl...).
суть плагина заключается в генерации html с описанием товаров в pdf и docx. Можно сгенерировать скелет плагина через консоль (https://developers.webasyst.ru/docs/features/co...).
2. Необходимо генерировать оглавление, содержащее перечень товаров с номерами страниц и собственно страницы с описанием товаров. Т.к. до раздела с товарами в каталоге имеется другая статичная информация, нумерация страниц с товарами должна начинаться с 12й, причем если оглавление занимает более 1 страницы, то с 12 + n, где n — количество страниц оглавления - 1. Название подкатегории товара должна находиться на изображении, как показано в примере в прикрепленном файле (ЕСТЕСТВЕННОНАУЧНЫЕ ДИСЦИПЛИНЫ).
3. Генерация каталога будет происходить по крону, поэтому необходимо написать экшен для вызова из сli в соответствии с инстукцией: раздел "Действия по расписанию" (https://developers.webasyst.ru/docs/cookbook/pl...). При вызове экшена через cli происходит сбор данных по товару.
4. Генерируемый файл должен располагаться по пути wa-data/public/shop/catalog/
5. Для генерации docx реомендуетя использовать phpoffice/phpword. Для генерации pdf — dompdf/dompdf
6. Для получения библиотек рекомендуется использовать composer прямо в корне.
7. Для плагина рекомендуется использовать имя procatalog.
8. Вспомогательная информация:
Принцип получения товаров следующий:
1. Инстанцируешь модель категории shopCategoryModel
2. Получаешь дочерние категории.
3. Инстанцируешь shopCategoryProductsModel
4. Получаешь id тоавров
5. Инстанцируешь shopProductModel
6. Получаешь объект товара.
Данные необходимые для страницы товара:
1. Название товара — $product.name,
2. Бренд — $product.params.brand_name (Бренд — тоже самое что и основная категория товара, только в единственном числе, например виртуальнЫЕ лабораторИИ/виртуальнаЯ лабораториЯ). Можно получить (new shopProductParamsModel())->get($productId)['brand_name'];
3. Перечень лабораторных работ. Можно получить следующим образом:
$pagesModel = new shopProductPagesModel();
$pages = $pagesModel->getByField('product_id', $productId, true);
$pageId = array_search('tz', array_column($pages, 'url'));
$result = $pageId !== false ? $pages[$pageId]['content'] : false;
4. Изображения (ничиная со второй картинки). Аналогично через модель shopProductImagesModel
Пример работы phpoffice/phpword можно посмотреть в плагине wa-apps/shop/plugins/prospectech
Пример работы dompdf/dompdf можно посмотреть в плагине wa-apps/shop/plugins/proprintcontrol
9. Порядок работы следующий: я предоставляю доступ к репозиторию, вы делаете pull request, я делаю код-ревью, тестирование, если обнаружатся баги, устраняете их, получаете оплату.
суть плагина заключается в генерации html с описанием товаров в pdf и docx. Можно сгенерировать скелет плагина через консоль (https://developers.webasyst.ru/docs/features/co...).
2. Необходимо генерировать оглавление, содержащее перечень товаров с номерами страниц и собственно страницы с описанием товаров. Т.к. до раздела с товарами в каталоге имеется другая статичная информация, нумерация страниц с товарами должна начинаться с 12й, причем если оглавление занимает более 1 страницы, то с 12 + n, где n — количество страниц оглавления - 1. Название подкатегории товара должна находиться на изображении, как показано в примере в прикрепленном файле (ЕСТЕСТВЕННОНАУЧНЫЕ ДИСЦИПЛИНЫ).
3. Генерация каталога будет происходить по крону, поэтому необходимо написать экшен для вызова из сli в соответствии с инстукцией: раздел "Действия по расписанию" (https://developers.webasyst.ru/docs/cookbook/pl...). При вызове экшена через cli происходит сбор данных по товару.
4. Генерируемый файл должен располагаться по пути wa-data/public/shop/catalog/
5. Для генерации docx реомендуетя использовать phpoffice/phpword. Для генерации pdf — dompdf/dompdf
6. Для получения библиотек рекомендуется использовать composer прямо в корне.
7. Для плагина рекомендуется использовать имя procatalog.
8. Вспомогательная информация:
Принцип получения товаров следующий:
1. Инстанцируешь модель категории shopCategoryModel
2. Получаешь дочерние категории.
3. Инстанцируешь shopCategoryProductsModel
4. Получаешь id тоавров
5. Инстанцируешь shopProductModel
6. Получаешь объект товара.
Данные необходимые для страницы товара:
1. Название товара — $product.name,
2. Бренд — $product.params.brand_name (Бренд — тоже самое что и основная категория товара, только в единственном числе, например виртуальнЫЕ лабораторИИ/виртуальнаЯ лабораториЯ). Можно получить (new shopProductParamsModel())->get($productId)['brand_name'];
3. Перечень лабораторных работ. Можно получить следующим образом:
$pagesModel = new shopProductPagesModel();
$pages = $pagesModel->getByField('product_id', $productId, true);
$pageId = array_search('tz', array_column($pages, 'url'));
$result = $pageId !== false ? $pages[$pageId]['content'] : false;
4. Изображения (ничиная со второй картинки). Аналогично через модель shopProductImagesModel
Пример работы phpoffice/phpword можно посмотреть в плагине wa-apps/shop/plugins/prospectech
Пример работы dompdf/dompdf можно посмотреть в плагине wa-apps/shop/plugins/proprintcontrol
9. Порядок работы следующий: я предоставляю доступ к репозиторию, вы делаете pull request, я делаю код-ревью, тестирование, если обнаружатся баги, устраняете их, получаете оплату.
- Файлы
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.