dietervyncke/dry-sendcloud

该包的最新版本(1.0.2)没有可用的许可证信息。

Dry Sendcloud

1.0.2 2020-09-08 08:49 UTC

README

Sendcloud API 的 PHP 客户端(非官方客户端)。

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

索引

安装

composer require dietervyncke/dry-sendcloud

php oak migration migrate -m sendcloud

配置选项

用法

注册服务提供商

<?php

$app = new \Oak\Application();

$app->register([
    \Tnt\Sendcloud\SendcloudServiceProvider::class,
]);

$app->bootstrap();

创建包裹与标签

<?php

try {
  $scParcel = $sendcloudApi->createParcel([
    'parcel' => [
      'order_numer' => '123',
      'name' => 'John Doe', // required
      'address' => 'Main St', // required
      'house_number' => '123', // required
      'postal_code' => '92520', // required
      'city' => 'Anytown', // required
      'country' => 'USA', // required
      'telephone' => '07552255',
      'email' => 'john-doe@acme.com',
      'request_label' => true,
      'shipment' => [ // required if request_label = true
          'id' => 1,
      ],
    ]
  ]);
  
} catch (Tnt\Sendcloud\Exception\SendCloudException $exception) {
  echo $exception->getMessage();
}

$parcel = new Tnt\Sendcloud\Model\Parcel();
$parcel->created = time();
$parcel->updated = time();
$parcel->sendcloud_id = $scParcel['id'];
$parcel->name = $scParcel['name'];
$parcel->address = $scParcel['address'];
$parcel->city = $scParcel['city'];
$parcel->postal_code = $scParcel['postal_code'];
$parcel->email = $scParcel['email'];
$parcel->tracking_number = $scParcel['tracking_number'];
$parcel->status = $scParcel['status']['id'];
$parcel->country = 'USA';
$parcel->is_return = $scParcel['is_return'];
$parcel->shipment_method = 1;
$parcel->save();

$label = new Tnt\Sendcloud\Model\Label();
$label->created = time();
$label->updated = time();
$label->label_printer = isset($scParcel['label']) ? $scParcel['label']['label_printer'] : '';
$label->normal_printer = isset($scParcel['label']) ? $scParcel['label']['normal_printer'] : [];
$label->save();

$parcel->label = $label;
$parcel->save();

获取所有包裹

返回所有创建的包裹数组

<?php

$parcels = $sendcloudApi->getParcels();

通过 ID 获取包裹

返回单个包裹的数组

<?php

$parcel = $sendcloudApi->getParcel(12345);

获取所有活跃的 Sendcloud 快递方式

返回快递方式结果数组

<?php

$shippingMethods = $sendcloudApi->getShippingMethods();

通过包裹 ID 获取标签

<?php

$labelContents = $sendcloudClient->download('12345');