PHPackages                             ingenius/orders - 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. ingenius/orders

ActiveLibrary

ingenius/orders
===============

Ingenius Orders Package

1.9.0(2mo ago)01072MITPHPPHP ^8.2

Since Jul 24Pushed 2mo agoCompare

[ Source](https://github.com/Ingenius-Click/orders)[ Packagist](https://packagist.org/packages/ingenius/orders)[ RSS](/packages/ingenius-orders/feed)WikiDiscussions main Synced 2d ago

READMEChangelogDependencies (10)Versions (30)Used By (2)

Orders Package
==============

[](#orders-package)

This package provides order management functionality for the Ingenius platform.

Features
--------

[](#features)

- Order creation and management
- Order status transitions
- Extensible order processing through extensions
- Multi-tenancy support

Installation
------------

[](#installation)

Add the package to your project's composer.json:

```
"require": {
    "ingenius/orders": "*"
}
```

Or install via Composer:

```
composer require ingenius/orders
```

Configuration
-------------

[](#configuration)

Publish the configuration files:

```
php artisan vendor:publish --provider="Ingenius\Orders\Providers\OrdersServiceProvider" --tag="orders-config"
```

### Environment Variables

[](#environment-variables)

```
PRODUCT_MODEL=Ingenius\Products\Models\Product

```

> Note: For backward compatibility, `ORDERS_PRODUCT_MODEL` is still supported but `PRODUCT_MODEL` is preferred as it's used across all packages.

Usage
-----

[](#usage)

### Creating an Order

[](#creating-an-order)

```
use Ingenius\Orders\Actions\CreateOrderAction;
use Ingenius\Orders\Http\Requests\CreateOrderRequest;

class YourController
{
    public function store(CreateOrderRequest $request, CreateOrderAction $action)
    {
        $order = $action->handle($request);

        return response()->json([
            'data' => $order,
            'message' => 'Order created successfully'
        ]);
    }
}
```

### Changing Order Status

[](#changing-order-status)

```
use Ingenius\Orders\Actions\ChangeOrderStatusAction;

$action = app(ChangeOrderStatusAction::class);
$order = $action->handle($orderId, 'completed');
```

### Extending Order Processing

[](#extending-order-processing)

You can extend the order processing by creating a class that implements the `OrderExtensionInterface` or extends the `BaseOrderExtension` class:

```
use Ingenius\Orders\Extensions\BaseOrderExtension;
use Ingenius\Orders\Models\Order;

class YourOrderExtension extends BaseOrderExtension
{
    public function processOrder(Order $order, array $validatedData, array &$context): array
    {
        // Your custom processing logic

        return [
            'custom_data' => 'value'
        ];
    }

    public function calculateSubtotal(Order $order, float $currentSubtotal, array &$context): float
    {
        // Your custom subtotal calculation logic

        return $currentSubtotal + 500; // Add $5.00 to the subtotal
    }

    public function getPriority(): int
    {
        return 10; // Lower numbers run first
    }
}
```

Then register your extension in a service provider:

```
use Ingenius\Orders\Services\OrderExtensionManager;

public function boot()
{
    $this->app->resolving(OrderExtensionManager::class, function ($manager) {
        $manager->register(new YourOrderExtension());
    });
}
```

License
-------

[](#license)

This package is open-sourced software licensed under the [MIT license](LICENSE.md).

###  Health Score

44

—

FairBetter than 90% of packages

Maintenance87

Actively maintained with recent releases

Popularity9

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity60

Established project with proven stability

 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 ~9 days

Recently: every ~16 days

Total

29

Last Release

64d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5382442d1d8cf8280c50b7a0f3204aa40ac529f412f98a3cdee286cebdd152e8?d=identicon)[Chicho93](/maintainers/Chicho93)

---

Top Contributors

[![Chicho2011](https://avatars.githubusercontent.com/u/13334041?v=4)](https://github.com/Chicho2011 "Chicho2011 (35 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/ingenius-orders/health.svg)

```
[![Health](https://phpackages.com/badges/ingenius-orders/health.svg)](https://phpackages.com/packages/ingenius-orders)
```

PHPackages © 2026

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