Subscriptions

What is the subscription order builder?
The Subscription Order Builder runs whenever a subscription is processed and requires a new order. It creates the new order based on the original order associated with the subscription.
For example, you can add a flag to every order created by a subscription.
First add a setting to the 
admin group:
\Aero\Common\Facades\Settings::group('acme', function (\Aero\Common\Settings\SettingGroup $group) {
    $group->eloquent('subscription_flag', \Aero\Common\Models\Flag::class)->dontLoadModel()->section('Orders');
});
The 
SubscriptionOrderBuilder can then use this setting to attach the flag to the new order:
\Aero\Subscription\Pipelines\SubscriptionOrderBuilder::extend(function (\Aero\Subscription\Pipelines\SubscriptionOrderBuilder $builder, \Closure $next) {
    $flagId = setting('acme.subscription_flag');
    if (! is_int($flagId)) {
        return $next($builder);
    }
    $builder->order->flags()->attach($flagId);
    return $next($builder);
});
Parameters
Parameter
Type
Description
$builder
\Aero\Subscription\Pipelines\SubscriptionOrderBuilder
The subscription order builder.
$next
\Closure
The next step in the order item builder.
Attributes
Attribute
Type
Description
$subscription
\Aero\Subscription\Models\Subscription
The subscription being processed.
$originalOrder
\Aero\Cart\Models\Order
The original order associated with the subscription.
$order
\Aero\Cart\Models\Order
The new order being created for the subscription