Invoices
What This Is
Invoices are the billing documents your team or your customers download when an order, fulfillment, refund, or return needs a formal billing record.
In the shared package, invoices are generated by the framework rather than created manually.
When You Would Use It
Use Invoices when you need to:
- download an invoice for a fulfilled shipment
- send an invoice by email
- confirm whether an invoice already exists for an order event
- retrieve a billing document for accounting or customer service
Before You Start
Before you try to retrieve an invoice, make sure:
- the order or fulfillment has already reached an invoice-producing state
- you know whether you are working in My Account, an admin order flow, or a fulfillment flow
- you understand that some invoice types, such as refund or return invoices, are more internal than shopper-facing
The strongest shopper-facing invoice surface in the shared package is My Account order history. The strongest operator-facing invoice surfaces are adjacent order and fulfillment actions plus the admin invoice API.
How To Use It In The Product
Storefront
- Go to
My Account > Orders. - Find the order you want.
- Click
Download invoicewhen the button is available. - If needed, open the order detail to cross-check the fulfillment and delivery context.
Admin
- Open the order or fulfillment you are working on.
- Use the invoice download or invoice email action exposed by your project.
- If you need invoice detail records, use the invoice list or invoice-detail API your project exposes from the shared package.
What It Changes In The Storefront
Invoices are mostly a visibility and retrieval feature.
They do not usually change storefront behavior directly, but they do change what customers and operators can access for:
- billing follow-up
- accounting review
- fulfillment confirmation
- refund or return documentation
Common Tasks
Download a fulfillment invoice
Use the shopper order-history invoice button or the admin fulfillment invoice download action.
Send an invoice by email
Use the fulfillment invoice email workflow or your project’s consolidated invoice workflow when those are enabled.
Retrieve a refund or return invoice
Expect this to be more internal and accounting-oriented than the standard shopper invoice download flow.
Rules, Limits, And Things To Watch
- Invoice creation is generated by the framework, not manually authored in the shared package.
- Shopper invoice download is tied most clearly to fulfillments that already have invoices.
- Consolidated invoice PDFs are related, but they are not the same thing as a single
Invoicerecord. - Some order-level email names in the shared package refer to quote or payment-link delivery rather than actual invoice-record delivery.
- A return or refund can produce invoice output later than the original order fulfillment.
Troubleshooting
The invoice button is missing
Check whether the fulfillment actually has an invoice yet.
The customer wants one invoice for the whole order
Check whether your project uses the consolidated invoice workflow instead of only fulfillment-level downloads.
The refund exists but there is no shopper invoice
Refund and return invoices are more internal in the shared package and may not surface in My Account.
Related Features
- Payments
- Payment Methods
- Orders
Sources
packages/framework/src/Http/Controllers/Api/Storefront/OrdersController.phppackages/framework/src/Http/Controllers/Api/Admin/InvoicesController.phppackages/framework/src/Http/Controllers/Api/Admin/FulfillmentsController.phppackages/framework/src/Actions/Invoice/GenerateInvoices.phppackages/storefront/resources/views/components/my-account/orders/data-table/row/header.blade.php