- Installation
- Getting started
- Which setup is right for me?
- Install the DocketPrint Helper
- Admin printer settings
- Setup: Local printer (USB / thermal)
- Setup: Epson network printer
- Setup: Network printer (IP)
- Configuration
- How orders get printed automatically
- Add a second printer (e.g. kitchen docket)
- Add a delivery driver printer
- Troubleshooting
- FAQ
- Usage
- Permissions
- Mail templates
Installation
If you haven't already bought the Stripe Terminal extension, you can purchase it from the TastyIgniter Marketplace.
After purchasing the extension, add composer.tastyigniter.com as a repository in your composer.json file to allow Composer to find the package. This is done automatically when you install the extension via the TastyIgniter Admin.
"repositories": {
"tastyigniter": {
"type": "composer",
"url": "https://composer.tastyigniter.com"
}
},
Next, create a auth.json file under the same directory as your composer.json file to provide your TastyIgniter Marketplace credentials:
{
"http-basic": {
"composer.tastyigniter.com": {
"username": "your-tastyigniter-account-email-address",
"password": "your-tastyigniter-site-carte-key"
}
}
}
Install the extension via composer:
composer require igniterlabs/ti-ext-docketprint -W
Run the database migrations to create the required tables:
php artisan igniter:up
Alternatively, install from your TastyIgniter admin panel under Manage → Extensions → Browse, search for DocketPrint, and click Install.
Getting started
This section walks you through setting up automatic receipt printing for your restaurant. All printing uses the DocketPrint Helper desktop app on a computer at your restaurant. You can add multiple printers in one Helper install (each with its own setup code).
Which setup is right for me?
| Your situation | Choose this |
|---|---|
| USB or thermal printer on the computer running the Helper | Local printer (USB / thermal) |
| Supported Epson receipt printer on your restaurant network | Epson network printer |
| Star, Bixolon, or other ESC/POS network printer (IP + port 9100) | Network printer (IP) |
Install the DocketPrint Helper
- Download and install the DocketPrint Helper desktop app on a computer that can reach your printer(s).
- Enter your site URL. If your site uses a self-signed certificate (common on local or staging servers), enable Allow self-signed SSL.
- Add each printer using its setup code from Tools → Printers (Connection tab). For USB/local printers, choose the matching computer printer from the dropdown.
- Click Test connection for each printer, then Save settings. Leave the Helper running in the menu bar / system tray.
Admin printer settings
When you add or edit a printer under Tools → Printers, the form has two tabs:
| Tab | Contents |
|---|---|
| General | Name, status, location, docket template, paper width, copies, auto-print rules |
| Connection | Connection type, setup instructions, network settings (if applicable), setup code, Test Print |
Test Print is on the Connection tab (after you save the printer once). The printer list still has a quick test-print icon for each row.
Setup: Local printer (USB / thermal)
Use this for USB receipt printers and most thermal printers installed on the Helper computer.
- Install your printer on the computer (vendor driver or generic ESC/POS driver).
- In TastyIgniter admin, go to Tools → Printers → Add.
- On General, set the name, location, and docket template. On Connection, choose Local printer (USB / thermal).
- Save the printer, open the Connection tab again, and copy the Setup code.
- In the Helper app, add the printer with that setup code and select the OS printer name.
- Click Test connection in the Helper, then Test Print in admin and check your printer.
Setup: Epson network printer
Use this for supported Epson receipt printers with built-in network printing.
- Enable network printing on your Epson printer and note the IP address.
- In TastyIgniter admin, go to Tools → Printers → Add.
- On Connection, choose Epson network printer and enter the IP address.
- Save the printer, copy the Setup code from the Connection tab, and add it in the Helper app on a computer on the same network.
- Click Test connection in the Helper, then Test Print in admin and check your printer.
Setup: Network printer (IP)
Use this for Star, Bixolon, and other ESC/POS thermal printers with a network port (usually 9100 / JetDirect).
- Connect the printer to your restaurant network and note its IP address.
- In TastyIgniter admin, go to Tools → Printers → Add.
- On Connection, choose Network printer (IP) and enter the IP address and port (default 9100).
- Save the printer, copy the Setup code from the Connection tab, and add it in the Helper app.
- Click Test connection in the Helper, then Test Print in admin and check your printer.
Configuration
From your TastyIgniter Admin, navigate to Manage → Settings → DocketPrint to configure global settings.
Enable automatic printing
Turn automatic printing on or off for all printers:
- Go to Manage → Settings → DocketPrint
- Switch Enable automatic printing on or off
- Click Save
When automatic printing is paused, existing printers stay configured but new orders are not queued until you turn it back on.
Print job history retention
Choose how long completed and failed print jobs are kept in the admin panel:
- Go to Manage → Settings → DocketPrint
- Set Print job retention to your preferred period (7, 14, 30, or 90 days)
- Click Save
How orders get printed automatically
- A customer places an order and payment is confirmed.
- DocketPrint finds active printers for that restaurant location.
- A docket is built from your saved layout and queued for the Helper.
- The Helper on your computer prints the receipt.
- You can see job status under Tools → Printers → Print Jobs.
Add a second printer (e.g. kitchen docket)
- Go to Tools → Printers → Add again.
- Name it Kitchen Docket, assign the same Location, choose the connection type, and pick the Kitchen Docket docket template.
- Add the new setup code in the Helper app.
Add a delivery driver printer
- Go to Tools → Printers → Add again.
- Name it Delivery Docket, assign the same Location, choose the connection type, and pick the Delivery Docket docket template.
- The delivery docket prints the customer address, an order barcode, and a QR code that opens the address in maps when scanned.
- Add the new setup code in the Helper app.
Troubleshooting
Receipts are not printing
- Is the DocketPrint Helper running on your computer (menu bar / system tray)?
- For local/USB printers, did you select the correct computer printer in the Helper?
- For network printers, is the printer switched on and reachable from the Helper computer?
- Check Tools → Printers → Print Jobs for failed jobs and error notes.
Helper shows offline
- Check your internet connection (the Helper polls your cloud site).
- Regenerate the setup code in admin if you recently changed servers.
SSL or certificate errors in the Helper
- Enable Allow self-signed SSL in the Helper setup window if your site uses a development or staging certificate (for example DDEV or
.testdomains). - Production sites should use a valid TLS certificate; leave the option off when possible.
Test print works but auto-print does not
- Confirm the printer is Active in Tools → Printers.
- Check Manage → Settings → DocketPrint — automatic printing may be paused.
- Confirm the printer Location matches the order location.
FAQ
Does my computer need to stay on?
Yes. The computer running the DocketPrint Helper must stay switched on for automatic printing.
Can I print from my phone?
You manage printers from any device in admin. Physical printing uses the Helper on a desktop computer.
Which connection type for my printer?
USB or direct connection to the Helper PC → Local printer. Epson with ePOS → Epson network printer. Other network ESC/POS → Network printer (IP).
Usage
This section covers how to integrate with the DocketPrint extension programmatically.
Queue print jobs for an order
Print jobs are created automatically when orders are placed or reach configured statuses. You can also queue them manually:
use Igniter\Cart\Models\Order;
use IgniterLabs\DocketPrint\Services\PrintJobService;
$order = Order::find($orderId);
// Print on new order rules (respects printer auto-print settings)
resolve(PrintJobService::class)->createForOrder($order);
// Print when a specific order status is applied
resolve(PrintJobService::class)->createForOrder($order, $statusId);
Send a test print
Send a test receipt to a configured printer without creating a real order:
use IgniterLabs\DocketPrint\Models\Printer;
use IgniterLabs\DocketPrint\Services\PrintJobService;
$printer = Printer::find($printerId);
// Uses the most recent order at the printer's location as sample data
resolve(PrintJobService::class)->sendTestPrint($printer);
// Or pass a specific order for sample data
resolve(PrintJobService::class)->sendTestPrint($printer, $order);
Retry a failed print job
use IgniterLabs\DocketPrint\Models\PrintJob;
use IgniterLabs\DocketPrint\Services\PrintJobService;
$job = PrintJob::find($jobId);
resolve(PrintJobService::class)->retry($job);
Register custom docket templates
Other extensions can register additional docket layout files for use when creating printer templates in admin. Add a registerDocketTemplates() method to your extension class:
public function registerDocketTemplates(): array
{
return [
'myvendor.myext::dockets.pickup' => 'Pickup docket',
];
}
Place your layout file in your extension's views folder (for example resources/views/dockets/pickup.blade.php). Docket layouts use Mustache-style variables such as {{order.id}}, {{#order.items}}...{{/order.items}}, and {{#order.totals}}...{{/order.totals}}. See the built-in templates in this extension for reference.
List available docket templates
use IgniterLabs\DocketPrint\Classes\Manager;
$manager = resolve(Manager::class);
// All registered template codes and labels
$templates = $manager->listTemplates();
// Look up a single template label by code
$label = $manager->getTemplate('igniterlabs.docketprint::dockets.kitchen');
Render receipt content
use Igniter\Cart\Models\Order;
use IgniterLabs\DocketPrint\Models\Template;
use IgniterLabs\DocketPrint\Services\ReceiptRenderer;
$renderer = resolve(ReceiptRenderer::class);
// ESC/POS payload (base64) for thermal printers
$payload = $renderer->render($order, $template, $printer->paperWidth());
// HTML preview for admin template editor
$html = $renderer->renderPreviewHtml($order, $template, $printer->paperWidth());
Events DocketPrint listens to
DocketPrint hooks into core TastyIgniter order events. You can listen to the same events for custom behaviour, or dispatch them to trigger printing from your own code:
Order payment processed
Fired when an order payment is confirmed. DocketPrint queues jobs for printers configured to print on new orders:
Event::listen('admin.order.paymentProcessed', function ($order) {
// $order: Igniter\Cart\Models\Order
});
Order status changed
Fired before a status is added to an order. DocketPrint queues jobs for printers configured to print on that status:
Event::listen('admin.statusHistory.beforeAddStatus', function ($model, $order, $statusId, $previousStatus) {
// $order: Igniter\Cart\Models\Order
// $statusId: int — the status being applied
});
Permissions
Two permissions control access to DocketPrint features in the admin panel:
| Permission | Purpose |
|---|---|
IgniterLabs.DocketPrint.Manage |
Manage printers, docket templates, and print jobs |
IgniterLabs.DocketPrint.ManageSettings |
Manage DocketPrint global settings |
Assign these in Manage → Staff members → Roles.
Mail templates
The extension registers the following mail templates:
| Template | Purpose |
|---|---|
igniterlabs.docketprint::mail.print_failure |
Alert sent to the site email after repeated print failures for a printer |
Customize this template in Design → Mail Templates.