PHP code example of jakuborava / affilbox-client

1. Go to this page and download the library: Download jakuborava/affilbox-client library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

jakuborava / affilbox-client example snippets


use JakubOrava\AffilboxClient\Facades\AffilboxClient;

// Facade
$dashboard = AffilboxClient::dashboard()->get();

// Dependency injection
use JakubOrava\AffilboxClient\AffilboxClient;

public function __construct(private AffilboxClient $client) {}

$dashboard = $this->client->dashboard()->get();

$client = new AffilboxClient('instance-number', 'api-key');

$client->test()->ping();             // Returns "pong"
$client->test()->checkCredentials(); // Returns "ok"

$dashboard = $client->dashboard()->get(); // DashboardDTO

$dashboard->clicks;
$dashboard->conversions;
$dashboard->commission;
$dashboard->pending;
$dashboard->payment;
$dashboard->total;

$instance = $client->instance()->get(); // InstanceDTO

$instance->domain;
$instance->currency;
$instance->locked;
$instance->terminated;
$instance->expire; // Carbon|false

$campaigns = $client->campaigns()->list(); // Collection<int, CampaignDTO>

foreach ($campaigns as $campaign) {
    $campaign->id;
    $campaign->name;
    $campaign->active;
    $campaign->commission;
}

use JakubOrava\AffilboxClient\Requests\ConversionsListRequest;
use JakubOrava\AffilboxClient\Enums\ConversionState;
use Carbon\Carbon;

// All conversions
$conversions = $client->conversions()->list();

// Filtered
$request = (new ConversionsListRequest)
    ->state(ConversionState::Authorized)
    ->dateFrom(Carbon::parse('2024-01-01'))
    ->dateTo(Carbon::parse('2024-12-31'))
    ->campaignId(42)
    ->coupon('SUMMER');

$conversions = $client->conversions()->list($request); // Collection<int, ConversionDTO>

use JakubOrava\AffilboxClient\Requests\AddConversionRequest;

$request = new AddConversionRequest(
    campaignId: 42,
    userId: '[email protected]',
    createDate: Carbon::now(),
    value: 200.00,
);

// Optional fluent methods
$request->sales(150.00)
    ->transactionId('TXN-123')
    ->channel('web')
    ->coupon('SUMMER');

$client->conversions()->add($request);

use JakubOrava\AffilboxClient\Requests\ChangeConversionRequest;

$request = (new ChangeConversionRequest(
    conversionId: 23,
    state: ConversionState::Authorized,
))
    ->value(123.46)
    ->sales(100.00)
    ->currency('CZK')
    ->comment('Approved');

$client->conversions()->change($request);

use JakubOrava\AffilboxClient\Requests\PartnersListRequest;

// All partners
$partners = $client->partners()->list();

// Filtered
$request = (new PartnersListRequest)
    ->registerFrom(Carbon::parse('2024-01-01'))
    ->registerTo(Carbon::parse('2024-12-31'))
    ->lastLoginFrom(Carbon::parse('2024-06-01'));

$partners = $client->partners()->list($request); // Collection<int, PartnerDTO>

foreach ($partners as $partner) {
    $partner->person->name;
    $partner->person->email;
    $partner->company->name;
    $partner->address->city;
}

use JakubOrava\AffilboxClient\Requests\AddPartnerRequest;

$request = (new AddPartnerRequest('[email protected]'))
    ->name('Jan')
    ->surname('Novák')
    ->phone('+420608100100')
    ->street('Národní 12')
    ->city('Praha')
    ->postCode('10000')
    ->country('CZ')
    ->company('Firma s.r.o.')
    ->ic('12345678')
    ->dic('CZ12345678');

$response = $client->partners()->add($request); // AddPartnerResponseDTO

$response->instance;
$response->url;
$response->apiKey;
$response->login;
$response->password;

$invoices = $client->invoices()->list(); // Collection<int, InvoiceDTO>

foreach ($invoices as $invoice) {
    $invoice->id;
    $invoice->vs;
    $invoice->paid;
    $invoice->issueDate;  // Carbon
    $invoice->dueDate;    // Carbon
    $invoice->supplier;   // SupplierDTO
    $invoice->customer;   // CustomerDTO

    foreach ($invoice->items as $item) {
        $item->item;
        $item->amount;
        $item->currency;
    }
}

$status = $client->invoices()->billingRequest();

use JakubOrava\AffilboxClient\Requests\UploadInvoiceRequest;

$request = new UploadInvoiceRequest(
    invoiceId: 24,
    issuedOn: Carbon::parse('2024-10-09'),
    due: Carbon::parse('2024-10-19'),
    vs: 202410045,
    file: base64_encode(file_get_contents('invoice.pdf')),
);

$invoice = $client->invoices()->upload($request); // InvoiceDTO

use JakubOrava\AffilboxClient\Exceptions\AffilboxClientException;
use JakubOrava\AffilboxClient\Exceptions\AuthenticationException;
use JakubOrava\AffilboxClient\Exceptions\ValidationException;
use JakubOrava\AffilboxClient\Exceptions\ApiErrorException;
use JakubOrava\AffilboxClient\Exceptions\UnexpectedResponseException;

try {
    $client->conversions()->list();
} catch (AuthenticationException $e) {
    // 401 - Invalid credentials
} catch (ValidationException $e) {
    // 422 - Validation error
} catch (ApiErrorException $e) {
    // Server error or API error status
} catch (UnexpectedResponseException $e) {
    // Non-array / malformed response
} catch (AffilboxClientException $e) {
    // Catch-all for any client exception
}
bash
php artisan vendor:publish --tag="affilbox-client-config"