Компонент предназначен для подготовки и вывода документов с информацией о заказах в формате pdf удобном для распечатки. Полезен, если нужно напечатать, к примеру счет-фактуру или наряд курьеру на доставку заказанной продукции. Компонент позволяет пользователю самостоятельно настроить шаблоны документов, указать необходимые данные, которые можно будет использовать во всех шаблонах (к прмеру название компании, ИНН или имя бухгалтера). Основной особенностью OrderPrint является то, что он умеет работать как с MiniShop2, так и с Shopkeeper. Переключить тип магазина можно в настройках системы (по умолчанию компонент настроен на MiniShop2, и при переключении стандартные шаблоны документов нужно будет немного изменить для правильного вывода документов).
###Основные особенности:
- возможность работать как с MiniShop2, так и с Shopkeeper
- "из коробки" доступно 4 распространенных типа документов (счет-фактура, счет, заявка на склад и наряд курьеру настроенных под MiniShop2, для использования с ShopKeeper нужно будет заменить плейсхолдеры в шаблонах)
- возможность добавлять не ограниченное количество документов
- возможность добавлять свои параметры для вывода в документах (например название компании)
- использование для шаблонизации документов обычные и привычные механизмы MODX - чанки
- для каждого документа Вы можете назначить 2 чанка: шаблон всего документа и шаблон строки с информацией о товаре из заказа, кроме того можно указать ориентацию листа при печати (альбомная или книжная) и поля (отступы)
- любой документ можно сделать доступным для пользователей сайта, и дать им возможность распечатывать такие документы прямо из личного кабинета (по большому счету хоть с главной, где вызовите сниппет, там и будут ссылки на печать)
- позволяет печатать только свои заказы. Возможность полного доступа есть только у членов группы "Администраторы"
- для формирования PDF используется библиотека TCPDF
- "из коробки" доступны только основные шрифты, при необходимости использовать шрифт, который не включен в пакет, Вы можете скачать архив со всеми доступными шрифтами на сайте разработчика библиотеки TCPDF. Скачанный архив нужно распаковать и загрузить файлы из папки fonts в папку assets/components/orderprint/pdf/tcpdf/fonts/ вашего сайта.
###Настройка для работы с компонентом магазина
По умолчанию OrderPrint настроен на работу с MiniShop2. Если на Вашем сайте используется Shopkeeper, для использования OrderPrint необходимо изменить системную настройку opr_type ("Магазин" в разделе "orderprint") на "shk". Кроме того многие плейсхолдеры станут недоступными а появятся другие, это сделано для максимально удобной работы с тем магазином к которому Вы привыкли, к примеру в шаблоне строки таблицы товаров для MS2 доступен плейсхолдер [[+thumb]], которого просто нет в SHK, зато для него можно использовать ТВ image значение которой попадет в плейсхолдер [[+tv_add.image]]. Это значит что в шаблонах нужно будет заменить теги спецефичные для MS2 тегами SHK.
###Документы
- название
- описание
- основной шаблон - имя чанка, который будет использоваться как шаблон всего документа
- шаблон строки таблицы товаров - имя чанка, который будет использоваться для вывода отдельного товара в таблицу со списком покупок в заказе, если не указать то таблица формироваться не будет
- доступен для пользователей - если установить ДА то пользователи получат доступ для того чтобы распечатать свои заказы в виде данного документа прямо из фронтэнда сайта.
- альбомная ориентация - ДА/НЕТ
- отступы - поля документа через запятую, начиная с верхнего.
Вы можете создавать любое количество документов, все они будут доступны для использования сразу после сохранения.
Чтобы напечатать документ достаточно просто на вкладке "Заказы" кликнуть по интересующему Вас заказу правой кнопкой мыши и в выпадающем меню выбрать нужный документ.
###Параметры
Помимо данных полученных из заказа и параметров системы в шаблонах документов Вы можете использовать также и дополнительные параметры OrderPrint-а. Это полезно если, к примеру, нужно выводить в документ данные, которых нет нигде в системе (ИНН, имя руководителя, имя курьера или название банка, всё что угодно).
Перейдя на вкладку "Параметры" Вы сможете управлять дополнительными параметрами, изменять, удалять, создавать сколько угодно новых. Каждый такой параметр имеет следующие поля:
- ключ - ключ параметра, подобно ключам системных настроек. Если создан параметр с ключом mycustomkey, его значение можно будет выводить в шаблонах документов так
[[+mycustomkey]] - значение
- описание
###Вывод ссылок для печати во фронтэнде
Для того чтобы вывести ссылки пользователям сайта в компонент включен сниппет orderPrint. Доступны следующие параметры:
| Параметр | Описание |
|---|---|
| tpl | имя чанка в который будут выводится ссылки. По умолчанию orderPrint.LinkTpl |
| orderId | id заказа |
| docs | перечисленные через запятую id документов. По умолчанию все доступные для фронтэнда |
###Шаблоны
У каждого документа может быть 2 шаблона, шаблон всего документа и шаблон строки таблицы с информацией по отдельному товару из заказа. Шаблон всего документа обязателен, если он не указан ничего работать не будет, шаблон строки таблицы не обязателен, если он не указан просто не будет самой таблицы, которая не обязательно нужна в каждом документе.
Так как для формирования документов используются обычные элементы MODX Вы смело можете в шаблонах использовать системные настройки, сниппеты, фильтры, другие чанки и так далее.
Обратите внимание, что класс, используемый для преобразования html в pdf, далек по своим возможностям от интерпретаторов в браузерах. Так что не нужно стеснятся использовать атрибут style прямо в тегах, стоит избегать применять html5 и css3 а также лучше предпочтение отдать табличной вёрстке при подготовке шаблонов. ###Плейсхолдеры доступные в шаблоне изначально Шаблон всего документа (MiniShop2)
| Плейсхлолдер | Значение |
|---|---|
| id | id заказа |
| num | номер заказа |
| createdon | дата создания |
| status | название статуса заказа (новый, оплочен и т.д.) |
| weight | общий вес товаров в заказе |
| comment | комментарий к заказу |
| delivery_cost | стоимость доставки |
| cart_cost | стоимость без доставки |
| payment_price | комиссия при использовании выбранного способа оплаты |
| cost | стоимость с доставкой |
| delivery | название способа доставки |
| payment | название способа оплаты |
| payment_description | описание способа оплаты |
| cart | УЖЕ СФОРМИРОВАННЫЙ html таблицы с товарами |
| manager | полное имя пользователя, который печатает документ |
| print_date | текущая дата |
| properties.ключ | дополнительные опции заказа |
| address | id адреса |
| address.receiver | имя покупателя указанное при оформлении заказа |
| address.phone | телефон покупателя указанный при оформлении заказа |
| address.room | номер квартиры/офиса покупателя указанный при оформлении заказа |
| address.building | номер дома покупателя указанный при оформлении заказа |
| address.street | улица покупателя указанная при оформлении заказа |
| address.metro | станция метро покупателя указанная при оформлении заказа |
| address.city | город покупателя указанный при оформлении заказа |
| address.region | регион указанный при оформлении заказа |
| address.index | почтовый индекс покупателя указанный при оформлении заказа |
| address.country | страна покупателя указанная при оформлении заказа |
| address.comment | комментарий указанный при оформлении заказа |
| address.properties.ключ | дополнительные опции записанные при оформлении заказа в поле properties |
| user.id | id покупателя |
| user.fullname | полное имя покупателя из профиля |
| user.username | имя пользователя покупателя из профиля |
| user.email | email покупателя из профиля |
| user.phone | телефон покупателя из профиля |
| user.mobilephone | мобильный телефон покупателя из профиля |
| user.fax | номер факса покупателя из профиля |
| user.gender | пол покупателя из профиля |
| user.address | адрес покупателя из профиля |
| user.zip | почтовый индекс покупателя из профиля |
| user.state | регион покупателя из профиля |
| user.city | город покупателя из профиля |
| user.country | страна покупателя из профиля |
| user.photo | фото/аватар покупателя из профиля |
| user.comment | комментарий к учетной записи покупателя |
| user.website | url сайта покупателя из профиля |
| user.extended.ключ | дополнительные поля профиля пользователя |
| settings.ключ | дополнительные параметры компонента, указанные на вкладке "Параметры" |
Шаблон строки с информацией об отдельном товаре из заказа (MiniShop2)
| Плейсхлолдер | Значение |
|---|---|
| id | id товара |
| price | цена товара |
| count | количество купленного товара |
| cost | общая стоимость позиции |
| weight | вес |
| pagetitle | заголовок ресурса-товара |
| thumb | превью фотографии товара |
| article | артикул |
| options.ключ | дополнительные параметры купленного товара (цвет, размер и т.д.) |
Шаблон всего документа (Shopkeeper)
| Плейсхлолдер | Значение |
|---|---|
| id | id заказа |
| date | дата создания |
| sentdate | дата отправки |
| status | название статуса заказа (новый, оплочен и т.д.) |
| delivery_cost | стоимость доставки |
| price | стоимость с доставкой |
| currency | валюта |
| delivery | название способа доставки |
| payment | название способа оплаты |
| cart | УЖЕ СФОРМИРОВАННЫЙ html таблицы с товарами |
| manager | полное имя пользователя, который печатает документ |
| print_date | текущая дата |
| e-mail покупателя | |
| phone | телефон покупателя |
| note | комментарий к заказу |
| tracking_num | трекинг-номер (почтовый идентификатор, номер отслеживания) |
| contacts.fullname | имя покупателя, указанное при оформлении заказа |
| contacts.zip | почтовый индекс покупателя, указанный при оформлении заказа |
| contacts.phone | телефон покупателя, указанный при оформлении заказа |
| contacts.email | email покупателя, указанный при оформлении заказа |
| contacts.room | квартира/офис покупателя, указанный при оформлении заказа |
| contacts.house | номер дома покупателя, указанный при оформлении заказа |
| contacts.corpus | корпус указанный при оформлении заказа |
| contacts.street | улица, указанная при оформлении заказа |
| contacts.metro | станция метро, указанный при оформлении заказа |
| contacts.city | город покупателя, указанный при оформлении заказа |
| contacts.state | страна указанная при оформлении заказа |
| contacts.payment | название способа оплаты |
| contacts.shk_delivery | название способа оплаты |
| contacts.message | комментарий пользователя к заказу |
| contacts.ключ | любые данные записанные в поле contacts в таблице в БД |
| user.fullname | полное имя покупателя из профиля |
| user.username | имя пользователя покупателя из профиля |
| user.email | email покупателя из профиля |
| user.phone | телефон покупателя из профиля |
| user.mobilephone | мобильный телефон покупателя из профиля |
| user.fax | номер факса покупателя из профиля |
| user.gender | пол покупателя из профиля |
| user.address | адрес покупателя из профиля |
| user.zip | почтовый индекс покупателя из профиля |
| user.state | регион покупателя из профиля |
| user.city | город покупателя из профиля |
| user.country | страна покупателя из профиля |
| user.photo | фото/аватар покупателя из профиля |
| user.comment | комментарий к учетной записи покупателя |
| user.website | url сайта покупателя из профиля |
| user.extended.ключ | дополнительные поля профиля пользователя |
| settings.ключ | дополнительные параметры компонента, указанные на вкладке "Параметры" |
Шаблон строки с информацией об отдельном товаре из заказа (ShopKeeper)
| Плейсхлолдер | Значение |
|---|---|
| id | id товара |
| price и tv.price | цена товара |
| count | количество купленного товара |
| cost | общая стоимость позиции |
| link | ссылка на товар |
| name | заголовок ресурса-товара |
| tv_add.имя TV | значения TV прикрепленных к ресурсу |



