Operations 7 min read

Shopify Order Printer Integration: Invoices & Packing Slips (2025)

Set up Order Printer for Shopify to create professional invoices, packing slips, and return forms. Free app with customizable templates.

Order Printer creates professional invoices and packing slips for Shopify. This guide covers setup, customization, and workflow optimization.

Shopify
integrates with
Order Printer
Operations 4.9
TOP PICK

Order Printer

Operations Integration for Shopify
4.9
2120 reviews
Price
Free
Active Users
N/A
Last Updated
2025-12-20
KEY FEATURES:
Invoices Packing Slips Liquid Templates Bulk Printing
PROS
  • Free official app
  • Custom templates
  • Bulk print workflows
CONS
  • Template edits require Liquid
  • Limited automation without add-ons

Why Order Printer?

Free, official Shopify app:

FeatureBenefit
Free foreverNo cost
Official appShopify-supported
CustomizableLiquid templates
Bulk printingMultiple orders
PDF exportDigital documents

Document types:

  • Invoices
  • Packing slips
  • Receipts
  • Return forms
  • Custom documents

Getting Started

Step 1: Install App

  1. Go to Shopify App Store
  2. Search “Order Printer”
  3. Click Add app (by Shopify)
  4. Authorize access
  5. Ready to use

Step 2: Access Templates

  1. Go to Settings > Apps > Order Printer
  2. View default templates
  3. Choose which to use
  4. Customize as needed
Data Flow
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#e0f2fe', 'primaryTextColor': '#0369a1', 'primaryBorderColor': '#0369a1', 'lineColor': '#64748b', 'secondaryColor': '#f0fdf4', 'tertiaryColor': '#fef3c7'}}}%% graph LR A[Shopify Store] -->|Data Sync| B[Shopify] B -->|Bi-directional| C[Order Printer]
Real-time sync Scheduled sync

Step 3: Print First Document

  1. Go to Orders
  2. Click on an order
  3. Click More actions
  4. Select Print with Order Printer
  5. Choose document type
  6. Print or save as PDF

Document Types

Invoice

Contents:

  • Order number
  • Order date
  • Billing information
  • Line items with prices
  • Subtotal, taxes, total
  • Payment status

Packing Slip

Contents:

  • Order number
  • Shipping address
  • Line items (no prices)
  • Quantity to ship
  • SKU/barcode (optional)

Receipt

Contents:

  • Order details
  • Payment confirmation
  • Line items
  • Total paid
  • Payment method

Return Form

Contents:

  • Order reference
  • Return instructions
  • Item checklist
  • Reason for return
  • Return address

Template Customization

<div class="logo">
  <img src="YOUR_LOGO_URL" alt="{{ shop.name }}" width="200">
</div>

Modifying Header

<div class="header">
  <h1>{{ shop.name }}</h1>
  <p>{{ shop.address }}</p>
  <p>{{ shop.phone }}</p>
  <p>{{ shop.email }}</p>
</div>

Adding Custom Fields

{% if order.note %}
<div class="order-note">
  <strong>Order Note:</strong>
  {{ order.note }}
</div>
{% endif %}

Styling with CSS

<style>
  body { font-family: Arial, sans-serif; }
  .logo { text-align: center; margin-bottom: 20px; }
  table { width: 100%; border-collapse: collapse; }
  th, td { padding: 8px; border-bottom: 1px solid #ddd; }
  .total { font-weight: bold; font-size: 1.2em; }
</style>

Liquid Variables

Order Information

VariableOutput
{{ order.name }}Order number (#1001)
{{ order.created_at }}Order date
{{ order.total_price }}Total price
{{ order.subtotal_price }}Subtotal
{{ order.total_tax }}Tax amount
{{ order.financial_status }}Payment status

Customer Information

VariableOutput
{{ order.customer.name }}Customer name
{{ order.customer.email }}Email address
{{ order.billing_address }}Billing address
{{ order.shipping_address }}Shipping address

Line Items

{% for line_item in order.line_items %}
  <tr>
    <td>{{ line_item.name }}</td>
    <td>{{ line_item.sku }}</td>
    <td>{{ line_item.quantity }}</td>
    <td>{{ line_item.price | money }}</td>
    <td>{{ line_item.final_line_price | money }}</td>
  </tr>
{% endfor %}

Shop Information

VariableOutput
{{ shop.name }}Store name
{{ shop.address }}Store address
{{ shop.phone }}Phone number
{{ shop.email }}Email

Bulk Printing

  1. Go to Orders
  2. Select orders (checkbox)
  3. Click More actions
  4. Select Print orders
  5. Choose template
  6. Print all

Filtering for Print

Common filters:

  • Unfulfilled orders
  • Today’s orders
  • Specific status
  • Date range

Workflow Integration

Fulfillment Workflow

Order received
    ↓
Print packing slip
    ↓
Pick items
    ↓
Pack with slip
    ↓
Print shipping label
    ↓
Mark as fulfilled

Invoice Workflow

Order completed
    ↓
Print invoice (if needed)
    ↓
Include in package or
    ↓
Email to customer

Best Practices

Template Design

ElementRecommendation
LogoClear, appropriate size
FontEasy to read
LayoutOrganized, clean
InformationComplete but not cluttered

Paper and Printing

SettingRecommendation
Paper sizeA4 or Letter
MarginsAllow for binding
QualityHigh for invoices
ColorBlack and white for slips

Organization

PracticeImplementation
Batch printingGroup by time/status
FilingDate-based organization
BackupPDF copies

Common Customizations

Adding Terms and Conditions

<div class="terms">
  <h4>Terms and Conditions</h4>
  <p>All sales are final. Returns accepted within 30 days with receipt.</p>
</div>

Including VAT Number

<div class="vat-info">
  <p>VAT Number: GB123456789</p>
</div>
<div class="footer">
  <p>Thank you for your order!</p>
  <p>Questions? Contact us at {{ shop.email }}</p>
</div>

Conditional Content

{% if order.shipping_address.country != 'United States' %}
<div class="customs-info">
  <p>Customs Declaration: Merchandise</p>
</div>
{% endif %}

Troubleshooting

Problem: Document not printing correctly

Solutions:

  1. Check browser print settings
  2. Adjust margins
  3. Try different browser
  4. Save as PDF first

Template Errors

Problem: Template showing errors

Solutions:

  1. Check Liquid syntax
  2. Verify variable names
  3. Test with simple template
  4. Check for missing brackets

Missing Information

Problem: Data not showing

Solutions:

  1. Verify variable exists
  2. Check order has data
  3. Use conditional checks
  4. Review Liquid documentation

Alternatives

Order Printer Pro

Enhanced features:

  • More templates
  • Automatic printing
  • Email invoices
  • Multi-language

Other Apps

AppBest For
Order Printer ProAdvanced needs
SufioProfessional invoices
Easy InvoiceMulti-currency
OrdersifyAutomation

PDF Generation

Save as PDF

From print dialog:

  1. Click Print
  2. Choose “Save as PDF”
  3. Select location
  4. Save file

Email PDFs

Manual process:

  1. Save as PDF
  2. Attach to email
  3. Send to customer

For automation, consider third-party apps.

Multi-Location

Handling Multiple Warehouses

Customize for location:

{% for fulfillment in order.fulfillments %}
  {% if fulfillment.location.name == 'East Coast' %}
    <!-- East Coast specific content -->
  {% endif %}
{% endfor %}

International

Multi-Currency

Show local currency:

<td>{{ line_item.price | money_with_currency }}</td>

Multi-Language

For translations, consider:

  • Order Printer Pro
  • Langify integration
  • Manual templates per language

Next Steps

After setup:

  1. Install app - Free from Shopify
  2. Review templates - Default options
  3. Customize - Add logo, branding
  4. Test print - Verify appearance
  5. Integrate - Into fulfillment workflow

Shopify + Order Printer implementation checklist (2025)

This section adds practical “make it stable” steps you can use after you install the app/connector. It’s intentionally lightweight: the goal is fewer sync surprises, cleaner reporting, and easier troubleshooting.

1) Quick setup checklist

  • Permissions first: grant only the scopes you need (orders/customers/products as required) and document who owns the admin credentials.
  • Data mapping: confirm how email, phone, currency, and SKU are mapped between Shopify and Order Printer.
  • Historical import: decide how far back to import orders/customers (avoid importing years of data if you don’t need it).
  • Deduplication rules: pick one unique identifier per object (usually email for customers, order ID for orders) to prevent doubles.
  • Alerts: set a lightweight alert path (email/Slack) for failed syncs, auth expiry, and API rate limits.

2) Data you should verify after connecting

Most integration issues show up in the first hour if you test the right things. Use the table below as a QA checklist (create a test order if needed).

Data objectWhat to checkWhy it matters
CustomersEmail/phone format, marketing consent fields, duplicatesPrevents double messaging and broken segmentation
OrdersOrder total, tax, discount, shipping, currencyKeeps revenue reporting and automation triggers accurate
Line itemsSKU, variant ID, quantity, refunds/returns behaviorAvoids inventory and attribution mismatches
FulfillmentStatus changes + timestamps, tracking numbers, carrier fieldsDrives customer notifications and post-purchase flows
CatalogProduct titles, handles, images, collections/tagsEnsures personalization and reporting match your storefront

3) Automation ideas for Operations

  • Order documents: auto-generate invoices/packing slips and standardize templates inside Order Printer.
  • Pick/pack checklist: reduce packing errors by using consistent packing rules and scan steps.
  • Customer notifications: automate “order received/packed/shipped” messages to reduce WISMO.
  • Returns coordination: keep return labels, status, and refunds aligned to avoid churn.
  • SOPs: document who owns which steps (support vs ops vs finance) for fewer handoffs.

API sanity check (Shopify Admin API)

If your integration UI says “connected” but data isn’t flowing, a quick API call helps confirm whether the store is accessible and returning the objects you expect.

# List the 5 most recent orders (GraphQL)
curl -X POST "https://your-store.myshopify.com/admin/api/2025-01/graphql.json" \
  -H "X-Shopify-Access-Token: $SHOPIFY_ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d "{\"query\":\"{ orders(first: 5, sortKey: CREATED_AT, reverse: true) { edges { node { id name createdAt totalPriceSet { shopMoney { amount currencyCode } } customer { email } } } } }\"}"

Tip: keep tokens/keys in environment variables, and test in a staging store/site before rolling changes to production.

4) KPIs to monitor (so you catch problems early)

  • Sync freshness: how long it takes for a new order/customer event to appear in Order Printer.
  • Error rate: failed syncs per day (and which object types fail most).
  • Duplicates: number of merged/duplicate contacts or orders created by mapping mistakes.
  • Revenue parity: weekly spot-check that Shopify totals match downstream reporting (especially after refunds).
  • Attribution sanity: confirm that key events (purchase, refund, subscription) are tracked consistently.

5) A simple 30-day optimization plan

  1. Week 1: connect + map fields, then validate with 5–10 real orders/customers.
  2. Week 2: enable 1–2 automations and measure baseline KPIs (conversion, AOV, repeat rate).
  3. Week 3: tighten segmentation/rules (exclude recent buyers, add VIP thresholds, handle edge cases).
  4. Week 4: document the setup, create an “owner” checklist, and set a recurring monthly audit.

Related integration guides


For shipping labels, see ShipStation integration. For order tracking, check AfterShip integration.

Operations Tool Comparison

Compare key features across popular operations solutions

FeatureOrder PrinterOrder Printer ProPDF InvoicesSufio
Invoice printingGenerate invoicesYesYesYesYes
Packing slipsFulfillment documentsYesYesYesNo
Custom templatesTemplate customizationLiquidEasy editorLimitedYes
Bulk printingPrint multiple at onceYesYesYesYes
Auto-generationAutomatic document creationNoYesYesYes
PricingCostFree$10/mo$7/mo$19/mo

Data based on publicly available information as of December 2025. Features and pricing may vary.

FAQ

Is Order Printer free for Shopify?

Yes, Order Printer is a free official Shopify app. It's developed and maintained by Shopify with no additional cost.

Can I customize Order Printer templates?

Yes, templates are fully customizable using Shopify's Liquid template language. You can add your logo, change layout, and modify content.

How do I print invoices for Shopify orders?

Install Order Printer, then from any order page click More Actions > Print. Select the document type (invoice, packing slip) and print or save as PDF.

Can Order Printer bulk print multiple orders?

Yes, select multiple orders from the Orders page, then use the bulk action to print all selected orders at once.