An open API service indexing awesome lists of open source software.

https://github.com/imbue/sendcloud-api-php

SendCloud API client library for PHP. SendCloud is a European shipping software for e-commerce.
https://github.com/imbue/sendcloud-api-php

api client parcel php sendcloud shipping shipping-software

Last synced: 7 months ago
JSON representation

SendCloud API client library for PHP. SendCloud is a European shipping software for e-commerce.

Awesome Lists containing this project

README

          

SendCloud API client for PHP

[![Tests](https://github.com/imbue/sendcloud-api-php/actions/workflows/test.yml/badge.svg)](https://github.com/imbue/sendcloud-api-php/actions/workflows/test.yml)
[![Latest Stable Version](https://poser.pugx.org/imbue/sendcloud-api-php/v/stable)](https://packagist.org/packages/imbue/sendcloud-api-php)
[![Downloads](https://img.shields.io/packagist/dt/imbue/sendcloud-api-php.svg)](https://packagist.org/packages/imbue/sendcloud-api-php)

> Note that this library does not yet implement the complete functionality of the SendCloud API. Feel free to open a merge request with the additional implementation.

## Installation

```
$ composer require imbue/sendcloud-api-php
```

## Getting started

Initialize the SendCloud API client

```php
$sendCloud = new \Imbue\SendCloud\SendCloudApiClient();
$sendCloud->setApiAuth('gb3iogpp8uf74p92holav67ij7jmpswe', '1m9mtv4ylnd8fy0xb61ury81pt6xp3fh');
```

Creating a new parcel

```php
$parcel = $sendCloud->parcels->create([
'parcel' => [
'name' => 'Julie Appleseed',
'company_name' => 'SendCloud',
'address' => 'Insulindelaan 115',
'house_number' => 115,
'city' => 'Eindhoven',
'postal_code' => '5642CV',
'telephone' => '+31612345678',
'request_label' => true,
'email' => 'julie@appleseed.com',
'country' => 'NL',
'shipment' => [
'id' => 8,
],
'weight' => '10.000',
'order_number' => '1234567890',
'insured_value' => 2000,
]
]);
```

Insert or update (upsert) shipment for an integration

```php
$shipment = $sendCloud->integrationShipments->upsert(1346, [
'name' => 'Julie Appleseed',
'company_name' => 'SendCloud',
'address' => 'Insulindelaan 115',
'house_number' => 115,
'city' => 'Eindhoven',
'postal_code' => '5642CV',
'telephone' => '+31612345678',
'request_label' => true,
'email' => 'julie@appleseed.com',
'country' => 'NL',
'shipment' => [
'id' => 8,
],
'weight' => '10.000',
'order_number' => '1234567890',
'insured_value' => 2000,
]);
```

Retrieve a list of integrations

```php
$sendCloud->integrations->list();
```

Retrieve a single parcel
```php
$sendCloud->parcels->get($id);
```

##### Partner ID

If you are a partner of SendCloud, you can set the `partner id`. The library will ensure it will be added as header to the request.

```php
$sendCloud->setPartnerId('3dd88a04-26e4-4959-af11-f5674491573e')
```

## List of available methods

### Integrations
- List

### Integration Shipments
- List
- Upsert (Update or create)

### Invoices
- List
- Find

### Parcels
- Get
- List
- Create
- Cancel

### Parcel statuses
- List

### Sender addresses
- Get
- List

### Shipping methods
- Get
- List

### Labels
- Get
- Print
- Get labels as PDF

### User
- Get

## Roadmap

- Implement all possible endpoints
- Add PHPUnit tests

## Want to help improving the library?

I will happily accept new [pull requests](https://github.com/imbue/sendcloud-api-php/pulls).