passchn/digistore-api-wrapper

Digistore Api Wrapper plugin for PHP

Installs: 256

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

Type:cakephp-plugin

v0.2.0 2022-12-23 11:52 UTC

This package is auto-updated.

Last update: 2024-04-29 04:53:49 UTC


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.