Overview
If you want to add additional functionality to the Order creation process, you can do so using pipelines.
Pipelines
Adding an Order Pipeline
All pipelines are defined in config/lunar/orders.php
'pipelines' => [
'creation' => [
Lunar\Pipelines\Order\Creation\FillOrderFromCart::class,
Lunar\Pipelines\Order\Creation\CreateOrderLines::class,
Lunar\Pipelines\Order\Creation\CreateOrderAddresses::class,
Lunar\Pipelines\Order\Creation\CreateShippingLine::class,
Lunar\Pipelines\Order\Creation\CleanUpOrderLines::class,
Lunar\Pipelines\Order\Creation\MapDiscountBreakdown::class,
// ...
],
],
You can add your own pipelines to the configuration, they might look something like:
<?php
namespace App\Pipelines\Orders;
use Closure;
use Lunar\DataTypes\Price;
use Lunar\Models\Order;
class CustomOrderPipeline
{
/**
* @return void
*/
public function handle(Order $order, Closure $next)
{
// Do something to the cart...
return $next($order);
}
}
'pipelines' => [
'creation' => [
// ...
App\Pipelines\Orders\CustomOrderPipeline::class,
],
],
Pipelines will run from top to bottom