PHPackages                             jeffersongoncalves/laravel-erp-selling - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. jeffersongoncalves/laravel-erp-selling

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

jeffersongoncalves/laravel-erp-selling
======================================

ERP selling — customers, quotations and sales orders for the Laravel ERP ecosystem

10PHP

Since Jun 27Pushed todayCompare

[ Source](https://github.com/jeffersongoncalves/laravel-erp-selling)[ Packagist](https://packagist.org/packages/jeffersongoncalves/laravel-erp-selling)[ RSS](/packages/jeffersongoncalves-laravel-erp-selling/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

Laravel ERP Selling
===================

[](#laravel-erp-selling)

ERP selling — customers, quotations and sales orders for the Laravel ERP ecosystem.

This package is the selling / sales module of an ERPNext-native rebuild. It owns the customer master and the pre-sales documents (quotations and sales orders) and converts them into the downstream stock and accounting documents. It depends on [`jeffersongoncalves/laravel-erp-core`](https://github.com/jeffersongoncalves/laravel-erp-core), [`jeffersongoncalves/laravel-erp-accounting`](https://github.com/jeffersongoncalves/laravel-erp-accounting) and [`jeffersongoncalves/laravel-erp-stock`](https://github.com/jeffersongoncalves/laravel-erp-stock).

Features
--------

[](#features)

- **Customer masters** — Customers (with customer group, territory, type, default currency, default price list, credit limit and tax id), a tree of customer groups, sales partners and product bundles. Customers reuse the core address/contact morphs.
- **Quotations** — A submittable pre-sales document with line items and its own workflow status (`Draft → Open → Ordered → Lost → Expired → Cancelled`).
- **Sales Orders** — A submittable commitment with line items, delivery/billing progress (`per_delivered` / `per_billed`) and an ERPNext-style status (`To Deliver and Bill`, `To Deliver`, `To Bill`, `Completed`, `Closed`).
- **Conversion services** — `QuotationService` turns an accepted quotation into a sales order; `SalesOrderService` turns a sales order into a stock **delivery note** or an accounting **sales invoice**, wiring the selling module into the stock and general-ledger engines.
- **Commitment documents** — Quotations and sales orders are commitments: submitting one posts nothing to the ledger. Stock and ledger impact happens only on conversion.
- **Customizable Models** — Override any model via config (ModelResolver pattern); `Customer` and `CustomerGroup` ship swappable contracts.
- **Translations** — English and Brazilian Portuguese.

Compatibility
-------------

[](#compatibility)

PackagePHPLaravel`^1.0``^8.2``^11.0 | ^12.0 | ^13.0`Installation
------------

[](#installation)

```
composer require jeffersongoncalves/laravel-erp-selling
```

Publish and run the migrations (the core, accounting and stock package migrations must be published too):

```
php artisan vendor:publish --tag="erp-core-migrations"
php artisan vendor:publish --tag="erp-accounting-migrations"
php artisan vendor:publish --tag="erp-stock-migrations"
php artisan vendor:publish --tag="erp-selling-migrations"
php artisan migrate
```

Publish the config (optional):

```
php artisan vendor:publish --tag="erp-selling-config"
```

Conversion
----------

[](#conversion)

`SalesOrderService` and `QuotationService` are registered as singletons.

```
use JeffersonGoncalves\Erp\Selling\Services\QuotationService;
use JeffersonGoncalves\Erp\Selling\Services\SalesOrderService;

// Quotation -> Sales Order (the quotation is marked Ordered)
$salesOrder = app(QuotationService::class)->createSalesOrder($quotation);

// Sales Order -> Delivery Note (draft; set the COGS account and submit to post SLE + GL)
$deliveryNote = app(SalesOrderService::class)->createDeliveryNote($salesOrder);
$deliveryNote->counterAccountId = $cogsAccount->id;
$deliveryNote->submit();

// Sales Order -> Sales Invoice (draft; caller supplies the Receivable + income accounts)
$invoice = app(SalesOrderService::class)->createSalesInvoice($salesOrder, $receivable->id, $income->id);
$invoice->submit();
```

- **createDeliveryNote** copies the party/company onto a stock `DeliveryNote`, then for each order line still to deliver resolves the stock `Item` by `item_code` and adds a delivery line (`item_id`, remaining qty, rate, warehouse). Saved as a draft; submitting it posts the stock ledger entries and the COGS general-ledger pair.
- **createSalesInvoice** copies the party/company onto an accounting `SalesInvoice`, then for each order line still to bill adds an invoice line (`item_code`, remaining qty, rate, income account). Saved as a draft; submitting it posts the balanced receivable/income general-ledger entries.

Database Tables
---------------

[](#database-tables)

All tables use the configured prefix shared across the ERP ecosystem (default: `erp_`): `customer_groups`, `customers`, `sales_partners`, `product_bundles`, `product_bundle_items`, `quotations`, `quotation_items`, `sales_orders`, `sales_order_items`.

Testing
-------

[](#testing)

```
composer test
```

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

21

—

LowBetter than 18% of packages

Maintenance65

Regular maintenance activity

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 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.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/411493?v=4)[Jefferson Gonçalves](/maintainers/jeffersongoncalves)[@jeffersongoncalves](https://github.com/jeffersongoncalves)

---

Top Contributors

[![jeffersongoncalves](https://avatars.githubusercontent.com/u/411493?v=4)](https://github.com/jeffersongoncalves "jeffersongoncalves (1 commits)")

### Embed Badge

![Health badge](/badges/jeffersongoncalves-laravel-erp-selling/health.svg)

```
[![Health](https://phpackages.com/badges/jeffersongoncalves-laravel-erp-selling/health.svg)](https://phpackages.com/packages/jeffersongoncalves-laravel-erp-selling)
```

###  Alternatives

[olimortimer/laravelshoppingcart

Laravel Shoppingcart

4343.3k](/packages/olimortimer-laravelshoppingcart)

PHPackages © 2026

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