wundii/afterbuy-sdk

Modern PHP 8.2+ Afterbuy Programming Interface Software Development Kit

0.21.0 2025-06-06 14:51 UTC

This package is auto-updated.

Last update: 2025-06-15 16:13:47 UTC


README

AfterbuyShopApi AfterbuyXmlApi PHP-Tests PHPStan 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

Afterbuy API Documentation

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),
);

The road to Version 1.0

In preparation for the release of version 1.0.

  • GetAfterbuyTime, test XML returns
  • GetListerHistory, test XML returns
  • GetMailTemplates, test XML returns
  • GetPaymentServices, test XML returns
  • GetProductDiscounts, test XML returns
  • GetShippingCost, test XML returns
  • GetShippingServices, test XML returns
  • GetShopCatalogs, test XML returns
  • GetShopProducts, test XML returns
  • GetSoldItems, test XML returns
  • GetStockInfo, test XML returns
  • GetTranslatedMailTemplate, test XML returns
  • UpdateCatalogs, test XML returns
  • UpdateShopProducts, test XML returns
  • UpdateSoldItems, test XML returns
  • DetailLevelEnum combination
  • AfterbuyGlobal namespace refactoring
  • AfterbuyGlobalInterface implementation
  • Sandbox and Production environment testing
  • Unittest for the Validator classes
  • first important asserts for the UpdateRequest classes
  • shop api (create afterbuy order) implementation
  • final productive testing

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 cache-clear
composer ecs-apply
composer ecs-dry
composer phpstan
composer rector-apply
composer rector-dry
composer unittest

complete checks before merge

composer complete-check