How to Install the OroCommerce Invoice Extension

Nov 6, 2026 · @Sharmistha

Overview

The OroCommerce Invoice extension (softsolutions4u/orocommerce-invoice) adds invoicing to OroCommerce Community Edition 7.0.3 in three Composer and console commands. Once installed, you can create invoices from orders, send PDF invoices by email, track payments, and let customers view and pay invoices in the storefront.

The extension is a single self-contained Symfony bundle. It registers itself automatically and does not modify or override any OroCommerce core files or templates, so OroCommerce upgrades are not blocked by it.

This guide is for developers and system administrators who manage an OroCommerce installation. For what customers see after installation, read the companion article How Invoices Work in the OroCommerce Storefront.

Requirements

The extension is pinned to OroCommerce CE 7.0.3; Composer will refuse to install it on any other OroCommerce version.

Component Required version
OroCommerce Community Edition
7.0.3 (exact)
PHP
8.5.x
Symfony
7.4 (ships with OroCommerce 7.0.3)
dompdf/dompdf
^3.0 (installed automatically, used for PDFs)
brick/math
^0.11 (installed automatically, used for money calculations)
Database
PostgreSQL (as used by OroCommerce)

You also need shell access to the OroCommerce application root, Composer, and a back-office user with administrator rights. Take a database backup before installing on any shared or production environment.

Install the extension

Run these three commands from the root of your OroCommerce application. The package is published on Packagist, so no extra repository configuration is needed.

  1. Add the package with Composer:
    composer require softsolutions4u/orocommerce-invoice

2. Create the database tables and load email templates and translations:
     php bin/console oro:platform:update –force

3. Publish the back-office and storefront assets:
    php bin/console oro:assets:install

You do not need to edit the kernel or bundles.php; the bundle registers itself through Oro’s bundles.yml. If the storefront still shows old styles afterwards, clear the cache with php bin/console cache:clear and reload the page.

Verify the installation

A working installation has five new database tables and a Sales → Invoices page in the back-office.

  1. Check the tables (replace <database> with your OroCommerce database name):

psql -d <database> -c ‘\dt *softsolutions4u_invoice*’

You should see these five tables:

Table Holds
softsolutions4u_invoice
Invoice headers: number, dates, customer, totals, status
softsolutions4u_invoice_line_item
Invoice lines copied from the order
softsolutions4u_invoice_payment
Payments made against invoices
softsolutions4u_invoice_payment_line_item
How each payment is split across invoices
softsolutions4u_invoice_sequence
Counter that generates invoice numbers
  1. Log in to the back-office and open Sales → Invoices. The invoice list should load without errors.

  2. Open any order under Sales → Orders. You should see a Create Invoice button and an Invoices section on the order page.

Configure the extension

After installation, set your seller details, choose payment methods, and grant permissions; customers see nothing until a role allows it.

Invoice Management settings

Open System → Configuration → Commerce → Orders → Invoice Management. Each setting can be overridden per organization and per website.

Setting Default What it does
Enable Invoices
Yes
Turns the whole invoice feature on or off.
Payment Methods
All
Payment methods customers can use to pay invoices in the storefront.
Company name, VAT number, logo
Empty
Seller details printed on the invoice PDF.
Show bank details
Yes
Shows bank-transfer details; nothing appears until an account is filled in.
US bank account
Empty
Account holder, bank, routing number, account number, SWIFT and instructions; used for USD invoices.
SEPA bank account
Empty
Bank details used for EUR invoices.
Auto-create invoices for Payment Term orders
No
Creates an invoice automatically when an order is placed with Payment Term.

Permissions

  • Back-office users: go to System → User Management → Roles, open a role and set the permissions in the Invoice category (view, create, edit, delete, cancel, add note, confirm payment).

  • Storefront customers: go to Customers → Customer User Roles, open a role (for example Buyer or Administrator) and enable View Invoices. Without it, the Invoices menu item stays hidden.

Email templates

The extension adds four emails in English and German: new invoice, payment reminder, payment confirmation and invoice cancelled. Edit them under System → Emails → Templates by searching for softsolutions4u_invoice.

Invoice emails are sent during the request so the page can confirm delivery. To send them in the background, route Symfony Mailer through Messenger with an async transport (framework.mailer.message_bus); the bundle itself needs no change.

Offline payment methods

Payments made with Payment Term or Money Order are held as awaiting confirmation until an administrator clicks Confirm Payment on the invoice. To change which methods count as offline, override this parameter in config/config.yml (values are payment method identifier prefixes):

parameters:

softsolutions4u_invoice.offline_payment_method_prefixes: [payment_term, money_order]

Load demo data (optional)

Demo data adds six sample invoices and fictional seller and bank details for testing. Use it on development or staging systems only, never in production.

  1. Create two customers in Customers → Customers → Create Customer, named exactly Invoice Customer A and Invoice Customer B. If they do not exist, the fixture uses the first two customers in the system; with fewer than two customers, no invoices are created.

  2. To see the invoices in the storefront, add a customer user to each customer with a Buyer or Administrator role.

  3. Make sure the bundle’s tables exist (see Verify the installation), then run:

php bin/console oro:migration:data:load –fixtures-type=demo –bundles=SoftSolutions4UInvoiceBundle

Customer Demo invoices
Invoice Customer A
Paid, overdue, open
Invoice Customer B
Partially paid, open, draft

The fixture also fills empty Invoice Management settings with a fake company, VAT number, US and German bank accounts and a demo logo. Replace them with your real details before going live.

Upgrading and troubleshooting

To upgrade, run composer update softsolutions4u/orocommerce-invoice, then php bin/console oro:platform:update –force to apply new migrations, and php bin/console oro:assets:install.

Problem Cause Fix
Composer refuses to install
OroCommerce is not 7.0.3, or PHP is not 8.5
Match the versions in Requirements.
relation “softsolutions4u_invoice” does not exist
Demo data loaded before the migration
Run oro:platform:update –force, then load demo data again.
Sales → Invoices missing
Cache not cleared, or role lacks Invoice permissions
Run cache:clear; check the role’s Invoice category.
Customers do not see Invoices in My Account
Customer user role lacks View Invoices, or invoices are still drafts
Enable View Invoices; post the invoice.
No bank details on invoice or PDF
No bank account filled in for that currency
Fill in the US (USD) or SEPA (EUR) account.
Offline payment did not reduce the balance
Payment is awaiting confirmation
Click Confirm Payment on the invoice.

Report bugs on GitHub Issues. For installation help or customization, contact SoftSolutions4U at info@softsolutions4u.com.

Looking for a reliable technical partner for connected commerce & platform systems?

Be the next success story

Scroll to Top