Customer Portal

The Customer Portal lets your customers download their invoices without contacting support. It integrates directly into the Shopify customer account area using Shopify's native customer account extension API — no separate login required, no external website.

Customer invoice portal showing invoice list and download buttons


New vs. Legacy Customer Accounts

Shopify has two customer account experiences. The portal requires the new experience.

| Feature | New customer accounts | Legacy customer accounts | |---|---|---| | Fakturownia Pro portal supported | Yes | No | | Login method | Shopify passwordless email OTP or social login | Email + password | | URL pattern | yourstore.com/account with modern UI | yourstore.com/account with classic UI | | Customer account extensions API | Supported | Not supported | | Checkout link behavior | Direct to account creation or login | Classic login form | | Appearance | Inherits your Online Store theme colors | Fixed legacy template |

How to check which version you are using: In Shopify admin, go to Settings → Customer accounts. You will see either "New customer accounts" or "Classic customer accounts" as your current setting.

How to migrate from legacy to new accounts: In Settings → Customer accounts, click "Switch to new customer accounts". Existing customer passwords are not transferred — customers log in via the new passwordless flow on their first visit after migration. Shopify sends an optional migration notification email to customers.

Migration is reversible, but reverting removes the Fakturownia Pro portal from customer accounts.

What Changes for Existing Customers After Migration

When you switch to new customer accounts, customers who previously had password-based accounts will:

  1. Arrive at the account page and see the new login experience on their next visit
  2. Enter their email address and receive a one-time code (OTP) via email
  3. After entering the code, they are logged in and see the new account interface — including the Invoices section if they have invoices

Customers do not lose access to their order history. Shopify preserves all order data. Only the login mechanism changes.


Enabling the Portal

  1. Open Fakturownia Pro from your Shopify admin
  2. Go to Settings → Customer Portal
  3. Toggle "Enable invoice portal" to on
  4. Click Save

The "Invoices" section appears in all customer accounts immediately — no theme changes, no app blocks, no Liquid code edits required. Fakturownia Pro uses Shopify's customer account extension API to inject the section.


What the Portal Looks Like: Step-by-Step Customer Experience

Understanding the exact customer journey helps you anticipate questions and write accurate support documentation.

Step 1: Customer accesses their account

The customer navigates to yourstore.com/account. If they are not logged in, they enter their email and receive a one-time login code. After entering the code, they land on the account overview.

Step 2: Customer sees the Invoices section

Below the standard Orders section, there is a new Invoices section. If the customer has no invoices yet, this section is hidden entirely — it only appears after their first invoice is generated.

The section header reads "Invoices" in the active storefront language. The section appears on the main account page (not nested inside a specific order page), making it easy to find.

Step 3: Invoice list view

The invoice list shows all invoices linked to the customer's orders. Each row contains:

| Column | Description | |---|---| | Invoice number | The Fakturownia invoice number, formatted as a download link | | Date | Invoice issue date | | Order | Shopify order number, linked to the order in their account | | Amount | Gross total in the invoice currency | | Status | Issued, Paid, Credit Note, or Cancelled |

Customers see only invoices linked to their own orders. No customer's data is ever shown to another customer.

Step 4: Downloading an invoice

The customer clicks the invoice number (a link) or a dedicated "Download" button. The browser initiates a PDF download. The download typically completes in 1–2 seconds.

If the customer clicks the download button before the invoice PDF is ready (rare — typically happens immediately after an order when the invoice is still being generated), they see: "Invoice being prepared. Please try again in a moment."

Step 5: Credit notes

If a refund was processed on an order, a credit note appears in the same Invoices list with a "Credit Note" status badge. The credit note number links to a PDF download. Customers can access credit notes the same way as regular invoices — there is no separate section.

Step 6: Order status page link

If "Show invoice link on order status page" is enabled, customers see a "Download Invoice" button on the order confirmation page after checkout. This button appears only after the invoice has been generated. Customers arriving at the order status page immediately after placing an order may not see the button yet if the invoice generation is still processing.


Email Template Customization for Invoice Delivery

Fakturownia Pro can attach invoice PDFs to Shopify order emails automatically. Customize the email experience to match your brand.

Enabling Email Attachments

  1. Go to Settings → Customer Portal
  2. Toggle "Attach invoice PDF to order email"
  3. Click Save

Which Emails Receive the PDF

By default, the PDF is attached to whichever email type corresponds to the status that triggered the invoice creation. You can override this under Settings → Customer Portal → Email Attachment Settings:

  • Only the initial order confirmation — attaches the PDF to the orders/paid email only
  • All status-change emails — attaches the PDF to every Shopify order email for orders that have an invoice
  • Invoice-specific email only — does not attach to Shopify emails; sends a separate invoice delivery email via the Fakturownia email system

Customizing the Invoice Delivery Email

The invoice-specific email (when "Send Email" is enabled on your invoice rule) is sent through Fakturownia.pl's email system. You can customize its subject and body in two places:

In Fakturownia.pl directly (recommended for most stores):

  1. Log in to your Fakturownia.pl account
  2. Go to Settings → Email Templates
  3. Find the "Invoice sent" template
  4. Edit the subject and body — Fakturownia.pl supports HTML and merge tags ({invoice_number}, {buyer_name}, {due_date}, {total})

In Fakturownia Pro for Shopify (for Shopify-specific context):

  1. Go to Settings → Customer Portal → Email Template
  2. Customize the subject and body for the invoice-attached email
  3. Available merge tags: {{order_number}}, {{invoice_number}}, {{customer_name}}, {{store_name}}

Timing constraint: The PDF is attached at the time the email is sent. If your invoice rule fires on a status that occurs after the initial order confirmation email was already sent, the PDF cannot be retroactively attached to that email. Use the "Send Email" action in your invoice rule to send a separate invoice email in this case.


Handling B2B Customers Who Need Company Invoices

B2B customers — businesses purchasing with a company NIP (Polish VAT ID) or EU VAT number — have different invoice requirements than individual consumers.

How B2B Invoice Generation Works

When a B2B customer places an order, Fakturownia Pro detects the NIP and generates a company invoice (Faktura VAT) rather than a receipt. The invoice includes:

  • Company name (from checkout or order note)
  • NIP / EU VAT number
  • Company address
  • Split Payment (MPP) annotation for invoices over PLN 15,000
  • GTU codes per product line (if configured)

This invoice appears in the customer's portal alongside any B2C invoices from the same account.

B2B vs B2C Invoice in the Same Customer Account

Some customers place both business and personal orders from the same Shopify account. The portal shows all invoices regardless of type. Company invoices display the company name in the invoice detail; B2C invoices display the customer's name. Both types are downloadable from the same list.

The Portal Email Matching Problem for B2B

A common issue in B2B: the purchasing department uses a shared email (e.g., purchasing@acme.com) to place orders, but the Shopify customer account uses the finance contact's personal email (maria.kowalska@acme.com). Since the portal matches invoices by the email on the customer account, this invoice will not appear in the portal.

Solutions:

  1. Order note extraction (recommended): Ask B2B customers to add a company contact email to their order notes. Your invoice rule can extract this and use it as the buyer email on the Fakturownia invoice. Contact support to configure custom email extraction.

  2. Direct PDF link in order confirmation email: Enable "Attach invoice PDF to order email" so the invoice PDF is delivered directly to whichever email received the order confirmation — bypassing the portal entirely for customers whose emails do not match.

  3. Shopify Plus checkout extensibility: On Shopify Plus, you can add a dedicated "Company invoice email" field at checkout using the Checkout Extensibility editor. Fakturownia Pro reads this field and uses it for invoice delivery independently of the Shopify account email.

Company Invoice for a Guest Checkout

Customers who check out as guests (no Shopify account) do not have access to the portal. Their invoices are only accessible via the direct download link in the order confirmation email (if email attachment is enabled) or via a direct link you send them manually from the Fakturownia Pro order detail.


Portal Appearance and Language

Column Configuration

The invoice list shows the standard columns (Invoice number, Date, Order, Amount, Status) with no current option to reorder or hide columns. Custom column configuration is planned for a future release.

Language

The portal UI labels adapt to the Shopify storefront locale. If your store serves customers in multiple languages (using Shopify's translation system or a compatible translation app), the portal shows labels in the active locale:

| Locale | Support | |---|---| | English (en) | Supported | | Polish (pl) | Supported | | German (de) | Supported | | French (fr) | Supported | | Spanish (es) | Supported | | Portuguese (pt) | Supported |

Invoice PDF language is separate: The portal UI language and the invoice PDF language are configured independently. The PDF language is set under Settings → Document Settings → Invoice Language. A German-speaking customer can see portal labels in German while their invoice PDF is in Polish — configure each to match your actual requirements.


Privacy and Data Access

Authentication

The portal uses Shopify's customer authentication. Customers must be logged in to their Shopify account to see invoices. No additional login is required.

Invoice Matching

Fakturownia Pro matches invoices to customer accounts by email address. Only invoices where the buyer email matches the logged-in customer's email are shown. See the B2B section above for handling cases where emails differ.


Disabling the Portal

Toggle "Enable invoice portal" off in Settings → Customer Portal. This removes the Invoices section from all customer accounts immediately.

Existing invoices in Fakturownia are not affected by disabling the portal. Customers with PDFs they previously downloaded keep those files. Customers who had not yet downloaded their invoices will no longer have self-service access — they can contact support to request invoices directly.


Plan Availability

| Feature | Free | Starter | Growth | Professional | Enterprise | |---|---|---|---|---|---| | Invoice portal in Shopify account | — | Yes | Yes | Yes | Yes | | Order status page download link | — | Yes | Yes | Yes | Yes | | Email PDF attachment | Yes | Yes | Yes | Yes | Yes | | Multi-language portal labels | — | — | Yes | Yes | Yes | | Credit notes in portal | — | Yes | Yes | Yes | Yes | | Guest checkout invoice email | Yes | Yes | Yes | Yes | Yes |

Note: Email PDF attachment is available on the Free plan because it is sent at invoice creation time via the Fakturownia email system — it does not require the customer portal feature.


Next Steps

Edit this page on GitHub
Was this page helpful?