Skip the setup. Our team will have you taking orders in 24 hours. Get started →
Extensions

DocketPrint

Installation Getting started Which setup is right for me? Install the DocketPrint Helper Admin printer settings Setup: Local printer (USB / thermal) Setup:...

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.

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).

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)
  1. Download and install the DocketPrint Helper desktop app on a computer that can reach your printer(s).
  2. Enter your site URL. If your site uses a self-signed certificate (common on local or staging servers), enable Allow self-signed SSL.
  3. Add each printer using its setup code from Tools → Printers (Connection tab). For USB/local printers, choose the matching computer printer from the dropdown.
  4. Click Test connection for each printer, then Save settings. Leave the Helper running in the menu bar / system tray.

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.

Use this for USB receipt printers and most thermal printers installed on the Helper computer.

  1. Install your printer on the computer (vendor driver or generic ESC/POS driver).
  2. In TastyIgniter admin, go to Tools → Printers → Add.
  3. On General, set the name, location, and docket template. On Connection, choose Local printer (USB / thermal).
  4. Save the printer, open the Connection tab again, and copy the Setup code.
  5. In the Helper app, add the printer with that setup code and select the OS printer name.
  6. Click Test connection in the Helper, then Test Print in admin and check your printer.

Use this for supported Epson receipt printers with built-in network printing.

  1. Enable network printing on your Epson printer and note the IP address.
  2. In TastyIgniter admin, go to Tools → Printers → Add.
  3. On Connection, choose Epson network printer and enter the IP address.
  4. 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.
  5. Click Test connection in the Helper, then Test Print in admin and check your printer.

Use this for Star, Bixolon, and other ESC/POS thermal printers with a network port (usually 9100 / JetDirect).

  1. Connect the printer to your restaurant network and note its IP address.
  2. In TastyIgniter admin, go to Tools → Printers → Add.
  3. On Connection, choose Network printer (IP) and enter the IP address and port (default 9100).
  4. Save the printer, copy the Setup code from the Connection tab, and add it in the Helper app.
  5. Click Test connection in the Helper, then Test Print in admin and check your printer.

From your TastyIgniter Admin, navigate to Manage → Settings → DocketPrint to configure global settings.

Turn automatic printing on or off for all printers:

  1. Go to Manage → Settings → DocketPrint
  2. Switch Enable automatic printing on or off
  3. Click Save

When automatic printing is paused, existing printers stay configured but new orders are not queued until you turn it back on.

Choose how long completed and failed print jobs are kept in the admin panel:

  1. Go to Manage → Settings → DocketPrint
  2. Set Print job retention to your preferred period (7, 14, 30, or 90 days)
  3. Click Save
  1. A customer places an order and payment is confirmed.
  2. DocketPrint finds active printers for that restaurant location.
  3. A docket is built from your saved layout and queued for the Helper.
  4. The Helper on your computer prints the receipt.
  5. You can see job status under Tools → Printers → Print Jobs.
  1. Go to Tools → Printers → Add again.
  2. Name it Kitchen Docket, assign the same Location, choose the connection type, and pick the Kitchen Docket docket template.
  3. Add the new setup code in the Helper app.
  1. Go to Tools → Printers → Add again.
  2. Name it Delivery Docket, assign the same Location, choose the connection type, and pick the Delivery Docket docket template.
  3. The delivery docket prints the customer address, an order barcode, and a QR code that opens the address in maps when scanned.
  4. Add the new setup code in the Helper app.
  • 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.
  • Check your internet connection (the Helper polls your cloud site).
  • Regenerate the setup code in admin if you recently changed servers.
  • Enable Allow self-signed SSL in the Helper setup window if your site uses a development or staging certificate (for example DDEV or .test domains).
  • Production sites should use a valid TLS certificate; leave the option off when possible.
  • 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.

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).

This section covers how to integrate with the DocketPrint extension programmatically.

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 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);
use IgniterLabs\DocketPrint\Models\PrintJob;
use IgniterLabs\DocketPrint\Services\PrintJobService;

$job = PrintJob::find($jobId);

resolve(PrintJobService::class)->retry($job);

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.

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');
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());

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:

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
});

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
});

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.

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.

Did this answer your question?

Your feedback helps us improve our help articles.

Need more help?

Explore the help center, join the community, or get priority support from the TastyIgniter team.