PHPackages                             aligent/orocommerce-invoices-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. aligent/orocommerce-invoices-bundle

ActiveLibrary[Payment Processing](/categories/payments)

aligent/orocommerce-invoices-bundle
===================================

OroCommerce Bundle to allow Customers to View/Pay Invoices via Storefront Portal

v5.0.1(3y ago)01GPL-3.0-onlyPHPCI failing

Since Aug 11Pushed 3mo ago5 watchersCompare

[ Source](https://github.com/aligent/orocommerce-invoices-bundle)[ Packagist](https://packagist.org/packages/aligent/orocommerce-invoices-bundle)[ RSS](/packages/aligent-orocommerce-invoices-bundle/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (8)Versions (5)Used By (0)

Aligent OroCommerce Invoices Bundle
===================================

[](#aligent-orocommerce-invoices-bundle)

This Bundle adds the ability for Customers to View/Pay Invoices for Storefront Customer Portal.

[![Customer Invoice List](src/Aligent/InvoiceBundle/Resources/doc/img/invoice-list.png)](src/Aligent/InvoiceBundle/Resources/doc/img/invoice-list.png)

[![Customer Invoice Payment](src/Aligent/InvoiceBundle/Resources/doc/img/invoice-payment.png)](src/Aligent/InvoiceBundle/Resources/doc/img/invoice-payment.png)

Features
--------

[](#features)

- Customers can List, Filter, and View their Open/Paid/Overdue Invoices
- Invoices are automatically marked as Overdue after Due Date has elapsed
- Customers can make Payments against one or more Invoices
- Customers can pay custom Amounts against each Invoice
- The allowed Payment Methods for Invoices can be configured
- Custom message can be displayed on Payment form
- Successful Invoice Payment amounts are automatically subtracted from the remaining Invoice balance
- Invoices are automatically marked as Paid after the full balance is successfully paid
- Invoices can be Listed, Filtered, and Viewed in the Oro Backoffice (admin) panel, including associated Invoice Payments
- Invoices Feature can be switched off globally or per-Website
- Access to Invoices and Payments can be controlled via Customer User Role (ACL) permissions

Requirements
------------

[](#requirements)

- OroCommerce 5.0

Important Notes/Caveats
-----------------------

[](#important-notescaveats)

- Invoices are entirely standalone entities, they currently have no relationship to Oro Orders or the Checkout, or the Payment Term method.
- Invoices can currently only be created using the API (e.g. pushing Invoices into Oro from a third-party system), or by Oro customization.
- The Balance Remaining against each Invoice is only updated using the amount of the current successful Invoice Payment, not the sum total of all Invoice Payments in Oro (so that the total amount paid against each invoice can be set via the API). This allows support for offline/external payments.
- This bundle **does not** currently trigger email notifications (e.g. Invoice Created, Invoice Due/Overdue, InvoicePayment Confirmation).
- Payment Methods which redirect to external payment forms (e.g. PayPal Express) may not be supported, they have not been tested.
- Invoice Payments are flagged `active: true`, this is updated to `active: false` once a successful `PaymentTransaction` has been made.

Installation and Usage
----------------------

[](#installation-and-usage)

**NOTE: Adjust instructions as needed for your local environment**

### Installation

[](#installation)

Install via Composer

```
composer require aligent/orocommerce-invoices-bundle
```

Once installed, run platform update to perform the installation:

```
php bin/console oro:platform:update --env=prod
```

### Configuration

[](#configuration)

Once installed, visit `System Configuration => Commerce => Orders => Invoice Management`.

[![Configuration](src/Aligent/InvoiceBundle/Resources/doc/img/configuration.png)](src/Aligent/InvoiceBundle/Resources/doc/img/configuration.png)

From here it is possible to enable/disable the Invoices feature, select the available Payment Methods for Invoice Payments, and optionally display a custom message on the Invoice Payment form. ### Demo Data Fixtures

[](#demo-data-fixtures)

For testing purposes this Bundle includes a set of sample Invoices with various statuses (open, overdue, paid). These can be loaded in a development environment using the following command:

```
php bin/console oro:migration:data:load --env=dev --fixtures-type=demo --bundles=AligentInvoiceBundle -vvv
```

Database Modifications
----------------------

[](#database-modifications)

### Database Tables Created

[](#database-tables-created)

- `aligent_invoice` - holds Invoices (`Invoice`)
- `aligent_invoice_line_item` holds Invoice Line Items (`InvoiceLineItem`)
- `aligent_invoice_payment` holds Invoice Payments (`InvoicePayment`)
- `aligent_invoice_payment_line_item` holds Invoice Payment Line Items (`InvoicePaymentLineItem`)
- `oro_enum_invoice_status` holds Invoice Status enum values (`Extend\Entity\EV_Invoice_Status`)

Sample API Payloads
-------------------

[](#sample-api-payloads)

### Create New Invoice

[](#create-new-invoice)

`POST /admin/api/aligentinvoices`

```
{
    "data": {
        "type": "aligentinvoices",
        "id": "new-invoice-'1",
        "attributes": {
            "invoiceNo": "INV-413",
            "issueDate": "2022-06-01",
            "dueDate": "2022-07-01",
            "amount": "100.0000",
            "currency": "AUD",
            "totalTax": "11.11",
            "amountPaid": "80.0000",
            "createdAt": "2022-06-01T16:15:20Z",
            "updatedAt": "2022-06-14T02:10:24Z"
        },
        "relationships": {
            "customer": {
                "data": {
                    "type": "customers",
                    "id": "7"
                }
            },
            "lineItems": {
                "data": [
                    {
                        "type": "aligentinvoicelineitems",
                        "id": "line-item-1"
                    },
                    {
                        "type": "aligentinvoicelineitems",
                        "id": "line-item-2"
                    }
                ]
            },
            "status": {
                "data": {
                    "type": "aligentinvoicestatuses",
                    "id": "open"
                }
            }
        }
    },
    "included": [
        {
            "type": "aligentinvoicelineitems",
            "id": "line-item-1",
            "attributes": {
                "amount": "25.0000",
                "currency": "AUD",
                "summary": "Line Item 1"
            }
        },
        {
            "type": "aligentinvoicelineitems",
            "id": "line-item-2",
            "attributes": {
                "amount": "75.0000",
                "currency": "AUD",
                "summary": "Line Item 2"
            }
        }
    ]
}
```

Core Overrides &amp; Extensions
-------------------------------

[](#core-overrides--extensions)

None

Roadmap / Remaining Tasks
-------------------------

[](#roadmap--remaining-tasks)

- OroCommerce 5.0 Support
- Implement Unit Tests
- Implement Demo Invoice Data Fixtures (using [aligent/oro-fixtures](https://github.com/aligent/oro-fixtures))
- Update Payment Methods Configuration to use Rules instead of Methods ([\#2](https://github.com/aligent/orocommerce-invoices-bundle/issues/2))
- Improve reliability/usability of Invoice Payment JavaScript components and SaveState feature
- Add ability to disable Invoice Payments globally (view-only mode)
- Implement Admin CRUD UI for Invoices with User Role ACL Permissions
- Automatically clean up old pending Invoice Payments (but preserve failed records)
- Ensure support for externally hosted Payment Methods (e.g. PayPal Express)

### Potential Future Enhancements

[](#potential-future-enhancements)

- Implement Payment Confirmation Emails
- Automatically raise Invoices for OroCommerce Orders paid on Account (via Payment Term)
- Optionally Link Invoice Line Items to OroCommerce Orders
- Notifications (email and on-site) for Due/Overdue Invoices
- Oro Backoffice Dashboard Widgets (Due/Overdue Invoices)

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance55

Moderate activity, may be stable

Popularity1

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~6 days

Total

3

Last Release

1358d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/d2562970d9b77564454ead1236c1db5ddedb44198bb00925b614418c4105f541?d=identicon)[aligent](/maintainers/aligent)

---

Top Contributors

[![chrisaligent](https://avatars.githubusercontent.com/u/45612883?v=4)](https://github.com/chrisaligent "chrisaligent (15 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/aligent-orocommerce-invoices-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/aligent-orocommerce-invoices-bundle/health.svg)](https://phpackages.com/packages/aligent-orocommerce-invoices-bundle)
```

###  Alternatives

[omnipay/paypal

PayPal gateway for Omnipay payment processing library

3156.8M53](/packages/omnipay-paypal)[eduardokum/laravel-boleto

Biblioteca com boletos para o laravel

626351.9k2](/packages/eduardokum-laravel-boleto)[tbbc/money-bundle

This is a Symfony bundle that integrates moneyphp/money library (Fowler pattern): https://github.com/moneyphp/money.

1961.9M](/packages/tbbc-money-bundle)[2checkout/2checkout-php

2Checkout PHP Library

83740.3k2](/packages/2checkout-2checkout-php)[smhg/sepa-qr-data

Generate QR code data for SEPA payments

61717.2k5](/packages/smhg-sepa-qr-data)[omnipay/coinbase

Coinbase driver for the Omnipay payment processing library

18558.8k1](/packages/omnipay-coinbase)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
