<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>OrderPrint</title>
	<atom:link href="https://orderprint.app/feed/" rel="self" type="application/rss+xml" />
	<link>https://orderprint.app/</link>
	<description>Automatic order printing mobile app</description>
	<lastBuildDate>Wed, 16 Sep 2026 09:44:29 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://orderprint.app/wp-content/uploads/2026/08/cropped-favicon-512-32x32.png</url>
	<title>OrderPrint</title>
	<link>https://orderprint.app/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>How to print WooCommerce orders automatically, from a phone</title>
		<link>https://orderprint.app/print-woocommerce-orders-from-a-phone/</link>
		
		<dc:creator><![CDATA[doughoseck]]></dc:creator>
		<pubDate>Thu, 10 Sep 2026 10:36:36 +0000</pubDate>
				<category><![CDATA[Setup]]></category>
		<guid isPermaLink="false">https://orderprint.app/?p=287</guid>

					<description><![CDATA[<p>Print every WooCommerce order to a thermal printer without a computer: what automatic really requires, and the order-email details that catch people out.</p>
<p>The post <a href="https://orderprint.app/print-woocommerce-orders-from-a-phone/">How to print WooCommerce orders automatically, from a phone</a> appeared first on <a href="https://orderprint.app">OrderPrint</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>WooCommerce will happily print an order. Getting it to print <strong>by itself</strong>, with nobody clicking anything, is a different problem — and it is the one that matters in a kitchen, because during service nobody is looking at a screen.</p>
<p>Here is what automatic actually requires, and how to do it from a phone. If you just want the short version for your shop, there is a <a href="https://orderprint.app/print-woocommerce-orders-automatically/">WooCommerce setup page</a> that covers it.</p>
<h2>What &#8220;automatic&#8221; actually means</h2>
<p>For an order to print with no human involved, three things have to be true. Something has to <strong>know</strong> an order arrived. Something has to be <strong>switched on</strong> at the moment it arrives. And that thing has to speak <strong>ESC/POS</strong>, the command language thermal receipt printers use.</p>
<p>Most WooCommerce printing plugins fail the second and third tests. They generate an invoice or a packing slip as HTML or PDF and hand it to a browser. That is fine for A4 paperwork. It is not a kitchen ticket, and it needs somebody to press print.</p>
<h2>The three routes</h2>
<p><strong>A computer plus a print service.</strong> A small program runs on a PC in the shop and a service connects WooCommerce to it. Flexible, handles several printers, and it means a computer has to be on all day, every day.</p>
<p><strong>A cloud-connected receipt printer.</strong> The printer has its own internet connection and receives jobs directly. The most robust option on this list, and the most expensive — you are buying a printer at a premium and locking yourself to that vendor&#8217;s models.</p>
<p><strong>Read the order email.</strong> WooCommerce already emails you every time an order comes in. A device watching that mailbox can parse the email and print it. No plugin, nothing installed on your site, and it keeps working if you later add another sales channel.</p>
<p>That third route is the one you can do from a phone, so it is the one this post is about. There is a fuller comparison of all of them, including where the other two win, on our <a href="https://orderprint.app/cloud-printer-alternatives/">ways to print</a> page.</p>
<h2>Setting it up from the email</h2>
<p><strong>Decide which mailbox.</strong> Point WooCommerce&#8217;s order emails at an address used for nothing else. Your own inbox stays private, the phone by the till only ever sees orders, and revoking that access later changes nothing else. In WooCommerce it is under <strong>Settings → Emails → New order → Recipient(s)</strong>, and that field takes more than one address, so you can keep your own copy.</p>
<p><strong>Get an app password, not your real one.</strong> Gmail, Outlook, Yahoo and most hosts stopped letting apps sign in with the password you type into a website. You need an app password — a separate one that works for a single app and can be revoked without changing your real password. For Gmail you must switch on 2-Step Verification first, or the option does not appear at all. We wrote that up separately in <a href="https://orderprint.app/email-app-password-not-working/">why your email password will not work in an app</a>.</p>
<p><strong>Choose the printer.</strong> Any thermal receipt printer that speaks ESC/POS over Bluetooth or your network, in 58mm or 80mm. Two things catch people out: a Bluetooth LE-only printer will pair with the phone perfectly and then never print, because BLE is not the serial profile receipt printers use; and a label printer is not a receipt printer, and no setting will change that. Our notes on <a href="https://orderprint.app/thermal-printers-that-work/">which thermal printers work</a> cover what to check before you buy.</p>
<p><strong>Put the phone somewhere sensible.</strong> Plugged in, screen on, near the printer. Android will eventually stop a background app on a phone whose screen is off, and that is the single most common cause of &#8220;it worked for a week and then stopped&#8221;.</p>
<h2>The WooCommerce details that actually bite</h2>
<p>If you are building this yourself rather than using an app, these cost real debugging and are barely documented anywhere.</p>
<p><strong>Parse the HTML part, not the plain text part.</strong> WooCommerce sends both. Ordinary advice says prefer plain text; here that is wrong, because WooCommerce omits the currency symbol from the plain-text version. You get <code>18,00</code> instead of <code>R18,00</code>, with no way to know which currency that is.</p>
<p><strong>The quantity separator is ×, U+00D7 — not the letter x.</strong> Matching on &#8220;x&#8221; finds nothing in a real order, or worse, matches inside a product name like &#8220;Pack of 6x Rolls&#8221;.</p>
<p><strong>WooCommerce changed its order-email template.</strong> Between 10.3.8 and 11.0.0 the structure moved: product names went from bare text to a heading, the item-meta class changed, the billing heading changed, and the customer-note row changed. Build against one and you silently drop every item on the other.</p>
<p><strong>Never key on the heading text.</strong> The subject and heading of that email are free-text fields a shopkeeper can edit in WooCommerce&#8217;s settings. Anything depending on the words &#8220;New order&#8221; breaks the day someone rewords their own email. Key on the structure instead.</p>
<p><strong>Stock WooCommerce sends no order status.</strong> If you see &#8220;Processing&#8221; in your order emails, that comes from a customised template, not from WooCommerce itself.</p>
<p><strong>WooCommerce Food adds more.</strong> If you run it, the email also carries the order method, requested date and time, table number, add-ons and branch — and for a delivery order the billing address <em>is</em> the destination, because the plugin collects the delivery address at checkout and sends no separate shipping block.</p>
<h2>The question nobody asks</h2>
<p>Not &#8220;does it print&#8221;, but <strong>how would I know if it stopped?</strong></p>
<p>Every route above fails silently. Paper runs out. A Bluetooth printer goes to sleep and accepts a job it never prints. An app password gets revoked. Android kills a background process overnight. Every one of those looks exactly like a quiet night.</p>
<p>A printer that breaks loudly gets fixed in five minutes. One that stops quietly costs you a customer, a refund and a review — and you find out when the phone rings.</p>
<p>So whatever you set up, make that the question you ask of it. If the honest answer is &#8220;a customer would tell me&#8221;, that is the actual problem to solve.</p>
<h2>If you would rather not build it</h2>
<p>That is what we make. OrderPrint runs on an ordinary Android phone, watches the mailbox your WooCommerce order emails already arrive in, and prints each one as a kitchen ticket to a Bluetooth or network thermal printer. No computer, no cloud printing service, nothing installed on your site.</p>
<p>It handles everything above — the HTML part, the ×, both template versions, WooCommerce Food&#8217;s extras — and it tells you when a ticket does not come out.</p>
<p>Here is the whole setup, start to finish, in under three minutes:</p>
<p><iframe title="How to print WooCommerce orders automatically from a phone (no computer, no cloud printer)" width="1080" height="608" src="https://www.youtube-nocookie.com/embed/NPIch5xjYp4?feature=oembed"  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p>Free for the first 100 orders a month, no account and no card.</p>
<p><a href="https://play.google.com/store/apps/details?id=app.orderprint"><img loading="lazy" decoding="async" src="https://orderprint.app/wp-content/uploads/2026/08/play-badge.png" alt="Get it on Google Play" width="323" height="125" /></a></p>
<p>The post <a href="https://orderprint.app/print-woocommerce-orders-from-a-phone/">How to print WooCommerce orders automatically, from a phone</a> appeared first on <a href="https://orderprint.app">OrderPrint</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Is it safe to give an app your email password?</title>
		<link>https://orderprint.app/is-it-safe-to-give-an-app-your-email-password/</link>
		
		<dc:creator><![CDATA[doughoseck]]></dc:creator>
		<pubDate>Thu, 20 Aug 2026 12:59:11 +0000</pubDate>
				<category><![CDATA[Privacy and security]]></category>
		<guid isPermaLink="false">https://orderprint.app/?p=211</guid>

					<description><![CDATA[<p>What an app password actually grants, why where it is stored matters more than who stores it, and five questions to ask before you type one in.</p>
<p>The post <a href="https://orderprint.app/is-it-safe-to-give-an-app-your-email-password/">Is it safe to give an app your email password?</a> appeared first on <a href="https://orderprint.app">OrderPrint</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>An app wants your email password so it can do something useful — print your orders, back up your mail, file your invoices. And you hesitate, because your email account is the master key to everything else you own.</p>
<p>You are right to hesitate. Here is what you are actually being asked for, what it does and does not allow, and the questions worth asking before you type anything.</p>
<h2>What an app password is, and is not</h2>
<p>If your provider is any of the major ones, you will not be handing over your real password. You will generate an <a href="https://orderprint.app/email-app-password-not-working/"><strong>app password</strong></a> — a separate, randomly generated credential that exists alongside your real one.</p>
<p>What it grants: the ability to sign in to your mailbox and read mail, as that app.</p>
<p>What it does not grant, and this is the part worth internalising:</p>
<ul>
<li><strong>It cannot change your account password</strong>, or your recovery phone, or your security settings.</li>
<li><strong>It cannot be used to log in to the website.</strong> Try it and it fails.</li>
<li><strong>It does not unlock anything else</strong> connected to that account — no documents, no photos, no other services.</li>
<li><strong>You can revoke it on its own</strong>, at any time, without changing your real password or disturbing anything else you use.</li>
</ul>
<p>That last point is the important one. An app password is revocable in a way your real password is not. Handing an app a password you can cancel in ten seconds is a genuinely different risk from handing it the keys.</p>
<h2>The question that actually matters</h2>
<p>Not &#8220;is this app trustworthy&#8221;. You cannot verify that. The useful question is narrower and answerable:</p>
<p><strong>Where does the password go?</strong></p>
<p>There are two architectures, and the difference is not a detail.</p>
<p><strong>The app sends it to a server.</strong> The company&#8217;s system signs into your mailbox on your behalf, usually so it can keep working while your device is off. Your credential now lives on their infrastructure. That may be perfectly well run — but you are trusting their storage, their staff, their backups and their breach response, not just their app.</p>
<p><strong>The app keeps it on your device.</strong> The password stays in your phone&#8217;s encrypted storage and is used from your phone to talk to your mailbox directly. There is no copy anywhere else, because there is nowhere else.</p>
<p>Both can be honest. But they fail differently: the first has a single place where a breach exposes many people&#8217;s mailboxes at once, and the second does not. When a company is breached, it is the accumulated credentials that make the news.</p>
<h2>Five questions to ask any app that wants mailbox access</h2>
<ol>
<li><strong>Is there a server involved at all?</strong> If there is no account to create, that is a strong hint the answer is no. An app that never asks you to sign up has nowhere to store your data.</li>
<li><strong>Does it ask for an app password, or your real one?</strong> An app that insists on your actual account password either has not thought about this or does not care. Both are reasons to walk away.</li>
<li><strong>What does its privacy policy say it collects?</strong> Not the reassuring summary — the list. If the list is long for an app that only needs to read one mailbox, ask why.</li>
<li><strong>What happens when you uninstall it?</strong> If everything it held was on your device, uninstalling ends the relationship. If it was on a server, uninstalling may change nothing at all.</li>
<li><strong>Can you revoke access without disrupting everything else?</strong> With an app password, yes, always. That is the safety net.</li>
</ol>
<h2>Two things you can do that cost nothing</h2>
<p><strong>Use a mailbox that only receives orders.</strong> Point your shop&#8217;s notifications at an address used for nothing else and give the app that one. Now the worst case is not &#8220;someone read my email&#8221; but &#8220;someone saw my order confirmations&#8221; — which are, in most shops, less sensitive than the rest of your inbox by a wide margin. It also makes revoking trivial: delete the mailbox and you are done.</p>
<p><strong>Write down what you gave access to.</strong> App passwords accumulate silently. Every provider has a page listing the ones you have generated, and most people have several from apps they stopped using years ago. Have a look at yours — it takes two minutes and it is usually a bit revealing.</p>
<h2>Where we stand</h2>
<p>We build <a href="https://orderprint.app/">OrderPrint</a>, so treat this as the interested party&#8217;s answer.</p>
<p><strong>There is no OrderPrint server.</strong> Not &#8220;we don&#8217;t look at your data&#8221; — there is nowhere to look. Your email address, your app password and your customers&#8217; orders stay on your phone. The password sits in Android&#8217;s encrypted storage and is used for exactly one thing: signing in to your mailbox to read new orders. There is no account to create, no analytics, no adverts, no tracking.</p>
<p>That is not generosity. It is the consequence of a design decision made early: on-device polling meant no infrastructure to run, no hosting bill, and no ops — and it happens to mean that the question &#8220;what if you get breached&#8221; has an unusually short answer.</p>
<p>It has a real trade-off, and we should say it. Because everything runs on your phone, <strong>the phone has to be on</strong>. There is no server quietly catching orders while it is charging in a drawer. Cloud-based competitors genuinely beat us on that, and if it matters more to you than where your credentials live, they are the better choice.</p>
<p>That trade is the whole design. We think it is the right one for a shop with a phone by the till. It is worth knowing it exists rather than discovering it later.</p>
<p>Our full privacy terms are on the <a href="https://orderprint.app/terms-and-privacy/">terms and privacy page</a>, and the app-password walkthrough for each provider is on the <a href="https://orderprint.app/help-and-support/">help page</a>.</p>
<p>The post <a href="https://orderprint.app/is-it-safe-to-give-an-app-your-email-password/">Is it safe to give an app your email password?</a> appeared first on <a href="https://orderprint.app">OrderPrint</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to print orders for two locations from one online shop</title>
		<link>https://orderprint.app/print-orders-two-locations/</link>
		
		<dc:creator><![CDATA[doughoseck]]></dc:creator>
		<pubDate>Thu, 20 Aug 2026 12:59:10 +0000</pubDate>
				<category><![CDATA[Setup]]></category>
		<guid isPermaLink="false">https://orderprint.app/?p=210</guid>

					<description><![CDATA[<p> Split the notifications in your shop rather than routing in the printer. One mailbox and one phone per branch, with nothing central to fail.</p>
<p>The post <a href="https://orderprint.app/print-orders-two-locations/">How to print orders for two locations from one online shop</a> appeared first on <a href="https://orderprint.app">OrderPrint</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>You have two branches, one online shop, and one problem: orders for both arrive in the same place, and each kitchen only wants its own.</p>
<p>Most people go looking for a printing tool clever enough to sort them out. That is the harder road. The trick is to stop asking the printer to decide, and let your shop decide instead — because your shop already knows which branch an order is for, and it can put that order in a different mailbox before anything else gets involved.</p>
<p>Then every branch needs nothing smarter than a phone that watches one mailbox.</p>
<h2>The pattern: one mailbox, one phone, per branch</h2>
<p>Concretely, for two branches:</p>
<ul>
<li>Branch A&#8217;s orders go to <em>orders-a@yourshop.co.za</em>. A phone at branch A watches that mailbox and prints what arrives.</li>
<li>Branch B&#8217;s orders go to <em>orders-b@yourshop.co.za</em>. A phone at branch B does the same.</li>
</ul>
<p>Neither phone knows the other exists. Neither needs a rule, a filter, or a routing table. Each one simply prints everything it receives, which is the simplest thing a printing setup can possibly do — and simple things break less.</p>
<p>It has a second benefit that is easy to miss: <strong>the branches are independent</strong>. If branch A&#8217;s printer jams, or its phone dies, or its wi-fi drops, branch B carries on without noticing. A central system that routes everything is a central system that can take everything down.</p>
<p>The whole question, then, is how to split the notifications. Here is how on each platform.</p>
<h2>Shopify</h2>
<p>Shopify can send order notifications to a specific address for a specific location, natively.</p>
<p>Go to <strong>Settings → Notifications → Staff notifications</strong>, then <strong>Add recipient</strong>. Choose an email address, enter it, and — if you have the point of sale channel installed — pick the location it applies to. Repeat for each branch; one notification per location-and-address pair.</p>
<p>The location selector is genuinely there when you add a recipient — we have checked. What we cannot tell you is how it behaves on <em>your</em> setup, particularly if your branches come from a pickup or delivery app rather than Shopify’s own location list.</p>
<p>So do this before you buy a second phone: set up the two recipients, place one test order for one branch, and check which mailbox it lands in. It takes five minutes, and it is the difference between each kitchen seeing its own orders and both kitchens seeing everything — which is the sort of thing you find out on a busy Friday if you do not find it out now.</p>
<p>If it does not split the way you need, use <strong>Shopify Flow</strong> instead. It is free on all plans. Build a workflow that triggers on order creation, checks a condition — the location, a delivery method, an order attribute — and sends an internal email to the right address. Flow can read order attributes directly, so it copes with setups that the native filter does not.</p>
<p>One thing to know about the Flow route: the email it sends is one you compose, so it will not look like Shopify&#8217;s standard order notification. A printing app that has been built to read the standard email will fall back to printing a plainer ticket. Worth checking what comes out before you rely on it. There is a fuller setup walkthrough on our <a href="https://orderprint.app/print-shopify-orders-automatically/">Shopify order printing page</a>.</p>
<h2>WooCommerce</h2>
<p>Plain WooCommerce sends the new-order email to a single admin address, and there is no built-in way to vary it by branch. You need something on top.</p>
<p>If you are running <strong>WooCommerce Food</strong>, this is already solved: locations are a taxonomy, and each location can carry its own order email address. Set each branch&#8217;s address there and the split happens without any extra plugin at all.</p>
<p>Without it, look at one of the plugins that routes the order email by category, product or location. They are common, because plenty of businesses need orders to reach a particular supplier or department rather than one inbox. Our <a href="https://orderprint.app/print-woocommerce-orders-automatically/">WooCommerce order printing page</a> covers the rest of the setup.</p>
<h2>Wix</h2>
<p>Wix Restaurants can send order notifications to additional addresses, and its automations can send an email when an order comes in. Whether you can vary the address by location depends on how your locations are set up, so — as with Shopify — send a test order and watch where it arrives before buying a second phone. The <a href="https://orderprint.app/print-wix-orders-automatically/">Wix order printing page</a> has the single-location setup in full.</p>
<h2>What you need at each branch</h2>
<p>Very little, and that is the point.</p>
<ul>
<li><strong>A phone.</strong> An old one is fine. It sits by the till, plugged in.</li>
<li><strong>A thermal receipt printer</strong>, Bluetooth or on the network.</li>
<li><strong>That branch&#8217;s mailbox</strong>, and an <a href="https://orderprint.app/email-app-password-not-working/">app password</a> for it.</li>
</ul>
<p>If a branch wants a kitchen ticket and a counter copy, that is two printers on the one phone, which is a paid feature on our app and works the same at every branch.</p>
<h2>When this is the wrong answer</h2>
<p>Honesty is worth more than a sale here, so: this pattern suits branches that are genuinely separate places, each with its own counter and its own printer.</p>
<p>It is <strong>not</strong> the right answer if you need one location to route different orders to different printers by rule — kitchen versus bar, food versus drinks, by product category. That is real conditional routing, and it belongs in a tool built for it, usually a print service with rules plus a small machine at the site running it. Our app prints every order it receives to every printer you have enabled; it does not choose between them.</p>
<p>Nor does it help if your platform genuinely cannot split notifications. Test that first — it is ten minutes and one test order, and it decides the whole approach.</p>
<h2>Cost, roughly</h2>
<p>Per branch: a phone you probably already have, a thermal printer, and a subscription. Our plans cover one phone each, so three branches means three subscriptions — and three independent setups that cannot take each other down.</p>
<p>Compare that with a cloud printer per site, or a computer per site running a print service, and the arithmetic is usually comfortable.</p>
<p><a href="https://orderprint.app/">OrderPrint</a> watches one mailbox and prints every new order to a thermal receipt printer. The first 100 orders a month are free on each phone, so you can prove the whole arrangement at one branch before committing to any of it. There is more on setup on our <a href="https://orderprint.app/help-and-support/">help page</a>.</p>
<p>The post <a href="https://orderprint.app/print-orders-two-locations/">How to print orders for two locations from one online shop</a> appeared first on <a href="https://orderprint.app">OrderPrint</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Why our order tickets print two times, not one</title>
		<link>https://orderprint.app/placed-and-printed-times-on-order-tickets/</link>
		
		<dc:creator><![CDATA[doughoseck]]></dc:creator>
		<pubDate>Thu, 20 Aug 2026 12:59:08 +0000</pubDate>
				<category><![CDATA[How it works]]></category>
		<guid isPermaLink="false">https://orderprint.app/?p=209</guid>

					<description><![CDATA[<p> Every ticket shows when the order was placed and when it printed. The gap between them is the most useful diagnostic in the system.</p>
<p>The post <a href="https://orderprint.app/placed-and-printed-times-on-order-tickets/">Why our order tickets print two times, not one</a> appeared first on <a href="https://orderprint.app">OrderPrint</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Look at the bottom of one of our tickets and you will find two times, one under the other:</p>
<pre><code>Placed:  19 Aug 2026, 13:31:10
Printed: 19 Aug 2026, 13:31:43</code></pre>
<p>Most receipts show one time. We print two, and the gap between them is the most useful diagnostic in the whole system — precisely because nobody has to be told what it means.</p>
<h2>They are answering different questions</h2>
<p><strong>Placed</strong> is when your customer pressed the button. It comes from the order email itself, so it is your shop&#8217;s own record of the moment the sale happened.</p>
<p><strong>Printed</strong> is when the paper came out. That is our part.</p>
<p>Most of the time they are seconds apart and the two lines are simply reassuring. When they are not, something between the customer and your counter is slow, and you find out by reading a ticket you were already holding.</p>
<h2>Why there is any gap at all</h2>
<p>Roughly thirty seconds is normal for us, and it is worth explaining rather than hiding.</p>
<p>Our app checks the mailbox every thirty seconds. It does not sit waiting to be notified about new mail — it asks, repeatedly. So an order arrives somewhere within that window, and the ticket follows.</p>
<p>We could have used the push method instead. It is more elegant and uses less battery. We deliberately did not, for one reason: <strong>a push connection that has quietly died looks exactly like a push connection on which nothing has happened</strong>. On a shop phone, overnight, behind a router that drops idle connections, that failure mode means the app appears perfectly healthy and prints nothing. A thirty-second check cannot fail that way — either it completes, or it visibly errors.</p>
<p>So the honest description is not &#8220;instant&#8221;. It is &#8220;never more than about half a minute behind, and you can see exactly how far behind on every ticket&#8221;.</p>
<h2>What a big gap actually tells you</h2>
<p>The two lines narrow the problem down without any technical knowledge.</p>
<p><strong>A gap of minutes</strong> usually means the email took a while to arrive. Order confirmations are ordinary email and they queue like ordinary email, particularly on free mail providers at busy times. Nothing in the shop is broken.</p>
<p><strong>A gap of hours</strong> means <a href="https://orderprint.app/kitchen-printer-stopped-printing/">the phone was not working</a> while the order was waiting — out of battery, off the network, or the app was closed by the phone&#8217;s battery manager. The order printed as soon as things recovered, which is correct behaviour, but it is worth knowing it happened.</p>
<p><strong>Times that match, all evening</strong> means the whole chain is healthy. That is the common case, and it is quietly worth something.</p>
<h2>Why print it rather than put it in the app</h2>
<p>We could have put this on a status screen. Almost everything else is on the status screen.</p>
<p>But the person who benefits from this information is not the person who opens the app. It is whoever is standing at the pass, tearing tickets off a printer, hundreds of times a week. They develop a feel for what normal looks like — and a person with a feel for normal spots abnormal instantly, without being trained, without checking anything, and without being told what to look for.</p>
<p>Put the diagnostic on the paper and the paper does the work.</p>
<h2>The reprint case, which is where this gets subtle</h2>
<p>Reprint an order an hour later and you might expect both times to update. They do not, and the reason matters.</p>
<p><strong>Placed stays exactly as it was.</strong> It is a fact about the customer&#8217;s order and it never changes.</p>
<p><strong>Printed shows when this piece of paper came out</strong>, not when the original did.</p>
<p>So a reprinted ticket honestly shows a large gap, because that is the truth: this paper is an hour old relative to the order. If we had frozen both times, a reprint would be indistinguishable from a fresh ticket, and the one thing a ticket must never do is lie about when it was produced.</p>
<p>This is also why the placed time is stored with the order rather than worked out at printing time. An early version of ours re-derived it, which meant a reprint quietly stamped today&#8217;s date on a three-day-old order. Correct-looking, entirely wrong.</p>
<h2>Two lines, no training</h2>
<p>The whole feature is two lines of text. It adds nothing to the workflow, needs no explanation to staff, and turns a receipt into something that reports on the health of the system that produced it.</p>
<p>If you already print order tickets some other way, it is worth asking whether you could add the same thing. The value is not in our implementation — it is in the idea that the artefact people already handle should tell them whether the machinery is behaving.</p>
<p><a href="https://orderprint.app/">OrderPrint</a> prints both times on every ticket. It watches the mailbox your order emails arrive in and prints each new order to a thermal receipt printer, on any Android phone, with no computer and no cloud printing service. The first 100 orders a month are free.</p>
<p><a href="https://play.google.com/store/apps/details?id=app.orderprint"><img loading="lazy" decoding="async" src="https://orderprint.app/wp-content/uploads/2026/08/play-badge.png" alt="Get it on Google Play" width="323" height="125" /></a></p>
<p>The post <a href="https://orderprint.app/placed-and-printed-times-on-order-tickets/">Why our order tickets print two times, not one</a> appeared first on <a href="https://orderprint.app">OrderPrint</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>When the kitchen printer stops and nobody notices</title>
		<link>https://orderprint.app/kitchen-printer-stopped-printing/</link>
		
		<dc:creator><![CDATA[doughoseck]]></dc:creator>
		<pubDate>Thu, 20 Aug 2026 11:52:48 +0000</pubDate>
				<category><![CDATA[Troubleshooting]]></category>
		<guid isPermaLink="false">https://orderprint.app/?p=208</guid>

					<description><![CDATA[<p>Paper, sleeping printers, battery managers and expired passwords. The ways order printing goes quiet, and why failing silently is worse than failing.</p>
<p>The post <a href="https://orderprint.app/kitchen-printer-stopped-printing/">When the kitchen printer stops and nobody notices</a> appeared first on <a href="https://orderprint.app">OrderPrint</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>The worst failure in a kitchen is not the printer that breaks. It is the printer that stops quietly and lets everyone carry on believing it is working.</p>
<p>A broken printer gets fixed in five minutes, because somebody notices. A silent one costs you a customer, a refund and a review — and you only find out when the phone rings and somebody asks where their food is.</p>
<p>If you are running online orders through a printer, these are the ways it goes quiet, roughly in order of how often they actually happen.</p>
<h2>The paper ran out</h2>
<p>The most common one by a distance, and the least interesting.</p>
<p>Thermal paper gives you a warning: most rolls have a coloured stripe printed along the last metre or so. It is easy to miss during service and obvious the moment you know to look for it.</p>
<p>Two habits fix this permanently. Change the roll when the stripe appears rather than when it runs out, and keep the spare where the printer is, not in the store room. A roll costs very little. A missed order does not.</p>
<h2>The printer went to sleep, or lost the network</h2>
<p>Network printers get an address from your router. Routers reboot, addresses get reassigned, and the printer that was at one address in the morning can be at another by evening — while the thing sending it jobs is still politely talking to the old one.</p>
<p>The fix is to give the printer a fixed address. Most routers can reserve one for a specific device, usually under DHCP reservation or static lease. Ten minutes once, and it never moves again.</p>
<p>Bluetooth printers have a related problem: they drop the pairing when they lose power, or when something else pairs with them. If a printer is shared between a phone and a laptop, expect trouble.</p>
<h2>The phone killed the app to save battery</h2>
<p>This is the one that catches people out, because nothing looks wrong at all.</p>
<p>Android phone makers — Samsung, Xiaomi, Huawei and Honor are the usual suspects — ship aggressive battery managers that close background apps they decide you are not using. An app sitting quietly watching a mailbox looks exactly like an app doing nothing. So it gets closed, and the screen still shows whatever it showed before.</p>
<p>If a phone is doing a job, take it out of battery optimisation. It is usually under Battery, then a setting called something like &#8220;unrestricted&#8221;, &#8220;don&#8217;t optimise&#8221;, or &#8220;allow background activity&#8221;. The wording differs on every brand, which is itself a clue to how much they want you to find it.</p>
<p>And keep the phone plugged in. A phone doing a job is not really a phone any more, it is a small appliance.</p>
<h2>The mailbox stopped letting the app in</h2>
<p>If your order printing works off email — as ours does — then the mailbox is part of the machinery. A password change, a <a href="https://orderprint.app/email-app-password-not-working/">revoked app password</a>, or a provider tightening its security settings will stop the app signing in.</p>
<p>The failure here is honest at least: the app knows immediately that it cannot sign in. What matters is whether it tells you, or just sits there.</p>
<h2>The principle: a system that fails silently is worse than no system</h2>
<p>Every item above is ordinary. Paper runs out, routers reboot, passwords change. None of it is avoidable and none of it is anybody&#8217;s fault.</p>
<p>What decides whether it hurts is what happens next. If a shop knows its printer is not printing, somebody checks a screen and nothing is lost. If it does not know, the shop keeps promising food it never started cooking.</p>
<p>That is why the design goal is not &#8220;never fail&#8221;. It is <strong>never fail quietly</strong>.</p>
<p>In practice that means three things, and they are worth asking of any tool you use for this, not just ours:</p>
<ul>
<li><strong>Does it tell you when a print fails?</strong> Not a log you would have to go looking for — an alert, on the device, at the moment it happens.</li>
<li><strong>Does it keep the order?</strong> A failed print must leave the order sitting there, clearly marked as not printed, so it can go out again with one tap. An order that exists only as a piece of paper that never appeared is gone.</li>
<li><strong>Can you tell at a glance that it is alive?</strong> A screen that says &#8220;monitoring&#8221; and lists today&#8217;s orders answers the question from across the room. A blank screen answers nothing.</li>
</ul>
<h2>The five-second check that catches almost everything</h2>
<p>Whatever you are running, build one habit: <strong><a href="https://orderprint.app/placed-and-printed-times-on-order-tickets/">look at the last ticket time</a></strong>.</p>
<p>If your printing setup shows you when the last order came in, then a glance tells you whether the whole chain — shop, email, app, printer — was working a few minutes ago. It is quicker than any diagnostic and it needs no technical knowledge at all.</p>
<p>Do it when you open. Do it at the start of the evening. That is enough.</p>
<h2>How we handle it</h2>
<p><a href="https://orderprint.app/">OrderPrint</a> alerts you when a print fails, names the printer and the order, and leaves the order in the list marked as not printed so it can be reprinted with one tap. Nothing is thrown away and nothing is assumed to have worked.</p>
<p>It also checks the mailbox every thirty seconds rather than waiting to be told about new mail — which sounds like a small detail, but it means the connection is never idle long enough to go stale without anybody noticing. A quiet night looks exactly like a busy one, from the app&#8217;s point of view.</p>
<p>There is more on failure handling and what to check on our <a href="https://orderprint.app/help-and-support/">help page</a>, and if you are choosing hardware, our notes on <a href="https://orderprint.app/thermal-printers-that-work/">which thermal printers work</a> cover the connection choices above. There is also a comparison of <a href="https://orderprint.app/cloud-printer-alternatives/">the four ways to get orders onto paper</a>, and where each one fits.</p>
<p>The post <a href="https://orderprint.app/kitchen-printer-stopped-printing/">When the kitchen printer stops and nobody notices</a> appeared first on <a href="https://orderprint.app">OrderPrint</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>We reinstalled our app and it printed 63 old orders</title>
		<link>https://orderprint.app/app-printed-old-orders-after-reinstall/</link>
		
		<dc:creator><![CDATA[doughoseck]]></dc:creator>
		<pubDate>Thu, 20 Aug 2026 11:52:01 +0000</pubDate>
				<category><![CDATA[Troubleshooting]]></category>
		<guid isPermaLink="false">https://orderprint.app/?p=207</guid>

					<description><![CDATA[<p>An Android backup restored a bookmark onto a new phone and three weeks of orders printed themselves. What caused it, and what a printing app should do about it.</p>
<p>The post <a href="https://orderprint.app/app-printed-old-orders-after-reinstall/">We reinstalled our app and it printed 63 old orders</a> appeared first on <a href="https://orderprint.app">OrderPrint</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>We had been testing our order-printing app on one phone for days. Everything worked. Then we installed it on a second phone, pointed it at the same mailbox, and watched it print sixty-three orders from the previous three weeks.</p>
<p>Every one printed perfectly. Every one was completely unwanted. It cost a roll of paper and, on a metered plan, it would have cost most of a month&#8217;s allowance before the shop had made a single sale.</p>
<p>The cause turned out to be a default setting in Android that almost nobody thinks about, and the fix taught us something more useful than the bug itself.</p>
<h2>How an app avoids printing your whole mailbox</h2>
<p>Any app that prints orders from email has to answer one question constantly: <em>which of these messages have I already dealt with?</em></p>
<p>The answer is a bookmark. IMAP — the protocol apps use to read mail — gives every message in a mailbox a number called a UID, and those numbers only ever go up. So the app records the highest number it has seen, and on the next check it asks the server for anything higher. Everything below the bookmark is history and is left alone.</p>
<p>This is also how a fresh install avoids disaster. The first time the app connects, it does not print anything at all. It reads the current top of the mailbox, writes that down as its bookmark, and starts from there. Whatever was already sitting in the inbox — three weeks of orders, six months of newsletters — is deliberately skipped.</p>
<p>That behaviour is correct, and it is why our second phone should have printed nothing.</p>
<h2>Android restored the bookmark from a backup</h2>
<p>Android has a feature called Auto Backup. It quietly copies an app&#8217;s settings to your Google account, and when you install that app on a new phone, it restores them. For most apps this is a genuinely nice thing — your preferences follow you to a new handset.</p>
<p>The part that matters: <strong>it is on by default</strong>. An app developer who never thinks about it gets it anyway.</p>
<p>So our second phone did not start fresh. It restored the first phone&#8217;s settings, bookmark included. And that bookmark pointed at a position in a mailbox this phone had never actually read. The app looked at the number, looked at the mailbox, concluded that sixty-three messages had arrived since, and did exactly what it was built to do.</p>
<p>It was not a bug in the logic. The logic was fine. It was handed a fact that was no longer true.</p>
<h2>Turning the backup off is not enough</h2>
<p>The obvious fix is to stop backing up the bookmark, and that is the first thing we did. On modern Android that means declaring <code>dataExtractionRules</code>, not the older <code>fullBackupContent</code> that most search results still show you.</p>
<p>But fixing the cause you found is not the same as fixing the problem. We could think of other ways the same situation might arise — a mailbox restored from a backup, a phone&#8217;s clock being wrong, a provider renumbering messages, or something we had not imagined at all. In each case the app would see a big pile of old orders and start printing.</p>
<p>So we added a second layer that does not care <em>why</em> it happened.</p>
<h2>What a printing app should do with a pile of old orders</h2>
<p>The rule we settled on: if a single check turns up ten or more orders that are <strong>more than a day old</strong>, do not print them. Save them, list them, and ask.</p>
<p>Three details in that sentence took some getting right.</p>
<p><strong>Only old orders are ever held.</strong> Age is judged per order, not per batch. A rush of fifteen genuine orders during Friday service prints instantly, because they are new. This matters more than it sounds — the first version of our rule judged the whole batch, which would have held nine fresh orders because one straggler was old. Holding somebody&#8217;s dinner to avoid printing an old ticket is exactly the wrong trade.</p>
<p><strong>Ten, not two.</strong> One order delayed thirty hours by a mail server should print, not wait for permission. A pile of ten or more is history; one or two is a hiccup.</p>
<p><strong>If the age cannot be read, it prints.</strong> Some emails have no usable date. An unreadable instrument must never be a reason to withhold an order — a missed order is the one unforgivable failure, while a wrongly printed old one costs a few centimetres of paper.</p>
<p>The shop then sees a banner: <em>63 old orders were not printed.</em> Print them all, or dismiss them. Nothing is thrown away either way, and none of it counts against a monthly allowance unless it actually prints.</p>
<h2>The bit worth stealing</h2>
<p>If you build anything that acts automatically on incoming data, the lesson generalises well beyond printers.</p>
<p>Fixing the cause is necessary. Assuming you have found <em>every</em> cause is where it goes wrong. The valuable safeguard is the one that watches for the shape of the disaster rather than its source — a lot of things at once, all of them old, all of them about to cost the user something.</p>
<p>There is a second lesson in here too, and it is the one that stung. Both halves of our system were individually correct. The bookmark logic was right. The backup behaviour was Android working as designed. The failure lived in the seam between them, which is exactly where tests do not look, because tests tend to check components rather than the joins. The same instinct applies to everything else that can stop an order reaching the counter, which we went through in <a href="https://orderprint.app/kitchen-printer-stopped-printing/">when the kitchen printer stops and nobody notices</a>.</p>
<h2>What this means if you are just using the app</h2>
<p>Nothing, mostly, which is the point. Moving to a new phone will not print your history. If something unusual ever does produce a flood of old orders, you will be asked rather than surprised, and your monthly allowance will not be spent without your say-so.</p>
<p><a href="https://orderprint.app/">OrderPrint</a> watches the mailbox your order emails arrive in and prints every new order to a thermal receipt printer — on any Android phone, with no computer and no cloud printing service. The first 100 orders a month are free.</p>
<p><a href="https://play.google.com/store/apps/details?id=app.orderprint"><img loading="lazy" decoding="async" src="https://orderprint.app/wp-content/uploads/2026/08/play-badge.png" alt="Get it on Google Play" width="323" height="125" /></a></p>
<p>The post <a href="https://orderprint.app/app-printed-old-orders-after-reinstall/">We reinstalled our app and it printed 63 old orders</a> appeared first on <a href="https://orderprint.app">OrderPrint</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Why your email password will not work in an app (and how to fix it)</title>
		<link>https://orderprint.app/email-app-password-not-working/</link>
		
		<dc:creator><![CDATA[doughoseck]]></dc:creator>
		<pubDate>Thu, 20 Aug 2026 11:51:19 +0000</pubDate>
				<category><![CDATA[Setup]]></category>
		<guid isPermaLink="false">https://orderprint.app/?p=206</guid>

					<description><![CDATA[<p>Your provider stopped letting apps sign in with your ordinary password. How to create an app password on Gmail, Outlook, Yahoo and your own domain.</p>
<p>The post <a href="https://orderprint.app/email-app-password-not-working/">Why your email password will not work in an app (and how to fix it)</a> appeared first on <a href="https://orderprint.app">OrderPrint</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>You have set up an app that needs to read your mailbox — a printing app, a backup tool, an old email client — and it will not sign in. The password is definitely right. You have typed it slowly, twice. It still fails.</p>
<p>Nothing is broken. Your provider has stopped accepting that password from apps, and wants a different one instead. It takes about two minutes to fix once you know what you are looking for.</p>
<h2>Why your real password stopped working</h2>
<p>For years, any app could sign in to your mailbox with the same password you type into the website. That was convenient and it was also the single easiest thing in the world to steal. One leaked password gave an attacker your entire email account, and your email account is how every other account you own gets reset.</p>
<p>So the big providers changed it. If you have two-factor authentication switched on — and on most accounts you now do, whether you remember switching it on or not — your ordinary password is no longer enough on its own. A password alone cannot satisfy two-factor, and an app has no way to ask you for a code from your phone every time it checks for mail.</p>
<p>The answer they landed on is the <strong>app password</strong>: a separate, generated password that works for exactly one app, that you can revoke on its own, and that never gives up your real credentials.</p>
<p>It is genuinely better. If the app is compromised, or you stop using it, you delete that one password and nothing else about your account changes. Your real password stays untouched.</p>
<h2>Gmail</h2>
<p>App passwords only appear once 2-Step Verification is on. If you cannot find the option, that is almost always why.</p>
<ol>
<li>Go to <a href="https://myaccount.google.com/security" target="_blank" rel="nofollow noopener">your Google Account security page</a>.</li>
<li>Turn on <strong>2-Step Verification</strong> if it is not already on.</li>
<li>Search your account settings for <strong>App passwords</strong>, or go to <a href="https://myaccount.google.com/apppasswords" target="_blank" rel="nofollow noopener">myaccount.google.com/apppasswords</a>.</li>
<li>Give it a name you will recognise later — the name is only a label, it changes nothing.</li>
<li>Google shows you sixteen characters in four groups. That is the password. Copy it before you close the page, because it is never shown again.</li>
</ol>
<p>Type it into the app without the spaces. Google displays it in groups purely to make it readable.</p>
<h3>The Workspace exception that catches people</h3>
<p>If this is a work account — an address at your company&#8217;s own domain, run through Google Workspace — your administrator can switch app passwords off for everybody. When they have, the option simply is not there, no matter how correctly you have set up 2-Step Verification.</p>
<p>That is not something you can fix from your side. Either ask whoever manages your accounts, or use a different mailbox for the job.</p>
<h2>Outlook and Hotmail</h2>
<p>Same shape, different menu. Turn on two-step verification in your Microsoft account security settings, then look for <strong>App passwords</strong> in the advanced security options. Microsoft generates one, shows it once, and expects you to paste it into the app.</p>
<p>One thing specific to Microsoft: some newer Outlook and Hotmail accounts have moved to a sign-in method that does not use app passwords at all. If you cannot find the option and two-step is definitely on, that is likely the reason, and the workaround is the same as for Workspace — use a different mailbox for the app.</p>
<h2>Yahoo</h2>
<p>Yahoo has had app passwords for a long time and they work reliably. Account Security, then <strong>Generate app password</strong>. Two-step verification must be on first, as everywhere else.</p>
<h2>Your own domain, through your hosting company</h2>
<p>This is the happy case, and it surprises people.</p>
<p>If your address is at your own website — <em>orders@yourshop.co.za</em>, run through cPanel or your host&#8217;s mail service — then in most cases <strong>the ordinary mailbox password works fine</strong>. There is no app password to generate, because there is no two-factor requirement getting in the way. You create the mailbox, you set its password, and apps can sign in with it.</p>
<p>If you run your shop on your own domain, this is the least trouble by a distance.</p>
<h2>A mailbox for orders alone is worth the five minutes</h2>
<p>Whatever provider you are on, consider pointing your shop&#8217;s order emails at an address used for nothing else, and giving the app that one.</p>
<p>Three reasons, and they are all practical rather than paranoid:</p>
<ul>
<li>Your own inbox stays private. A phone by the till never sees anything but orders.</li>
<li>Revoking access later changes nothing else. Delete the mailbox or its password and you are done.</li>
<li>Filtering gets simpler. No newsletters, no supplier invoices, no receipts from anything else — just orders.</li>
</ul>
<p>Most platforms let you add a second notification address in a couple of clicks. It is the single easiest improvement you can make to a setup like this.</p>
<h2>If it still will not sign in</h2>
<p>Work through these in order. It is almost always the first one.</p>
<ul>
<li><strong>You pasted the real password, not the app password.</strong> Easily done, especially if the browser autofilled it.</li>
<li><strong>You included the spaces.</strong> Google shows the sixteen characters in four groups of four. Type them as one run of sixteen.</li>
<li><strong>Two-step verification is not actually on.</strong> The app password page will not exist without it.</li>
<li><strong>Wrong server or port.</strong> For Gmail it is <code>imap.gmail.com</code> on port <code>993</code> with SSL. Outlook is <code>outlook.office365.com</code>, Yahoo is <code>imap.mail.yahoo.com</code>, both on <code>993</code>. Your own domain will be something like <code>mail.yourshop.co.za</code> — your host publishes it.</li>
<li><strong>IMAP is switched off.</strong> Some providers still have an on/off switch for it in their mail settings.</li>
</ul>
<h2>Why we care about this</h2>
<p>We build <a href="https://orderprint.app/">OrderPrint</a>, an Android app that watches the mailbox your order emails arrive in and prints every new order to a thermal receipt printer. It signs into that mailbox with — you guessed it — an app password.</p>
<p>This is comfortably the most common thing people write to us about, which is why it is written up here in full rather than buried in a support article. The app password step is the only genuinely fiddly part of the setup, and once it is done it is done for good. If you are weighing up whether to give an app access to a mailbox at all, we went through <a href="https://orderprint.app/is-it-safe-to-give-an-app-your-email-password/">what an app password does and does not allow</a>.</p>
<p>If you want the walkthrough with screenshots for your specific provider, it is on our <a href="https://orderprint.app/help-and-support/">help page</a>.</p>
<p>And if your orders have stopped printing for some reason other than sign-in, we wrote about <a href="https://orderprint.app/kitchen-printer-stopped-printing/">the ways order printing goes quiet</a> — an expired app password is only one of them.</p>
<p>The post <a href="https://orderprint.app/email-app-password-not-working/">Why your email password will not work in an app (and how to fix it)</a> appeared first on <a href="https://orderprint.app">OrderPrint</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
