djthossi / shipcloud-sdk
This project is an SDK for shipcloud's API. Thanks to comyo-media/shipcloud-php for providing the PHP 5.4+ version which works pretty similar and inspired me to build this php 8.1+ version
Requires
- php: ^8.1.0
- ext-json: *
- guzzlehttp/guzzle: ^7.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.66
- phpunit/phpunit: ^10.3
This package is auto-updated.
Last update: 2025-04-10 11:09:05 UTC
README
This is a PHP library for interacting with shipclouds API.
This library is supporting the following entities in shipcloud's version v1
- Addresses
- Carriers
- Default return address
- Default shipping address
- Invoice address
- Me
- Pickup request
- Shipment quote
- Shipments
- Trackers
- Webhooks
The Endpoint Rates
is not part of this library as it is deprecated and will be removed in later versions. Use Shipment Quuotes
instead.
This library is made for PHP projects featuring PHP version 8.1+. If you are looking for a library for PHP version between 5.4 and 7.4 try https://github.com/comyo-media/shipcloud-php
How to install
This lib can be installed via composer
composer require djthossi/shipcloud-sdk
Examples
You'll find examples for all API endpoints in the ~/examples
folder. Have fun with it.
Usage in Symfony
You want to use this library inside a symfony project including auto-wiring? After installing simply add this code to your config/services.yaml
Add this to the parameter section of your services.yaml
parameters: # shipcloud parameters app.SHIPCLOUD_API_KEY: "%env(SHIPCLOUD_API_KEY)%"
Add this to the services section of your services.yaml
services: # shipcloud services DjThossi\ShipcloudSdk\Http\: resource: '../vendor/djthossi/shipcloud-sdk/src/Http' bind: $apiKey: '%app.SHIPCLOUD_API_KEY%' DjThossi\ShipcloudSdk\Api\: resource: '../vendor/djthossi/shipcloud-sdk/src/Api' arguments: $client: '@DjThossi\ShipcloudSdk\Http\Client'
Afterwards add the SHIPCLOUD_API_KEY
including your personal API key to your .env.local
file like this.
#shipcloud parameters
SHIPCLOUD_API_KEY=PUT_YOUR_KEY_HERE
Now you can use each API directly inside your business logic. Symfony will take care of the auto-wiring for you.
<?php declare(strict_types=1); namespace App\Controller; use DjThossi\ShipcloudSdk\Api\MeApi; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; class DefaultController extends AbstractController { #[Route('/', name: 'homepage', methods: ['GET'])] public function index(MeApi $meApi): Response { var_dump($meApi->show()->getBodyAsArray()); //... } }
Contribute to this repo
For more details click here