picqer/sendcloud-php-client

SendCloud API 的 PHP 客户端

v2.8.1 2024-07-08 09:59 UTC

README

Sendcloud API 的非官方客户端。更多关于 Sendcloud 的信息,请访问 https://www.sendcloud.nl/。以下是使用此客户端的一些示例。

Sendcloud API 的完整文档可以在 https://docs.sendcloud.sc/api/v2/index.html 找到。

安装

此项目可以通过 Composer 轻松安装。

composer require picqer/sendcloud-php-client

设置连接

准备客户端,以便使用您的 API 密钥和 API 密钥连接到 Sendcloud。(可选:您可以将合作伙伴 ID 作为第三个参数发送。)

$connection = new \Picqer\Carriers\SendCloud\Connection('apikey', 'apisecret');
$sendcloudClient = new \Picqer\Carriers\SendCloud\SendCloud($connection);

获取所有包裹

返回包裹对象的数组

$parcels = $sendcloudClient->parcels()->all();

获取单个包裹

返回包裹对象

$parcel = $sendcloudClient->parcels()->find(2342);

创建新的包裹

$parcel = $sendcloudClient->parcels();

$parcel->shipment = 10; // Shipping method, get possibilities from $sendCloud->shippingMethods()->all()

$parcel->name = 'John Smith';
$parcel->company_name = 'ACME';
$parcel->address = 'Wellingtonstreet 25';
$parcel->city = 'Wellington';
$parcel->postal_code = '3423 DD';
$parcel->country = 'NL';
$parcel->order_number = 'ORDER2014-52321';

$parcel->requestShipment = true; // Specifically needed to create a shipment after adding the parcel

$parcel->save();

从包裹获取标签

$labelUrl = $parcel->getPrimaryLabelUrl();

$documentDownloader = new \Picqer\Carriers\SendCloud\DocumentDownloader($connection);
$labelContents = $documentDownloader->getDocument($labelUrl, 'pdf');

异常

如果发生错误,对 API 的操作可能会导致抛出异常。

try {
    $parcel->save();
} catch (SendCloudApiException $e) {
    throw new Exception($e->getMessage());
}

创建国际包裹

$parcel = $sendcloudClient->parcels();

$parcel->shipment = 9; // Shipping method, get possibilities from $sendCloud->shippingMethods()->all()

$parcel->name = 'John Smith';
$parcel->company_name = 'ACME';
$parcel->address = 'Wellingtonstreet 25';
$parcel->city = 'Wellington';
$parcel->postal_code = '3423 DD';
$parcel->country = 'CH';
$parcel->order_number = 'ORDER2014-52321';
$parcel->weight = 20.4;

// For international shipments
$parcel->customs_invoice_nr = 'ORD9923882';
$parcel->customs_shipment_type = 2; // Commercial goods
$parcel->parcel_items = [
    [
        'description' => 'Cork',
        'quantity' => 2,
        'weight' => 10.2,
        'value' => 12.93,
        'hs_code' => '992783',
        'origin_country' => 'CN',
    ]
];

$parcel->requestShipment = true; // Specifically needed to create a shipment after adding the parcel

$parcel->save();