# Cloud Printing

Cloud printing sends receipts to a printer over the internet, so the printer doesn't have to be connected to the device running the POS. Use it for a printer on a different network from the till, a kitchen printer that prints every order by itself, or a packing slip for every online sale.

You set a cloud printer up once, in **WP Admin → POS → Settings → Cloud Print**. From then on every device lists it, and cashiers print to it from the POS like any other printer.

## Print from the POS[​](#manual "Print from the POS के लिए सीधा लिंक")

The store makes a cloud printer's receipt from the order, so the store has to have the sale before you print.

1. On the paid screen, or in an order's **Receipt** window, open the **Printer** menu and pick the cloud printer.
2. Press **Print receipt**.
3. The screen says **Printed to** and the printer's name. That means the store has the job; check the receipt came out. If it didn't, a manager can see what happened to it in the [print queue](#print-queue).

See [Print the receipt](/hi-IN/sell/print-email-receipts.md#print-receipt). To send a template to a cloud printer every time, choose the printer for that template in **Settings → Printing**: see [Print routing](/hi-IN/hardware/receipt-printers.md#print-routing).

* **The order must be on the store.** If the store hasn't confirmed the sale yet, for example one taken offline, the POS says *This printer prints the store's copy, and the store hasn't confirmed this sale yet. Print again once it has.* Press **Print receipt** again once the till is online and the store has confirmed the sale. While the till is offline, printing to a cloud printer fails, even for an earlier order.
* **Session reports and closures** sent to a cloud printer open the system print dialog instead.
* **An HTML template on a Star or Epson cloud printer** shows *This cloud printer only prints thermal templates, so nothing will print. Choose a thermal template.*

Cloud printers appear by themselves in **Settings → Printing** on every device, under **Printers**. The second line of the row names the type, for example *Star CloudPRNT · managed by WCPOS*. A cashier can press **Test Print** on the row or **Copy setup report** in its **⋯** menu, but can't edit or delete it: that's done on the **Cloud Print** screen. See [Printer Setup](/hi-IN/hardware/receipt-printers.md#printers-list).

## Choose a printer type[​](#providers "Choose a printer type के लिए सीधा लिंक")

You need WP Admin from here on

Adding printers and rules is a job for the store owner or manager, in **WP Admin → POS → Settings → Cloud Print**.

The **Cloud Print** screen asks **What kind of printer are you connecting?** Pick the one that matches your printer.

* **Star CloudPRNT** — for a Star printer with CloudPRNT built in (mC-Print, TSP143IV…), when you want a free connection with no other account. The printer fetches its jobs from your store. *Thermal templates only.*
* **Epson Server Direct Print** — for an Epson "intelligent" TM printer (TM-T88VI/VII, TM-m30III, TM-i series). The printer fetches its jobs from your store. *Thermal templates only.*
* **Star Online** — for a Star printer linked to a stario.online account (mC-Print3, TSP143IV, mC-Label3). Your store hands the job to Star Online, which delivers it. *Thermal templates only.*
* **PrintNode** — for an ordinary USB or network printer, when you can run the small PrintNode app on a computer at the store. Your store hands the job to PrintNode, and its app on that computer prints it. *Any template.*

A Star or Epson cloud printer can't print an HTML template: the receipt has to become the printer's own commands. For HTML and full-page templates, use PrintNode. See [Thermal Templates](/hi-IN/settings/receipt-templates/thermal-templates.md).

How jobs reach your printer

1. **Your store** — makes the receipt from the order and the template, and keeps the job in the [print queue](#print-queue). A print from the POS and an [auto-print rule](#auto-print) both start here.
2. **WCPOS Cloud Print** — the [relay](#relay). A Star CloudPRNT or Epson printer normally fetches its jobs through it, so a job waits until the printer next checks in.
3. **PrintNode** — your store hands the job to PrintNode, and the PrintNode app on a computer at the store prints it.
4. **Star Online** — your store hands the job to Star Online, which delivers it to the printer.

## Add a printer[​](#setup "Add a printer के लिए सीधा लिंक")

1. Go to **WP Admin → POS → Settings → Cloud Print**. Under **Your cloud printers**, press **+ Add a printer**.
2. Choose the type.
3. Type a **Printer name**, for example *Kitchen printer*. WCPOS makes the printer's **Printer ID** from the name. The ID can't be changed later; to change it, remove the printer and add it again.
4. Finish the steps for your type: [Star CloudPRNT or Epson](#setup-polling), [PrintNode](#setup-printnode) or [Star Online](#setup-star-online).
5. The printer appears as a card under **Your cloud printers**. Press **Test print** on it. See [The printer card](#status).

### Star CloudPRNT or Epson Server Direct Print[​](#setup-polling "Star CloudPRNT or Epson Server Direct Print के लिए सीधा लिंक")

These printers fetch their own jobs, so there is no account to link. Because the printer reaches out to your store, you don't open a port, set a static IP or change your firewall. A job prints the next time the printer checks in. The last step of **+ Add a printer** shows the printer's **Poll URL**, with a secret token inside it.

Connect a Star CloudPRNT or Epson printer

1. Press **Copy** next to the **Poll URL**. The full address is shown **only once**. If you lose it, remove the printer and add it again to get a new one: **Setup & token** on the card shows it with the token hidden.
2. Open the printer's own settings page and paste the address into its server URL: the **CloudPRNT** settings on a Star, the **Server Direct Print** settings on an Epson. Turn polling on, save, and restart the printer.
3. Back on the card, the status changes from **Waiting for printer** to **Connected** once the printer fetches for the first time.

The address normally starts with `https://cloudprint.wcpos.com`. That is the [WCPOS Cloud Print relay](#relay), and it's what you want. **Advanced: connect directly to this site (no relay)** under the address shows a **Direct URL** instead; some printers can't reach a site directly and stay on **Waiting for printer**.

On an Epson, leave **Server Direct Print** on for as long as WCPOS prints to it this way. See [Server Direct Print](/hi-IN/troubleshooting/printer-problems/server-direct-print.md).

### PrintNode[​](#setup-printnode "PrintNode के लिए सीधा लिंक")

PrintNode needs its client running on a computer next to the printer, and an API key from your PrintNode account.

Connect a PrintNode printer

1. On a computer next to the printer, install the PrintNode client and sign in. The computer must be on, and the client running, for anything to print.
2. In your PrintNode account, create an API key.
3. In **+ Add a printer**, choose **PrintNode**, paste the key into **PrintNode API key** and press **Fetch my printers**.
4. Under **Choose a printer**, pick the one the client reports, and finish. The last step says **Linked to PrintNode**: there is no address or token to copy.

Once it's linked, set **Print format** on the printer's card:

* **PDF (recommended)** prints any template, thermal or HTML, as a PDF. Leave it on this unless you have a reason to change it.
* **ESC/POS RAW — thermal templates only** sends a thermal template as receipt printer commands instead of a PDF. HTML templates still go as a PDF.

### Star Online[​](#setup-star-online "Star Online के लिए सीधा लिंक")

Star Online needs the printer's group address and an API key, both from your stario.online account.

Connect a Star Online printer

1. In stario.online, open **Device Groups** and copy the group's **CloudPRNT URL**. It looks like `https://device.stario.online/cloudprnt/...`, or `https://eu-device.stario.online/cloudprnt/...` in the EU.
2. In stario.online, create an API key with the permissions **EnumDevices**, **ViewDevice**, **PrintToDevice** and **ViewDeviceGroups**. A key without them is accepted but can't list or print.
3. In **+ Add a printer**, choose **Star Online**. Paste the **CloudPRNT URL** and the **Star Online API key**, then press **Fetch my devices**.
4. Under **Choose a device**, pick the printer and finish. The card then shows its **Device**, **Group** and **AccessIdentifier**.

## The printer card[​](#status "The printer card के लिए सीधा लिंक")

Each cloud printer has a card under **Your cloud printers**:

* **The name** — click it to rename the printer. The type is under it.
* **The status** — see the list below. It refreshes every 30 seconds.
* **Last check-in** — when a Star CloudPRNT or Epson printer last fetched, or *never*.
* **Printer ID** — fixed when you added the printer.
* **Print format** — PrintNode only: **PDF (recommended)** or **ESC/POS RAW — thermal templates only**. See [PrintNode](#setup-printnode).
* **Test print** — sends a short test page. A message says *Sent a test print to …*, or why it failed.
* **Printer actions** (**⋮**) — **Setup & token** reopens the last setup step; **Remove printer** stops the printer receiving jobs. You can add it again later.

Star CloudPRNT and Epson Server Direct Print statuses

* **Waiting for printer** — the printer hasn't fetched yet. Check the Poll URL in the printer: see [Stuck on Waiting for printer](#trouble-polling).
* **Connected** — the printer fetched in the last two and a half minutes.
* **Offline** — the printer fetched before, but not lately. Check it's on and online.
* **Blocked** — the relay can't reach your store. The card says why: a security service such as Cloudflare or a firewall plugin is blocking it, or your site answered with a server error. See [Star CloudPRNT or Epson problems](#trouble-polling).

Star Online and PrintNode statuses

* **Online** — the service says the printer is available.
* **Offline** — the service says the printer, or the PrintNode computer, isn't available. For PrintNode, check the computer is awake and the client running.
* **Unknown** — WCPOS couldn't get a status from the service. Check the API key in [PrintNode](#setup-printnode) or [Star Online](#setup-star-online).

## Print orders automatically[​](#auto-print "Print orders automatically के लिए सीधा लिंक")

Auto-print rules print orders without anyone pressing anything. They are optional: with no rules, cloud printers print only when a cashier prints from the POS.

Under **Auto-print rules**, press **+ Add rule**. Each rule reads as a sentence, and each underlined part is a menu:

> Automatically print **every in-store (POS) order** to **Kitchen printer** using the **Kitchen ticket** template, **2 copies**, **as soon as it's created**.

* **Which orders** — **every order**, **every in-store (POS) order** or **every online order**. With WCPOS Pro, also **orders for** one store: see [Per-store printers](#per-store-printers).
* **Printer** — one of your cloud printers.
* **Template** — only templates that printer can print are offered. Templates come from **POS › Templates**.
* **Copies** — 1 to 5.
* **When** — **once it's paid** (the default), or **as soon as it's created**. For a POS order, created means the moment the cart is first saved, so a kitchen ticket prints before payment.

More than one rule can print the same order, for example a kitchen ticket and a customer receipt. A rule prints a given order only once. The receipt is made on the store from the order and the template, so the cashier has nothing to do. Automatic prints never open the cash drawer.

If you change a rule's printer to one that can't print its template, the rule switches to the first template that printer can print, so check it's the one you want. If the printer can print none of your templates, the template is left empty and the rule doesn't print until you choose one.

### Per-store printers (Pro)[​](#per-store-printers "Per-store printers (Pro) के लिए सीधा लिंक")

With [WCPOS Pro](/hi-IN/getting-started/pro-license.md) and more than one [store](/hi-IN/manage-store/stores.md), the **Which orders** menu also lists **orders for** each store. A store rule prints the orders that belong to that store: those its tills take, and any order you assign to the store on the order's edit screen. Online orders belong to no store unless you assign one, so only the all-stores rules print them.

Rules add up: an order for a store prints on that store's rules **and** on every rule for **every order**, **every in-store (POS) order** or **every online order**. To keep one location's kitchen tickets off another location's printer, give each location its own store rule and don't add an all-stores rule for that ticket.

## The print queue[​](#print-queue "The print queue के लिए सीधा लिंक")

Below the rules, **Print queue** lists every job: **Order**, **Printer**, **Template**, **Status**, **Detail** and **Created**. The order number links to the order.

* **Filter** by status (**Needs attention**, **All statuses**, or one of **Waiting**, **Printing**, **Printed**, **Failed**, **Cancelled**) and by printer.
* **Cancel** a waiting job, **Retry** a failed one (it comes back as a new job, *Retried as #…*), or **Delete** a job. Tick several rows for **Cancel selected** or **Delete selected**.
* **Detail** says why a job failed, for example *Star Online rejected the request. Check that the API key has the required permissions.*

When a Star CloudPRNT or Epson printer has receipts waiting and hasn't fetched for 10 minutes, or never has, a warning names the printer, says when it last fetched and how many receipts are waiting, and offers **Cancel all**.

A job the printer never confirmed

*The printer never confirmed this job* means WCPOS can't tell whether it printed. It is not sent again by itself, because that could print it twice. Check the printer, and press **Retry** only if nothing came out.

How long jobs are kept, and retries

Printed and cancelled jobs are deleted after 7 days, failed jobs after 30. A developer can change this with the `wcpos_print_job_retention_days` and `wcpos_print_job_failed_retention_days` filters.

A job WCPOS hands to PrintNode or Star Online is tried three times, one and then two minutes apart. A key or account the service refuses fails at once, with the reason in **Detail**.

## WCPOS Cloud Print, the relay[​](#relay "WCPOS Cloud Print, the relay के लिए सीधा लिंक")

A Star CloudPRNT or Epson printer's Poll URL points at **cloudprint.wcpos.com**, not at your own site. That's **WCPOS Cloud Print**, a free relay run by WCPOS between your printers and your store.

There is nothing to switch on. Jobs pass through the relay on their way to the printer, so connecting shares your site's address with wcpos.com, and receipts, which include order details, travel through it. See the [privacy policy](https://wcpos.com/privacy).

How the relay works

Receipt printers run small firmware that is rarely updated. Many can't make a secure connection to a store on modern hosting, or are turned away by a service such as Cloudflare in front of the site. The printer then sits on **Waiting for printer** with every setting correct. The relay gives the printer a connection it can make, and passes its requests on to your store.

* Your site connects to the relay by itself the first time you open **Cloud Print**.
* The relay needs your site on **HTTPS**. Without it, **Cloud Print** says so.
* If your site can't connect to the relay, for example a local test site, the Poll URL points at your site directly.
* **Blocked** on a card means the relay reached your site and was refused. Allow the relay in your security service, as the card says. See [Star CloudPRNT or Epson problems](#trouble-polling).

Turn the relay off (developers)

The last setup step of a Star CloudPRNT or Epson printer has **Advanced: connect directly to this site (no relay)** with its **Direct URL**. To switch the relay off for the whole site:

```
add_filter( 'wcpos_cloud_print_relay_enabled', '__return_false' );
```

Before WCPOS 2.0 this filter was `woocommerce_pos_cloud_print_relay_enabled`. That name still works, is deprecated since 2.0, and is removed in 2.2 at the earliest. See [Hook naming](/hi-IN/manage-store/add-ons.md#hook-naming).

How a receipt reaches a Star CloudPRNT printer

WCPOS offers the printer StarPRNT commands first, then a PNG image of the receipt, then plain text, and uses the best one the printer says it can read. Older Star models that only read Line Mode (TSP650II, TSP700II, TSP800II) get logos only through the image. The image needs the GD and FreeType PHP extensions on your server. Epson printers get ePOS-Print XML; Star Online gets Star Document Markup.

## If something goes wrong[​](#troubleshooting "If something goes wrong के लिए सीधा लिंक")

**The POS printed to a cloud printer, but no receipt came out.** The POS only knows the store has the job. Open the [print queue](#print-queue) and find the order:

* **Waiting** — the printer hasn't taken it yet. Check the printer's status on its card: [Star CloudPRNT and Epson Server Direct Print statuses](#status-polling) or [Star Online and PrintNode statuses](#status-services).
* **Printing** — the job is on its way, and the printer hasn't said it printed yet.
* **Failed** — **Detail** says why. Put it right, then press **Retry**. If **Detail** says *The printer never confirmed this job*, it may have printed: check the printer before you press **Retry**.
* **Printed** — the printer, or PrintNode or Star Online, took the job. Check the paper, and that the **Printer** column names the printer you're standing at.

**My template isn't offered.** Star CloudPRNT, Epson and Star Online printers only take [thermal templates](/hi-IN/settings/receipt-templates/thermal-templates.md). Choose one, or print through PrintNode.

### Star CloudPRNT or Epson problems[​](#trouble-polling "Star CloudPRNT or Epson problems के लिए सीधा लिंक")

**Stuck on Waiting for printer.** The printer has never reached your store. Check the Poll URL in the printer matches exactly: one wrong character turns every fetch away. If you're unsure, remove the printer and add it again for a new one. Make sure polling is on in the printer's **CloudPRNT** or **Server Direct Print** settings, then restart it. If you used the **Direct URL**, switch to the `cloudprint.wcpos.com` address: [that's what the relay is for](#relay).

**Blocked.** A security service or firewall plugin is turning the relay away, or your site is returning server errors. Follow the message on the card; for a server error, check your site's health and error logs.

**Set up before the relay existed.** Addresses already saved in a printer keep working. If that printer is stuck on **Waiting for printer**, remove it and add it again, then put the new `cloudprint.wcpos.com` address in the printer.

### PrintNode problems[​](#trouble-printnode "PrintNode problems के लिए सीधा लिंक")

**Fetch my printers fails.** Check the API key, and that the PrintNode client is running on the computer.

**A PrintNode job never prints.** The client must be running and online: a computer that's asleep prints nothing. Check you picked the printer the client reports, and that the key hasn't been revoked.

### Star Online problems[​](#trouble-star-online "Star Online problems के लिए सीधा लिंक")

**Fetch my devices fails.** The message is *Couldn't list your Star Online devices. Check the CloudPRNT URL and API key.* Check the key was copied whole, hasn't been revoked, and belongs to the same stario.online account and region as the URL. Then check the key has the permissions in [Star Online](#setup-star-online). *No devices found in this Star Online group* means the group has no device, or the URL is for another group.

## Related Documentation[​](#related-documentation "Related Documentation के लिए सीधा लिंक")

[Printer SetupAdd a printer on the device, and route templates to printers](/hi-IN/hardware/receipt-printers.md)

[Receipts at CheckoutPrint, email and reprint the receipt](/hi-IN/sell/print-email-receipts.md)

[Thermal TemplatesBuild receipts for Star and Epson printers](/hi-IN/settings/receipt-templates/thermal-templates.md)
