wundii/afterbuy-sdk

Modern PHP 8.2+ Afterbuy SDK - Programming Interface Software Development Kit

Maintainers

Package info

github.com/wundii/afterbuy-sdk

pkg:composer/wundii/afterbuy-sdk

Statistics

Installs: 1 999

Dependents: 1

Suggesters: 0

Stars: 4

Open Issues: 0

1.1.0 2026-05-15 06:29 UTC

README

AfterbuyShopApi AfterbuyXmlApi PHP-Tests PHPStan VERSION PHP Rector ECS PHPUnit codecov PSR3 Downloads

This is a modern Afterbuy Programming Interface Software Development Kit, for the selling solution afterbuy.de.

Requirements

  • PHP 8.2 or higher
  • ext-dom
  • ext-json
  • ext-reflection
  • ext-simplexml
  • ext-xml

Installation

Require the bundle and its dependencies with composer:

composer require wundii/afterbuy-sdk

Installations for frameworks

Afterbuy API Documentation

Current Afterbuy API Informations

  • version 2.0.460 was previously recalled by Afterbuy, but is now officially supported again with version 2.0.465
  • new endpoint CancelOrders added with version 2.0.465

Supported Requests with Examples

Afterbuy Sandbox Environment

use Wundii\AfterbuySdk\Core\Afterbuy;
use Wundii\AfterbuySdk\Core\AfterbuyGlobal;
use Wundii\AfterbuySdk\Dto\UpdateShopProducts;
use Wundii\AfterbuySdk\Enum\Core\EndpointEnum;

$afterbuyGlobal = new AfterbuyGlobal(
    '123...',
    '456...',
    EndpointEnum::SANDBOX,
);

$afterbuy = new Afterbuy(
    $afterbuyGlobal,
);

$afterbuy->runRequest(
    new UpdateShopProducts(
        ... // afterbuy sdk request object
    ),
);

According to the Afterbuy documentation, the scheme should be changed from https to http for the test environment. However, this is currently not working as expected - all changes continue to affect the production environment. This afterbuy sdk always returns default a successful response if it is an update request. Alternatively, you can pass your own update response class.

use Wundii\AfterbuySdk\Core\Afterbuy;
use Wundii\AfterbuySdk\Core\AfterbuyGlobal;
use Wundii\AfterbuySdk\Core\SandboxResponse;
use Wundii\AfterbuySdk\Dto\UpdateShopProducts;
use Wundii\AfterbuySdk\Enum\Core\EndpointEnum;

$afterbuyGlobal = new AfterbuyGlobal(
    '123...',
    '456...',
    EndpointEnum::SANDBOX,
);

$afterbuy = new Afterbuy(
    $afterbuyGlobal,
);

/** your own response version */
$afterbuy->runRequest(
    new UpdateShopProducts(
        ... // afterbuy sdk request object
    ),
    new SandboxResponse('<your custom xml response here>', 200),
);

Usage

use Wundii\AfterbuySdk\Core\Afterbuy;
use Wundii\AfterbuySdk\Core\AfterbuyGlobal;
use Wundii\AfterbuySdk\Enum\Core\EndpointEnum;
use Wundii\AfterbuySdk\Request\GetAfterbuyTimeRequest;

$afterbuyGlobal = new AfterbuyGlobal(
    accountToken: '123...',
    partnerToken: '456...',
    EndpointEnum::SANDBOX,
);

$request = new GetAfterbuyTimeRequest();

$afterbuy = new Afterbuy(
    $afterbuyGlobal,
    Optional_PsrLoggerInterface::class,
);
$response = $afterbuy->runRequest($request);

$response->getStatusCode();
$response->getCallStatus();
$response->getInfo();
$response->getResult();
$response->getXmlResponse()
$response->getErrorMessages();
$response->getWarningMessages();

Development for Afterbuy SDK

composer scripts

composer format      # Rector apply + ECS fix
composer stan        # PHPStan level 10
composer analyze     # Rector dry + ECS dry + PHPStan (no changes)
composer test        # PHPUnit
composer coverage    # PHPUnit with coverage
composer qa          # analyze + test
composer cache-clear # Clear cache
composer phplint     # PHP lint
composer structron   # Generate DTO docs