passchn / digistore-api-wrapper
Digistore Api Wrapper plugin for PHP
Installs: 259
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:cakephp-plugin
Requires
- php: >=7.4
- ext-curl: *
- nette/utils: ^3.2
README
No further development
I'm not using Digistore24 anymore myself. So it is very unlikely that I will further develop this package.
Installation
You can install this plugin using composer.
The recommended way to install composer packages is:
composer require passchn/digistore-api-wrapper
Connect to the API
To connect to the Api, create an instance of DigistoreClient
, passing your api key from Digistore24.com:
use DigistoreApi\DigistoreClient;
$api = new DigistoreClient($api_key);
Test the connection:
return $api->isConnected() // true or false
If false
, or some API-call went wrong, and you got a null
-response, check for the last error message, or all errors
that have occurred:
$api->getLastError() // error message (string) or null
$api->getErrors() // array of Exceptions or null
Get data from the API
This plugin is a wrapper for thr original Digistore24 API. See the full reference here: dev.digistore24.com.
The aim is to have known return types (e.g., Buyer
or Purchase
with defined fields), and to provide an easier
access.
However, ust a few of the possible queries are supported right now. In general, you can always use this method to call any endpoint:
$api->call($method, ...$arguments)
Supported wrapper-endpoints
Purchases
Get one DigistoreApi\Purchases\Purchase
or null
by order id / purchase id:
$api->Purchases->get($id);
Get a DigistoreApi\Purchases\Purchase[]
or null
by passing an array of order ids:
$api->Purchases->getMany([
'12345',
'67890',
'...'
]);
Buyers
Get a DigistoreApi\Buyers\Buyer
(or null
) by id or email.
$api->Buyers->get($id_or_email);
Get an array of Buyers
or null
by passing a list of emails or ids:
$api->Buyers->getMany([$id_or_email, $other_email, $some_id]);
Deliveries
Count Deliveries that have not been processed yet.
$deliveries = $api->Deliveries->countOpen() // ?int
Find Deliveries by purchase id / order id:
$deliveries = $api->Deliveries->listForPurchase("ABC123") // ?array
Find Deliveries for a certain time range (defaults to last 6 weeks):
$deliveries = $api->Deliveries->listForTimeRange() // ?array
Find Deliveries by type/state, e.g. request (not processed yet), delivery (sent by you), or cancelled.
$deliveries = $api->Deliveries->listByTypes([
DeliveryTypes::REQUEST,
DeliveryTypes::DELIVERY,
]) // ?array
Contribution
You can contribute to this plugin via Pull Requests.