wundii / afterbuy-sdk
Modern PHP 8.2+ Afterbuy Programming Interface Software Development Kit
Installs: 580
Dependents: 1
Suggesters: 0
Security: 0
Stars: 3
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/wundii/afterbuy-sdk
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.3.5
 
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/intl: ^7.0
 - symfony/var-dumper: ^7.0
 - symplify/easy-coding-standard: ^12.5
 - wundii/phplint: ^0.3
 - wundii/structron: ^1.0
 
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
Installations for frameworks
- Laravel Package is in development
 - Symfony Bundle
 
Afterbuy API Documentation
Current Afterbuy API Informations
- last update 2.0.460 was recalled by Afterbuy, current version is 2.0.459
- the afterbuy sdk is compatible with the recalled version 2.0.460
 
 
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