richardhj / contao-onlinetickets
Isotope电子商务的在线票务扩展
Requires
- php: ^5.5 || ^7.0
- cliffparnitzky/user-member-bridge: ^1.2
- contao-community-alliance/dependency-container: ^1.8
- contao-community-alliance/events-contao-bindings: ^3.5
- contao-community-alliance/meta-palettes: ^1.10
- contao-community-alliance/translator: ^2.0
- contao-community-alliance/url-builder: ^1.2
- isotope/isotope-core: ^2.3
- phpoffice/phpexcel: ^1.8
- symfony/http-foundation: ^2.7 || ^3.0
Suggests
- katgirl/isotope-documents: Enhanced Isotope PDF templates to choose from
This package is auto-updated.
Last update: 2019-11-18 02:05:10 UTC
README
使用Isotope电子商务在线销售票务
此扩展需要大量的Contao/Isotope知识,以及对您家庭网络和路由域/ip地址的基本了解。
它做什么
活动前
您可以为您的事件在线销售票务。订单成功后,这些在线票务会获得一个二维码/条形码,并为顾客提供家庭打印。
如果您销售纸质票并希望跟踪销售情况,此扩展提供了打印带有定制条形码的纸质票的工具。
活动期间
签到
签到所有已售票(纸质票或在线票)并跟踪场所的容量程度。
所包含的API与TicketPay的API完全兼容。安装iOS原生移动应用程序以执行签到。
管理板/售票处
包括了一个售票处。将前端模块放置在前端受保护的页面上。售票处可以帮助您实时跟踪销售和签到,跟踪售票处的销售并撤销签到。
活动后
导出包含所有已售票的Excel报告,找出最重要的票务代理,了解访客最常签到的时间。
如何使用它
使用Composer安装
将这些最小配置添加到您的composer.json中。
{ "require": { "richardhj/contao-onlinetickets": "^0.10.0" }, "repositories": [ { "type": "vcs", "url": "https://github.com/richardhj/contao-onlinetickets" } ] }
配置
- 在后台设置活动。
- 创建一个名为“在线票务”的新产品类型。
- 使用新产品类型创建新产品。
- 创建自定义的Isotope文档(见下文)
Isotope文档模板
我们使用isotope_docuemts
提供的模板。
要导出包含在线票务的Isotope文档(例如发票),简单修改iso_document_….html5
。将以下行添加到模板文件的末尾。
<?php if (null !== ($objTickets = Richardhj\Isotope\OnlineTickets\Model\Ticket::findByOrder($this->collection->id))): ?><div style="font-size: 72.5%; font-family: Helvetica, sans-serif; float:left; page-break-before:always;"> <table cellspacing="0" cellpadding="0" border="0" width="100%" style="margin-left:100px;" > <tr> <td colspan="3" style="text-align:center;"><img src="http://isotopeecommerce.org/files/layout/logo.png" alt="Isotope eCommerce" height="100"></td> </tr> <tr> <td colspan="3" style="line-height:2;"> </td> </tr> <tr> <td colspan="3"><strong><span style="font-size: 125%;">Online-Tickets</span><br>zur Bestellung <?php echo $this->collection->document_number; ?></strong></td> </tr> <tr> <td colspan="3" style="line-height:2;"> </td> </tr> <?php while($objTickets->next()): ?> <tr> <td width="40%" style="border-top: 2px solid #c8c8c8;"> </td> <td width="30%" style="border-top: 2px solid #c8c8c8;"> </td> <td width="30%" style="border-top: 2px solid #c8c8c8;"> </td> </tr> <tr> <td colspan="2" style="line-height:2;"> </td> <td rowspan="3"><img src="<?php echo Richardhj\Isotope\OnlineTickets\Helper\QrCode::getLocalPath($objTickets->hash); ?>" alt="Ticket Code"></td> </tr> <tr> <td style="line-height:1.5;"><strong>Veranstaltung</strong></td> <td style="line-height:1.5;"><strong>Käufer</strong></td> </tr> <tr> <td><?php echo $objTickets->getRelated('event_id')->name . "<br>"; echo Date::parse($this->dateFormat, $objTickets->getRelated('event_id')->date) . "<br><br>"; echo $objTickets->getRelated('product_id')->teaser ? nl2br($objTickets->getRelated('product_id')->teaser) . "<br><br>" : ""; echo "<strong>Ticketpreis:</strong> " . Isotope::formatPriceWithCurrency($objTickets->getRelated('item_id')->price) . "<br>"; ?></td> <td><?php echo $arrBillingAddress->company ? $arrBillingAddress->company . "<br>" : ""; echo $arrBillingAddress->firstname . " "; echo $arrBillingAddress->lastname . "<br>"; echo $arrBillingAddress->street_1 ? $arrBillingAddress->street_1 . "<br>" : ""; echo $arrBillingAddress->street_2 ? $arrBillingAddress->street_2 . "<br>" : ""; echo $arrBillingAddress->street_3 ? $arrBillingAddress->street_3 . "<br>" : ""; echo $arrBillingAddress->postal . " "; echo $arrBillingAddress->city . "<br><br>"; ?></td> </tr> <tr> <td style="border-bottom: 2px solid #c8c8c8;"> </td> <td style="border-bottom: 2px solid #c8c8c8;"> </td> <td style="border-bottom: 2px solid #c8c8c8;"> </td> </tr> <?php endwhile; ?> </table> </div><?php endif; ?>
个性化纸质票
对于销售可识别的纸质票,有两种支持的情况
纸质票有一个白色剪裁孔
想象一下您为活动订购了纸质门票。您可以随意设计它。您只需在门票上留一个空白切口,以便打印条形码。
在Contao后台,转到“事件”。配置当前活动,然后点击“预印门票”。现在,您输入门票的详细信息。
- 单个纸质门票的宽度和高度。
- 您想在门票上打印的元素,很可能是条形码和/或门票号码。因此,您必须以毫米为单位输入您的纸质门票空白切口的x和y坐标。
- 指定要使用的字体(用于门票号码)以及QR码、条形码等的大小。
现在,您应该创建一个新的代理机构(“预售点”)。定义他们可以销售的门票数量。然后点击特定机构的“导出PDF”按钮。您将获得一个包含之前定义的大小和元素的PDF文件。将您的纸质门票放入打印机并打印PDF。
自助打印门票
想象一下您想自己打印纸质门票,因为您只打印少量或颜色使用不多,所以印刷店订购的纸质门票不划算。
创建活动后,创建一个新的代理机构(“预售点”)。定义他们可以销售的门票数量。然后点击特定机构的“导出”按钮。您将获得作为CSV文件的门票号码和条形码。现在,最好的办法是下载一个“Code 3 of 9字体”。将此字体安装在您的计算机上。然后创建一个新的InDesign文档并设计您的门票。剪下条形码。现在您使用InDesign的“数据合并”功能,在InDesign中加载CSV文件,创建可识别的门票。打印它们。
使用TicketPay应用程序
您需要将URL https://api.ticketpay.de/
指向您的Contao安装。然后您可以使用您的Contao凭据登录。事件、订单和门票将通过此URL获取,并且您可以开始办理登机手续。
要检查入口点是否配置正确,您可以请求 https://api.ticketpay.de/api/userLogin?username=test&password=test
并应该收到以下消息
{"Errorcode":1,"Errormessage":"Unbekanntes Terminal"}
许可证
GNU Lesser General Public License (LGPL) v3。
请注意
按照适用的法律允许的程度,本程序没有任何保证。除非在书面文件中另有说明,否则版权所有者/其他方提供本程序“按原样”且不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于对适销性和针对特定目的的适用性的暗示保证。本程序的质量和性能的全部风险由您承担。如果本程序证明有缺陷,您将承担所有必要的维护、修理或更正的费用。