wundii / afterbuy-sdk
Modern PHP 8.2+ Afterbuy Programming Interface Software Development Kit
0.21.0
2025-06-06 14:51 UTC
Requires
- php: >=8.2
- ext-dom: *
- ext-json: *
- ext-reflection: *
- ext-simplexml: *
- ext-xml: *
- psr/log: ^1.0 || ^2.0 || ^3.0
- symfony/dependency-injection: ^6.0 || ^7.0
- symfony/http-client: ^6.0 || ^7.0
- symfony/property-access: ^6.0 || ^7.0
- symfony/validator: ^6.0 || ^7.0
- wundii/data-mapper: ^1.2.4
Requires (Dev)
- phpbench/phpbench: ^1.4
- phpstan/phpstan: ^2.1
- phpstan/phpstan-strict-rules: ^2.0
- phpunit/phpunit: ^11.5
- rector/rector: ^2.0
- symfony/var-dumper: ^7.0
- symplify/easy-coding-standard: ^12.5
- wundii/phplint: ^0.3
README
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
- CreateShopOrder
- GetAfterbuyTime
- GetListerHistory
- GetMailTemplates
- GetPaymentServices
- GetProductDiscounts
- GetShippingCost
- GetShippingServices
- GetShopCatalogs
- GetShopProducts
- GetSoldItems
- GetStockInfo
- GetTranslatedMailTemplate
- UpdateCatalogs
- UpdateShopProducts
- UpdateSoldItems
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