Skip to content

Изменение механизма выдачи товаров

Bogdan edited this page Nov 13, 2017 · 5 revisions

Этот гайд покажет вам, каким образом можно изменить способ выдачи товаров. Вы сможете, например, сделать так, чтобы товары выдавались через RCON.

Узнать о том, как можно работать с RCON в L-Shop вы можете, ознакомившись с документацией.

Класс, который отвечает за логику выдачи товаров называется Distributor.

Вам нужно создать свой класс (Он должен принадлежать неймспейсу App\Services\Distributors) и унаследовать его от абстрактного App\Services\Distributors\Distributor. Далее, необходимо переопределить абстрактный метод give(). В качестве единственного аргумента он принимает объект типа App\Models\Payment\PaymentInterface.

<?php
declare(strict_types = 1);
namespace App\Services\Distributors;

class RconDistributor extends Distributor
{
    /**
     * {@inheritdoc}
     */
    public function give(PaymentInterface $payment): void
    {
        // Логика выдачи товаров игроку.
    }
}

Осталось изменить значение параметра distributor.name в таблице settings на имя созданного вами класса. В моем случае - это RconDistributor.

Если все операции проделаны верно, и код написан правильно, то при необходимости выдать товары пользователю система будет использовать этот класс.