Skip to content
On this page

Discounts

Overview

If you want to add additional functionality to Discounts, you can register your own custom discount types.

Registering a discount type.

php
use Lunar\Facades\Discounts;

Discounts::addType(MyCustomDiscountType::class);
php
<?php

namespace App\DiscountTypes;

use Lunar\Models\Cart;
use Lunar\DiscountTypes\AbstractDiscountType;

class MyCustomDiscountType extends AbstractDiscountType
{
    /**
     * Return the name of the discount.
     *
     * @return string
     */
    public function getName(): string
    {
        return 'Custom Discount Type';
    }

    /**
     * Called just before cart totals are calculated.
     *
     * @return Cart
     */
    public function apply(Cart $cart): Cart
    {
        // ...
        return $cart;
    }
}