m-michalis/boxnow-api

本文件描述了合作伙伴的API说明,以便创建和跟踪配送请求。## 修订历史 | 日期 | 作者 | 描述 | 版本 | |-|-|-|-| |2022-09-22|Šmolík, J.| 添加已接受存包包裹事件 |1.40| |2022-09-08|Šmolík J.| 添加用户选择合作伙伴的支持

v0.0.6-alpha 2023-05-22 09:49 UTC

This package is not auto-updated.

Last update: 2024-09-23 16:31:50 UTC


README

本文件描述了合作伙伴的API说明,以便创建和跟踪配送请求。

修订历史

设置

通过我们的支持注册您的公司。

我们需要以下信息:

  • 公司名称
  • 用于SMS OTP身份验证的人员的电话号码列表 - 您希望访问合作伙伴CMS的人员
  • 取货点地址列表 - 我们在哪里取您的订单进行配送

您将获得以下内容:

  • OAUTH_CLIENT_ID - 与合作伙伴API进行身份验证的OAuth2客户端ID。请妥善保管。值可能因环境而异。
  • OAUTH_CLIENT_SECRET - 与合作伙伴API进行身份验证的OAuth2客户端密钥。请妥善保管。值可能因环境而异。
  • API_URL - 合作伙伴API的基础URL

环境

产品提供多个环境

  • 沙盒 - 用于测试集成。功能有限。
  • 生产 - 连接到真实最终用户。请谨慎使用。

环境设置摘要

API

身份验证

身份验证基于OAuth2标准,客户端凭据授权。令牌端点 /auth-sessions,请参阅下面的示例。

客户端ID和密钥必须由BoxNow支持提前提供。

为了使用API,您必须将访问令牌附加到授权头作为Bearer令牌。

自定义JWT声明

您可以在命名空间键 https://boxnow.gr 下的自定义声明中找到更多信息。例如

{
  \"iat\": 1641980553,
  \"exp\": 1641984153,
  \"https://boxnow.gr\": {
    \"permission\": {
      \"warehouseAsOrigin\": true,
      \"anyApmAsOrigin\": true,
      \"anyApmToSameApmDelivery\": true,
      \"anyApmToSameApmDeliveryWithoutConfirmation\": true,
      \"depotAsOrigin\": true
    }
  }
}

列出可用目的地

如果您不想将订单运送到我们的任何APM,则可以跳过此步骤。

使用 /destinations 列出我们可以交付商品的可用APM位置。在稍后请求配送时,您将使用 id 来引用这些记录。

请求配送

创建配送请求以将订单运送给客户。为此操作使用 /delivery-requests 端点。

一旦成功请求配送

  • (可选) 如果您选择接收此电子邮件,我们将发送电子邮件通知您已成功创建配送请求
  • 您应该从 /parcels/{id}/label.pdf 获取每个包裹的PDF标签,打印它并将其粘贴到包裹上
  • 我们将发送快递员来取贴有标签的包裹
  • 我们通过电子邮件通知客户我们已经从您那里接受订单,并且我们将进行配送

修改配送请求

配送请求成功创建后,您可以稍后更改其某些部分。为此修改使用 /delivery-requests/{id} 端点。

检查配送情况

您可以通过 /parcels 端点列出与您的配送请求相关的包裹。

错误代码

400 Unprocessable entity 响应代码的描述

  • P400 - 无效请求数据。请确保您按照本说明发送请求。
  • P401 - 无效请求源位置引用。请确保您引用的是来自Origins端点或有效地址的有效位置ID。
  • P402 - 无效的请求目的地位置引用。请确保您引用的是“目的地”端点中的有效位置ID或有效地址。
  • P403 - 您不允许使用AnyAPM-SameAPM配送。如果您认为这是错误,请联系支持。
  • P404 - 无效的导入CSV。查看错误内容以获取更多信息。
  • P405 - 无效的电话号码。请确保您发送的电话号码为完整的国际格式,例如+30 xx x xxx xxxx。
  • P406 - 无效的隔间/包裹大小。请确保您发送的是所需的1、2或3种尺寸之一。当直接从AnyAPM发送时,需要尺寸。
  • P407 - 无效的国家/地区代码。请确保您发送的国家/地区代码为ISO 3166-1 alpha-2格式,例如GR。
  • P408 - 无效的待收取金额。请确保您发送的金额在有效范围(0, 5000>内。
  • P409 - 无效的配送合作伙伴引用。请确保您引用的是“配送合作伙伴”端点中的有效配送合作伙伴ID。
  • P410 - 订单号冲突。您正在尝试为已创建的订单ID创建配送请求。请选择另一个订单号。
  • P411 - 您无权使用货到付款支付类型。使用另一种支付类型或联系我们的支持。
  • P412 - 您不允许创建客户退货配送。如果您认为这是错误,请联系支持。
  • P413 - 无效的退货位置引用。请确保您引用的是“来源”端点中的有效位置仓库ID或有效地址。
  • P420 - 包裹尚未准备好取消。您只能取消新的、未交付的或未返回或丢失的包裹。请确保包裹正在运输中,然后重试。
  • P430 - 包裹尚未准备好进行AnyAPM确认。包裹可能已经被确认或正在配送。如果您认为这是错误,请联系支持。

403禁止响应代码的描述

  • X403 - 账户已禁用。您的账户已被禁用,请联系支持。
  • P414 - 未授权的包裹访问。您正在尝试访问不属于您的包裹/信息。请确保您正在请求您有权访问的包裹信息。

503服务不可用响应代码的描述

安装与使用

要求

PHP 7.4及以后版本。也应与PHP 8.0兼容。

Composer

要通过Composer安装绑定,请将以下内容添加到composer.json

{
  "repositories": [
    {
      "type": "vcs",
      "url": "https://github.com/m-michalis/boxnow-api.git"
    }
  ],
  "require": {
    "m-michalis/boxnow-api": "*@dev"
  }
}

然后运行composer install

手动安装

下载文件并包含autoload.php

<?php
require_once('/path/to/OpenAPIClient-php/vendor/autoload.php');

入门

请遵循安装过程,然后运行以下命令

<?php
require_once(__DIR__ . '/vendor/autoload.php');




$apiInstance = new Boxnow\Api\AuthenticationApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client()
);
$api_v1_auth_sessions_post_request = new \Boxnow\Model\ApiV1AuthSessionsPostRequest(); // \Boxnow\Model\ApiV1AuthSessionsPostRequest

try {
    $result = $apiInstance->apiV1AuthSessionsPost($api_v1_auth_sessions_post_request);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AuthenticationApi->apiV1AuthSessionsPost: ', $e->getMessage(), PHP_EOL;
}

API端点

所有URI均相对于https://boxnow.gr/media/yaml/TBA

模型

授权

API中定义的认证方案

bearer

  • 类型: Bearer认证(JWT)

测试

运行测试,请使用

composer install
vendor/bin/phpunit

作者

关于此包

此PHP包由OpenAPI Generator项目自动生成

  • API版本: 1.40
  • 构建包: org.openapitools.codegen.languages.PhpClientCodegen