Mastering Shopify POS Receipts: Hide Prices & Add Structured Notes for Repair Shops
Hey fellow store owners! Let's dive into a common challenge that often pops up in the Shopify community, especially for businesses with unique service offerings like repair shops. We recently saw a fantastic discussion kicked off by our friend, @Cyressvirus, who runs a repair store for things like vacuums and espresso machines. Their team needed a better way to add detailed repair notes to customer receipts and, crucially, to handle "free" service items without confusing customers.
It's a scenario many of you might relate to: you're providing a service or a "free" diagnostic, and you want to document it clearly for the customer, but the standard Shopify POS receipt isn't quite cutting it. Let's break down the problem and, more importantly, the clever solutions the community cooked up!
The Core Problem: Unformatted Notes & Misleading Prices
Cyressvirus outlined two main pain points:
-
Unformatted Notes: When their techs tried to use the native order note field to jot down repair details or customer conversations, the output on the receipt was just a block of unformatted text. Imagine trying to read important repair specifics when it's all mushed together – not exactly professional or easy to digest for the customer. Here's a visual of what that looked like:
-
Confusing "Free" Products: To get around the formatting issue, they tried adding repair notes as "free" products. While this gave some structure, it still printed "$0.00" on the receipt next to the note, which naturally led to confusion. Customers would see a price, even if zero, and wonder why it was there.
Beyond Native Notes: Structured Information with Metafields
One of the first and best suggestions came from @Gimmesales of Identixweb, who immediately pointed towards order metafields. This is a game-changer for structured information!
Instead of cramming everything into a single, unformatted note field, you can use metafields to create specific, structured fields for things like:
- Repair Status: "Pending Diagnostic," "Awaiting Parts," "Ready for Pickup"
- Technician Notes: Detailed internal notes from the tech
- Customer Communication Log: "Customer called, approved repair," "Left voicemail with estimate"
Metafields are much cleaner and can be easily displayed on your internal order pages, and with a bit of Liquid code, even on your custom receipts. This solves the "unformatted" problem beautifully by giving your data a proper home.
Tackling the "Zero Price" Dilemma on POS Receipts
Now, let's get to the thorny issue of hiding those pesky "$0.00" prices for service items on your thermal receipts. This is where @tim_1 really shined, offering up some excellent Liquid code workarounds. The key here is to edit your Shopify POS receipt template. Don't worry, it's not as scary as it sounds!
You can access your POS receipt settings here: https://admin.shopify.com/apps/point-of-sale-channel/settings/receipts (this link should redirect you to your admin interface). You'll also find a helpful guide on customizing printed receipts in the Shopify manual.
Here are two powerful methods to conditionally hide prices for specific line items:
Method 1: Using Product Titles for Conditional Hiding
This approach involves adding a specific keyword or phrase to the title of your service products (e.g., "Service: Diagnostic Fee"). Then, you modify the Liquid code in your receipt template to check for this keyword and a zero price.
Instructions:
-
Identify Service Products: Decide on a consistent prefix for all your service products that you want to show as "no price" on the receipt. "Service:" is a great example.
-
Edit your POS Receipt Template: Navigate to the POS receipt settings link above. Look for the section that handles line item display.
-
Insert this Liquid Code: Replace the existing price display code for line items with this snippet. You'll likely find this within a
line-items.liquidsection or similar in the template editor.{% if line_item.price == 0 and line_item.name contains "Service:" %} {% # service comment, output no price %} {% else %} {{ line_item.total_price | money | escape }} {% endif %}
This code checks if the line_item.price is zero and if the line_item.name (product title) contains "Service:". If both are true, it outputs nothing for the price. Otherwise, it prints the total price as usual. You could even add code to remove the "Service:" prefix when printing the product title itself to save space and look cleaner!
Method 2: Leveraging Product Metafields for Smarter Control
This method is often preferred for a cleaner product catalog. Instead of modifying product titles, you assign a specific metafield to your service products. This gives you a dedicated flag to identify them.
Instructions:
-
Create a Product Metafield: In your Shopify admin, go to Settings > Custom data > Products. Create a new custom metafield definition. A "Yes or No" (boolean) field named something like
custom.service_productis perfect. Set its value to "Yes" for all your service products.Pro Tip: You can bulk assign this metafield to products with a special product type (e.g., all products with Product Type: "Service") to save a lot of time!
-
Edit your POS Receipt Template: Similar to Method 1, navigate to the POS receipt settings.
-
Insert this Liquid Code: Integrate this snippet where your line item prices are displayed:
{% if line_item.price == 0 and line_item.product.metafields.custom.service_product %} {% # service comment, output no price %} {% else %} {{ line_item.total_price | money | escape }} {% endif %}
Here, the condition checks if the line_item.price is zero and if the product associated with that line item has the custom.service_product metafield set to true. If both conditions are met, no price is displayed. This is a robust and scalable solution for managing your service items!
Order Printer vs. POS Receipts: Clearing the Confusion
A quick clarification, as Cyressvirus asked about using Order Printer with the iPad POS App and Star Micronics printer. As @tim_1 rightly clarified, the Order Printer app is generally for "bigger paper" – think custom invoices, packing slips, or B2B documents that require more extensive formatting and might be printed on standard letter-sized paper.
For your everyday thermal receipts generated by your Shopify POS App and a receipt printer like a Star Micronics, you'll be editing the dedicated POS receipt template accessible via the link provided earlier. These are two separate systems for different types of printouts, so make sure you're customizing the right one!
So there you have it! What started as a simple question about order notes blossomed into a comprehensive discussion about leveraging Shopify's powerful customization options. By combining structured metafields for detailed notes and clever Liquid code for conditional price display, you can transform your Shopify POS receipts from confusing to crystal clear. Always remember to test your changes thoroughly after making any modifications to your templates. Happy customizing!
