Giter Site home page Giter Site logo

digistore-api-wrapper's Introduction

Digistore24 Api Wrapper plugin for PHP

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.